From ebf442c49ef4404acfbeeabb578f6db769697400 Mon Sep 17 00:00:00 2001 From: Jakub <53441451+kuba6000@users.noreply.github.com> Date: Sun, 5 Mar 2023 09:46:25 +0100 Subject: Fix tooltip on item bookmark from Mob drops NEI page (#55) * compile -> api * Fix tooltip on item bookmark --- src/main/java/kubatech/nei/Mob_Handler.java | 50 ++++++++++++----------------- 1 file changed, 21 insertions(+), 29 deletions(-) (limited to 'src/main') diff --git a/src/main/java/kubatech/nei/Mob_Handler.java b/src/main/java/kubatech/nei/Mob_Handler.java index d834640460..eace41db28 100644 --- a/src/main/java/kubatech/nei/Mob_Handler.java +++ b/src/main/java/kubatech/nei/Mob_Handler.java @@ -47,8 +47,6 @@ import net.minecraft.init.Items; import net.minecraft.item.Item; import net.minecraft.item.ItemStack; import net.minecraft.nbt.NBTTagCompound; -import net.minecraft.nbt.NBTTagList; -import net.minecraft.nbt.NBTTagString; import net.minecraft.util.EnumChatFormatting; import net.minecraft.util.StatCollector; @@ -457,6 +455,16 @@ public class Mob_Handler extends TemplateRecipeHandler { cycleTicksStatic++; } + @Override + public List handleItemTooltip(GuiRecipe gui, ItemStack stack, List currenttip, int recipe) { + MobCachedRecipe currentrecipe = ((MobCachedRecipe) arecipes.get(recipe)); + PositionedStack positionedStack = currentrecipe.mOutputs.stream().filter(ps -> ps.item == stack).findFirst() + .orElse(null); + if (positionedStack instanceof MobPositionedStack) + currenttip.addAll(((MobPositionedStack) positionedStack).extraTooltip); + return currenttip; + } + public static class MobPositionedStack extends PositionedStack { public final MobDrop.DropType type; @@ -466,6 +474,7 @@ public class Mob_Handler extends TemplateRecipeHandler { public final List damages; public final int enchantmentLevel; private final Random rand; + public final List extraTooltip; public MobPositionedStack(Object object, int x, int y, MobDrop.DropType type, int chance, Integer enchantable, List damages, boolean lootable, boolean isPlayerOnly) { @@ -479,35 +488,18 @@ public class Mob_Handler extends TemplateRecipeHandler { this.randomdamage = damages != null; if (this.randomdamage) this.damages = damages; else this.damages = null; - NBTTagList extratooltip = new NBTTagList(); + extraTooltip = new ArrayList<>(); - if (chance != 10000) - extratooltip.appendTag(new NBTTagString(EnumChatFormatting.RESET + CHANCE.get((double) chance / 100d))); - if (lootable) extratooltip.appendTag(new NBTTagString(EnumChatFormatting.RESET + LOOTABLE.get())); + if (chance != 10000) extraTooltip.add(EnumChatFormatting.RESET + CHANCE.get((double) chance / 100d)); + if (lootable) extraTooltip.add(EnumChatFormatting.RESET + LOOTABLE.get()); if (isPlayerOnly) { - extratooltip.appendTag(new NBTTagString(EnumChatFormatting.RESET + PLAYER_ONLY.get())); - extratooltip.appendTag( - new NBTTagString( - EnumChatFormatting.RESET + EEC_CHANCE - .get(((double) chance / 100d) * Config.MobHandler.playerOnlyDropsModifier))); + extraTooltip.add(EnumChatFormatting.RESET + PLAYER_ONLY.get()); + extraTooltip.add( + EnumChatFormatting.RESET + + EEC_CHANCE.get(((double) chance / 100d) * Config.MobHandler.playerOnlyDropsModifier)); } - extratooltip.appendTag(new NBTTagString(EnumChatFormatting.RESET + AVERAGE_REMINDER.get())); - - NBTTagCompound itemtag = this.items[0].getTagCompound(); - if (itemtag == null) itemtag = new NBTTagCompound(); - NBTTagCompound display = new NBTTagCompound(); - if (itemtag.hasKey("display")) { - display = itemtag.getCompoundTag("display"); - if (display.hasKey("Lore")) { - NBTTagList lore = display.getTagList("Lore", 8); - for (int i = 0; i < extratooltip.tagCount(); i++) - lore.appendTag(new NBTTagString(extratooltip.getStringTagAt(i))); - display.setTag("Lore", lore); - } else display.setTag("Lore", extratooltip); - } else display.setTag("Lore", extratooltip); - itemtag.setTag("display", display); - this.items[0].setTagCompound(itemtag); - this.item.setTagCompound((NBTTagCompound) itemtag.copy()); + extraTooltip.add(EnumChatFormatting.RESET + AVERAGE_REMINDER.get()); + setPermutationToRender(0); } @@ -516,7 +508,7 @@ public class Mob_Handler extends TemplateRecipeHandler { if (this.item == null) this.item = this.items[0].copy(); if (enchantable) { if (this.item.getItem() == Items.enchanted_book) this.item = this.items[0].copy(); - this.item.getTagCompound().removeTag("ench"); + if (this.item.hasTagCompound()) this.item.getTagCompound().removeTag("ench"); EnchantmentHelper.addRandomEnchantment(rand, this.item, enchantmentLevel); } if (randomdamage) this.item.setItemDamage(damages.get(rand.nextInt(damages.size()))); -- cgit