Skip to content

Commit 02af7ab

Browse files
committed
changed id for modified Inventory Descriptions to be uuid/id+count
1 parent 2b28b17 commit 02af7ab

File tree

1 file changed

+19
-3
lines changed

1 file changed

+19
-3
lines changed

src/client/java/com/coflnet/CoflModClient.java

Lines changed: 19 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -14,8 +14,11 @@
1414
import com.coflnet.gui.tfm.TfmBinGUI;
1515
import com.google.gson.Gson;
1616
import com.google.gson.GsonBuilder;
17+
import com.google.gson.JsonElement;
1718
import com.google.gson.JsonObject;
1819
import com.mojang.brigadier.arguments.StringArgumentType;
20+
import com.mojang.serialization.DataResult;
21+
import com.mojang.serialization.JsonOps;
1922
import net.fabricmc.api.ClientModInitializer;
2023
import net.fabricmc.fabric.api.client.command.v2.ClientCommandManager;
2124
import net.fabricmc.fabric.api.client.command.v2.ClientCommandRegistrationCallback;
@@ -40,6 +43,7 @@
4043
import net.minecraft.client.gui.tooltip.Tooltip;
4144
import net.minecraft.client.option.KeyBinding;
4245
import net.minecraft.client.util.InputUtil;
46+
import net.minecraft.component.ComponentType;
4347
import net.minecraft.entity.player.PlayerEntity;
4448
import net.minecraft.entity.player.PlayerInventory;
4549
import net.minecraft.inventory.Inventories;
@@ -61,6 +65,7 @@
6165
import net.minecraft.text.Text;
6266
import net.minecraft.util.collection.DefaultedList;
6367
import org.lwjgl.glfw.GLFW;
68+
import org.spongepowered.asm.mixin.transformer.ClassInfo;
6469

6570
import java.io.ByteArrayOutputStream;
6671
import java.io.IOException;
@@ -171,7 +176,7 @@ public void onPropertyUpdate(ScreenHandler handler, int property, int value) {}
171176

172177
ItemTooltipCallback.EVENT.register((stack, tooltipContext, tooltipType, lines) -> {
173178
if (itemIds.isEmpty()) return;
174-
DescriptionHandler.DescModification[] tooltips = DescriptionHandler.getTooltipData(itemIds.get(stack.toString()));
179+
DescriptionHandler.DescModification[] tooltips = DescriptionHandler.getTooltipData(itemIds.get(getIdFromStack(stack)));
175180
ArrayList<Text> temp = new ArrayList<>(lines);
176181
for (DescriptionHandler.DescModification tooltip : tooltips) {
177182
switch (tooltip.type){
@@ -300,13 +305,24 @@ public static String[] getItemIdsFromInventory(DefaultedList<ItemStack> itemStac
300305
for (int i = 0; i < itemStacks.size(); i++) {
301306
ItemStack stack = itemStacks.get(i);
302307
if (stack.getItem() != Items.AIR) {
303-
itemIds.put(stack.toString(), stack.toString());
304-
res.add(stack.toString());
308+
String id = getIdFromStack(stack);
309+
itemIds.put(id, id);
310+
res.add(id);
311+
System.out.println(id);
305312
}
306313
}
307314

308315
return res.toArray(String[]::new);
309316
}
310317

318+
public static String getIdFromStack(ItemStack stack){
319+
JsonObject stackJson = ItemStack.CODEC.encodeStart(JsonOps.INSTANCE, stack).getOrThrow().getAsJsonObject();
320+
JsonObject customData = stackJson.getAsJsonObject("components").getAsJsonObject("minecraft:custom_data");
321+
JsonElement uuid = customData.get("uuid");
322+
if (uuid != null) return uuid.getAsString();
323+
return stackJson.get("id").getAsString()+";"+stackJson.get("count").getAsString();
324+
325+
}
326+
311327
}
312328

0 commit comments

Comments
 (0)