From 935a82d079e14fa5bf636d9c40968be87c882e4a Mon Sep 17 00:00:00 2001 From: Jason Mitchell Date: Sun, 5 Jan 2020 12:13:50 -0800 Subject: [PATCH] Save string ids instead of int ids. --- build/build.properties | 2 +- src/codechicken/nei/BookmarkPanel.java | 31 ++++++++++++++++++++++++-- src/codechicken/nei/SearchField.java | 2 +- src/codechicken/nei/SubsetWidget.java | 1 - 4 files changed, 31 insertions(+), 5 deletions(-) diff --git a/build/build.properties b/build/build.properties index c17623bb2..5a2c54d9a 100644 --- a/build/build.properties +++ b/build/build.properties @@ -2,4 +2,4 @@ mc_version=1.7.10 forge_version=10.13.4.1614-1.7.10 ccl_version=1.1.3.138 ccc_version=1.0.7.+ -mod_version=2.0.0-pre-10-GTNH +mod_version=2.0.0-pre-11-GTNH diff --git a/src/codechicken/nei/BookmarkPanel.java b/src/codechicken/nei/BookmarkPanel.java index 2da7d7285..55d757e8f 100644 --- a/src/codechicken/nei/BookmarkPanel.java +++ b/src/codechicken/nei/BookmarkPanel.java @@ -1,6 +1,8 @@ package codechicken.nei; +import cpw.mods.fml.common.registry.GameData; import net.minecraft.client.gui.inventory.GuiContainer; +import net.minecraft.item.Item; import net.minecraft.item.ItemStack; import net.minecraft.nbt.JsonToNBT; import net.minecraft.nbt.NBTException; @@ -36,10 +38,35 @@ public void addOrRemoveItem(ItemStack item) { saveBookmarks(); } + public static NBTTagCompound itemStackToNBT(ItemStack stack, NBTTagCompound nbTag) + { + String strId = Item.itemRegistry.getNameForObject(stack.getItem()); + nbTag.setString("strId", strId); + nbTag.setByte("Count", (byte)stack.stackSize); + nbTag.setShort("Damage", (short)stack.getItemDamage()); + + if (stack.stackTagCompound != null) + { + nbTag.setTag("tag", stack.stackTagCompound); + } + + return nbTag; + } + + public static ItemStack loadFromNBT(NBTTagCompound nbtTag) + { + if (!nbtTag.hasKey("id")) { + final short id = (short)GameData.getItemRegistry().getId(nbtTag.getString("strId")); + nbtTag.setShort("id", id); + } + ItemStack stack = ItemStack.loadItemStackFromNBT(nbtTag); + return stack; + } + public void saveBookmarks() { List strings = new ArrayList<>(); for (ItemStack item:_items) { - strings.add(item.writeToNBT(new NBTTagCompound()).toString()); + strings.add(itemStackToNBT(item, new NBTTagCompound()).toString()); } File file = NEIClientConfig.bookmarkFile; if(file != null) { @@ -68,7 +95,7 @@ public void loadBookmarks() { for (String itemStr: itemStrings) { try { NBTTagCompound itemStackNBT = (NBTTagCompound)JsonToNBT.func_150315_a(itemStr); - ItemStack itemStack = ItemStack.loadItemStackFromNBT(itemStackNBT); + ItemStack itemStack = loadFromNBT(itemStackNBT); if (itemStack != null) { _items.add(itemStack); } else { diff --git a/src/codechicken/nei/SearchField.java b/src/codechicken/nei/SearchField.java index e75998f75..c34a5ddc8 100644 --- a/src/codechicken/nei/SearchField.java +++ b/src/codechicken/nei/SearchField.java @@ -101,7 +101,7 @@ public boolean handleClick(int mousex, int mousey, int button) { public void onTextChange(String oldText) { final String newText = text(); if( newText.length() > 0) - NEIClientConfig.logger.info("Searching for " + text()); + NEIClientConfig.logger.debug("Searching for " + text()); NEIClientConfig.setSearchExpression(newText); ItemList.updateFilter.restart(); diff --git a/src/codechicken/nei/SubsetWidget.java b/src/codechicken/nei/SubsetWidget.java index d2b8fdf88..8b707fc65 100644 --- a/src/codechicken/nei/SubsetWidget.java +++ b/src/codechicken/nei/SubsetWidget.java @@ -388,7 +388,6 @@ public static void addTag(SubsetTag tag) { updateState.stop(); synchronized (root) { root.addTag(tag); - NEIClientConfig.logger.info("Adding Tag {}", tag.displayName()); updateState.reallocate(); } }