Jump to content

Zeram

Members
  • Posts

    8
  • Joined

  • Last visited

Everything posted by Zeram

  1. In other words in the 1.19
  2. Bug 1: spawn orb with 30 value and create two damaged item 2*29=58 damage and 2*30=60. One orb fully repairs 1th item then 2nd so outcome like from two orbs with 29 and 30 value. Bug 2: spawn orb with value 1. It fully repair all armor with the getXpRepairRatio<2 let's say 1.68f because p_20794_ / 2 -> (int)(1 * 1.68f) / 2 = 0 -> int j = p_147094_ - 0 = p_147094_: the orb value is never being exhausted.
  3. Any ideas how to apply shim on the forge side? I'm not sure the mc team will rush into fixing that immediately.Any ideas how to apply shim on the forge side? I'm not sure the mc team will rush into fixing that immediately.
  4. Since 1.18 the ExperienceOrb improperly repairs items. Having one orb it sometimes may repair all armor. In the repairing method: private int repairPlayerItems(Player p_147093_, int p_147094_) { Entry<EquipmentSlot, ItemStack> entry = EnchantmentHelper.getRandomItemWith(Enchantments.MENDING, p_147093_, ItemStack::isDamaged); if (entry != null) { ItemStack itemstack = entry.getValue(); int i = Math.min((int) (this.value * itemstack.getXpRepairRatio()), itemstack.getDamageValue()); itemstack.setDamageValue(itemstack.getDamageValue() - i); int j = p_147094_ - this.durabilityToXp(i); return j > 0 ? this.repairPlayerItems(p_147093_, j) : 0; } else { return p_147094_; } } the "this.value" is never been decreased. Looking to the [1.17.1] and older versions it should use "p_147094_" instead of "this.value". Also the methods: private int durabilityToXp(int p_20794_) { return p_20794_ / 2; } private int xpToDurability(int p_20799_) { return p_20799_ * 2; } merely ignore the the item specific repair cost using the default value "2" instead. Seems it should take "ItemStack" as a parameter to calculate proper remaining XP value. So maybe the proper port should look like: private int repairPlayerItems(Player p_147093_, int p_147094_) { Map.Entry<EquipmentSlot, ItemStack> entry = EnchantmentHelper.getRandomItemWith(Enchantments.MENDING, p_147093_, ItemStack::isDamaged); if (entry != null) { ItemStack itemstack = entry.getValue(); int i = Math.min(xpToDurability(itemstack, p_147094_), itemstack.getDamageValue()); itemstack.setDamageValue(itemstack.getDamageValue() - i); int j = p_147094_ - this.durabilityToXp(itemstack, i); return j > 0 ? this.repairPlayerItems(p_147093_, j) : 0; } else { return p_147094_; } } private int durabilityToXp(ItemStack itemstack, int p_20794_) { return (int) (p_20794_ / itemstack.getXpRepairRatio()); } private int xpToDurability(ItemStack itemstack, int p_20799_) { return (int) (p_20799_ * itemstack.getXpRepairRatio()); }
  5. I believe the problem still actual. The behavior is inconsistent across those two use cases. It should either be mutable or immutable. I would enhance the quick craft case with either move slot.onQuickCraft() into moveItemStackTo or add simulate mode to moveItemStackTo and first check if the move possible then call that slot.onQuickCraft() and do actual moveItemStackTo.
  6. Original issue is fixed with 37.0.90. But similar problem arose with ghost recipes (not enough materials) in recipe book: Time: 10/13/21, 1:51 PM Description: Rendering screen java.lang.NullPointerException: Cannot invoke "net.minecraft.world.item.ItemStack.m_41720_()" because "stack" is null at net.minecraftforge.client.RenderProperties.get(RenderProperties.java:43) ~[forge-1.17.1-37.0.90-universal.jar%2372!:?] {re:classloading} at net.minecraftforge.client.ForgeHooksClient.getTooltipFont(ForgeHooksClient.java:1089) ~[forge-1.17.1-37.0.90-universal.jar%2372!:?] {re:classloading} at net.minecraftforge.client.ForgeHooksClient.preTooltipEvent(ForgeHooksClient.java:1095) ~[forge-1.17.1-37.0.90-universal.jar%2372!:?] {re:classloading} at net.minecraft.client.gui.screens.Screen.m_169383_(Screen.java:235) ~[client-1.17.1-20210706.113038-srg.jar%2368!:?] {re:classloading,pl:accesstransformer:B,pl:runtimedistcleaner:A} at net.minecraft.client.gui.screens.Screen.m_96617_(Screen.java:222) ~[client-1.17.1-20210706.113038-srg.jar%2368!:?] {re:classloading,pl:accesstransformer:B,pl:runtimedistcleaner:A} at net.minecraft.client.gui.screens.Screen.m_96602_(Screen.java:196) ~[client-1.17.1-20210706.113038-srg.jar%2368!:?] {re:classloading,pl:accesstransformer:B,pl:runtimedistcleaner:A} at net.minecraft.client.gui.screens.recipebook.RecipeBookComponent.m_100361_(RecipeBookComponent.java:293) ~[client-1.17.1-20210706.113038-srg.jar%2368!:?] {re:classloading,pl:accesstransformer:B,pl:runtimedistcleaner:A} at net.minecraft.client.gui.screens.inventory.InventoryScreen.m_6305_(SourceFile:97) ~[client-1.17.1-20210706.113038-srg.jar%2368!:?] {re:classloading,pl:accesstransformer:B} at net.minecraftforge.client.ForgeHooksClient.drawScreenInternal(ForgeHooksClient.java:392) ~[forge-1.17.1-37.0.90-universal.jar%2372!:?] {re:classloading} at net.minecraftforge.client.ForgeHooksClient.drawScreen(ForgeHooksClient.java:385) ~[forge-1.17.1-37.0.90-universal.jar%2372!:?] {re:classloading} at net.minecraft.client.renderer.GameRenderer.m_109093_(GameRenderer.java:885) ~[client-1.17.1-20210706.113038-srg.jar%2368!:?] {re:classloading,pl:accesstransformer:B,pl:runtimedistcleaner:A} at net.minecraft.client.Minecraft.m_91383_(Minecraft.java:1040) ~[client-1.17.1-20210706.113038-srg.jar%2368!:?] {re:classloading,pl:accesstransformer:B,pl:runtimedistcleaner:A} at net.minecraft.client.Minecraft.m_91374_(Minecraft.java:659) ~[client-1.17.1-20210706.113038-srg.jar%2368!:?] {re:classloading,pl:accesstransformer:B,pl:runtimedistcleaner:A} at net.minecraft.client.main.Main.main(Main.java:186) ~[client-1.17.1-20210706.113038-srg.jar%2368!:?] {re:classloading,pl:runtimedistcleaner:A} at jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method) ~[?:?] {} at jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:78) ~[?:?] {} at jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) ~[?:?] {} at java.lang.reflect.Method.invoke(Method.java:567) ~[?:?] {} at net.minecraftforge.fml.loading.targets.CommonClientLaunchHandler.lambda$launchService$0(CommonClientLaunchHandler.java:45) ~[fmlloader-1.17.1-37.0.90.jar%2322!:?] {} at cpw.mods.modlauncher.LaunchServiceHandlerDecorator.launch(LaunchServiceHandlerDecorator.java:37) [modlauncher-9.0.7.jar%235!:?] {} at cpw.mods.modlauncher.LaunchServiceHandler.launch(LaunchServiceHandler.java:53) [modlauncher-9.0.7.jar%235!:?] {} at cpw.mods.modlauncher.LaunchServiceHandler.launch(LaunchServiceHandler.java:71) [modlauncher-9.0.7.jar%235!:?] {} at cpw.mods.modlauncher.Launcher.run(Launcher.java:106) [modlauncher-9.0.7.jar%235!:?] {} at cpw.mods.modlauncher.Launcher.main(Launcher.java:77) [modlauncher-9.0.7.jar%235!:?] {} at cpw.mods.modlauncher.BootstrapLaunchConsumer.accept(BootstrapLaunchConsumer.java:26) [modlauncher-9.0.7.jar%235!:?] {} at cpw.mods.modlauncher.BootstrapLaunchConsumer.accept(BootstrapLaunchConsumer.java:23) [modlauncher-9.0.7.jar%235!:?] {} at cpw.mods.bootstraplauncher.BootstrapLauncher.main(BootstrapLauncher.java:90) [bootstraplauncher-0.1.17.jar:?] {}
  7. Reproducible since 1.17.1-37.0.85 when hover mouse on any item in recipe book (crafting menu, book): ---- Minecraft Crash Report ---- // I feel sad now :( Time: 10/12/21, 9:46 PM Description: Rendering screen java.lang.NullPointerException: Rendering screen at java.util.Objects.requireNonNull(Objects.java:208) ~[?:?] {} at net.minecraftforge.client.ForgeHooksClient.lambda$gatherTooltipComponents$14(ForgeHooksClient.java:1126) ~[forge-1.17.1-37.0.86-universal.jar%2363!:?] {re:classloading} at java.util.stream.ReferencePipeline$4$1.accept(ReferencePipeline.java:214) ~[?:?] {} at java.util.ArrayList$ArrayListSpliterator.forEachRemaining(ArrayList.java:1625) ~[?:?] {} at java.util.stream.AbstractPipeline.copyInto(AbstractPipeline.java:484) ~[?:?] {} at java.util.stream.AbstractPipeline.wrapAndCopyInto(AbstractPipeline.java:474) ~[?:?] {} at java.util.stream.ReduceOps$ReduceOp.evaluateSequential(ReduceOps.java:913) ~[?:?] {} at java.util.stream.AbstractPipeline.evaluate(AbstractPipeline.java:234) ~[?:?] {} at java.util.stream.IntPipeline.reduce(IntPipeline.java:520) ~[?:?] {} at java.util.stream.IntPipeline.max(IntPipeline.java:483) ~[?:?] {} at net.minecraftforge.client.ForgeHooksClient.gatherTooltipComponents(ForgeHooksClient.java:1127) ~[forge-1.17.1-37.0.86-universal.jar%2363!:?] {re:classloading} at net.minecraftforge.client.ForgeHooksClient.gatherTooltipComponents(ForgeHooksClient.java:1109) ~[forge-1.17.1-37.0.86-universal.jar%2363!:?] {re:classloading} at net.minecraft.client.gui.screens.Screen.renderComponentToolTip(Screen.java:212) ~[client-1.17.1-20210706.113038-srg.jar%2359!:?] {re:classloading,pl:accesstransformer:B,pl:runtimedistcleaner:A} at net.minecraft.client.gui.screens.Screen.renderComponentTooltip(Screen.java:204) ~[client-1.17.1-20210706.113038-srg.jar%2359!:?] {re:classloading,pl:accesstransformer:B,pl:runtimedistcleaner:A} at net.minecraft.client.gui.screens.recipebook.RecipeBookPage.m_100417_(RecipeBookPage.java:118) ~[client-1.17.1-20210706.113038-srg.jar%2359!:?] {re:classloading,pl:runtimedistcleaner:A} at net.minecraft.client.gui.screens.recipebook.RecipeBookComponent.m_100361_(RecipeBookComponent.java:289) ~[client-1.17.1-20210706.113038-srg.jar%2359!:?] {re:classloading,pl:runtimedistcleaner:A} at net.minecraft.client.gui.screens.inventory.CraftingScreen.m_6305_(SourceFile:69) ~[client-1.17.1-20210706.113038-srg.jar%2359!:?] {re:classloading} at net.minecraftforge.client.ForgeHooksClient.drawScreenInternal(ForgeHooksClient.java:392) ~[forge-1.17.1-37.0.86-universal.jar%2363!:?] {re:classloading} at net.minecraftforge.client.ForgeHooksClient.drawScreen(ForgeHooksClient.java:385) ~[forge-1.17.1-37.0.86-universal.jar%2363!:?] {re:classloading} at net.minecraft.client.renderer.GameRenderer.m_109093_(GameRenderer.java:885) ~[client-1.17.1-20210706.113038-srg.jar%2359!:?] {re:classloading,pl:accesstransformer:B,pl:runtimedistcleaner:A} at net.minecraft.client.Minecraft.m_91383_(Minecraft.java:1040) ~[client-1.17.1-20210706.113038-srg.jar%2359!:?] {re:classloading,pl:accesstransformer:B,pl:runtimedistcleaner:A} at net.minecraft.client.Minecraft.m_91374_(Minecraft.java:659) ~[client-1.17.1-20210706.113038-srg.jar%2359!:?] {re:classloading,pl:accesstransformer:B,pl:runtimedistcleaner:A} at net.minecraft.client.main.Main.main(Main.java:186) ~[client-1.17.1-20210706.113038-srg.jar%2359!:?] {re:classloading,pl:runtimedistcleaner:A} at jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method) ~[?:?] {} at jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:78) ~[?:?] {} at jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) ~[?:?] {} at java.lang.reflect.Method.invoke(Method.java:567) ~[?:?] {} at net.minecraftforge.fml.loading.targets.CommonClientLaunchHandler.lambda$launchService$0(CommonClientLaunchHandler.java:45) ~[fmlloader-1.17.1-37.0.86.jar%2322!:?] {} at cpw.mods.modlauncher.LaunchServiceHandlerDecorator.launch(LaunchServiceHandlerDecorator.java:37) [modlauncher-9.0.7.jar%235!:?] {} at cpw.mods.modlauncher.LaunchServiceHandler.launch(LaunchServiceHandler.java:53) [modlauncher-9.0.7.jar%235!:?] {} at cpw.mods.modlauncher.LaunchServiceHandler.launch(LaunchServiceHandler.java:71) [modlauncher-9.0.7.jar%235!:?] {} at cpw.mods.modlauncher.Launcher.run(Launcher.java:106) [modlauncher-9.0.7.jar%235!:?] {} at cpw.mods.modlauncher.Launcher.main(Launcher.java:77) [modlauncher-9.0.7.jar%235!:?] {} at cpw.mods.modlauncher.BootstrapLaunchConsumer.accept(BootstrapLaunchConsumer.java:26) [modlauncher-9.0.7.jar%235!:?] {} at cpw.mods.modlauncher.BootstrapLaunchConsumer.accept(BootstrapLaunchConsumer.java:23) [modlauncher-9.0.7.jar%235!:?] {} at cpw.mods.bootstraplauncher.BootstrapLauncher.main(BootstrapLauncher.java:90) [bootstraplauncher-0.1.17.jar:?] {}
  8. public abstract class AbstractContainerScreen<T extends AbstractContainerMenu> extends Screen implements MenuAccess<T> { ... public void render(PoseStack p_97795_, int p_97796_, int p_97797_, float p_97798_) { ... for(int k = 0; k < this.menu.slots.size(); ++k) { if (this.isHovering(slot, (double)p_97796_, (double)p_97797_) && slot.isActive()) { ... int l = slot.x; int i1 = slot.y; renderSlotHighlight(p_97795_, l, i1, this.getBlitOffset(), this.getSlotColor(i1)); } } The this.getSlotColor(i1) is mapped on 'y' coordinate of the slot. It should rather be slot index 'k' (according to previous version mapping). version: net.minecraftforge:forge:1.17.1-37.0.51_mapped_official_1.17.1
×
×
  • Create New...

Important Information

By using this site, you agree to our Terms of Use.