From 91f3f9dbdd46033517211385ef99160d4866fdde Mon Sep 17 00:00:00 2001 From: micle Date: Fri, 9 Jan 2026 05:20:04 +0100 Subject: [PATCH] WIP: Included target name in data component. --- .../totemofreviving/component/TotemData.java | 22 ++++++++++++++----- .../totemofreviving/item/totem/TotemItem.java | 13 ++++++----- 2 files changed, 24 insertions(+), 11 deletions(-) diff --git a/src/main/java/dev/micle/totemofreviving/component/TotemData.java b/src/main/java/dev/micle/totemofreviving/component/TotemData.java index 541212b..b443b6f 100644 --- a/src/main/java/dev/micle/totemofreviving/component/TotemData.java +++ b/src/main/java/dev/micle/totemofreviving/component/TotemData.java @@ -12,19 +12,22 @@ public class TotemData { public static final Codec CODEC = RecordCodecBuilder.create(instance -> instance.group( Codec.INT.fieldOf("targetIndex").forGetter(TotemData::getTargetIndex), - Codec.STRING.fieldOf("targetUUID").forGetter(TotemData::getTargetUUID) + Codec.STRING.fieldOf("targetUUID").forGetter(TotemData::getTargetUUID), + Codec.STRING.fieldOf("targetName").forGetter(TotemData::getTargetName) ).apply(instance, TotemData::new) ); public static final StreamCodec STREAM_CODEC = StreamCodec.composite( ByteBufCodecs.INT, TotemData::getTargetIndex, ByteBufCodecs.STRING_UTF8, TotemData::getTargetUUID, + ByteBufCodecs.STRING_UTF8, TotemData::getTargetName, TotemData::new ); private int targetIndex; private String targetUUID; + private String targetName; - public TotemData(int targetIndex, String targetUUID) { + public TotemData(int targetIndex, String targetUUID, String targetName) { this.targetIndex = targetIndex; this.targetUUID = targetUUID; } @@ -32,15 +35,22 @@ public class TotemData { public int getTargetIndex() { return targetIndex; } - public void setTargetIndex(int newTargetIndex) { - targetIndex = newTargetIndex; + public void setTargetIndex(int targetIndex) { + this.targetIndex = targetIndex; } public String getTargetUUID() { return targetUUID; } - public void setTargetUUID(String newTargetUUID) { - targetUUID = newTargetUUID; + public void setTargetUUID(String targetUUID) { + this.targetUUID = targetUUID; + } + + public String getTargetName() { + return targetName; + } + public void setTargetName(String targetName) { + this.targetName = targetName; } @Override diff --git a/src/main/java/dev/micle/totemofreviving/item/totem/TotemItem.java b/src/main/java/dev/micle/totemofreviving/item/totem/TotemItem.java index 3f0d89f..1acc179 100644 --- a/src/main/java/dev/micle/totemofreviving/item/totem/TotemItem.java +++ b/src/main/java/dev/micle/totemofreviving/item/totem/TotemItem.java @@ -73,14 +73,17 @@ public abstract class TotemItem extends Item { data.get().setTargetUUID(targetUUID.toString()); stack.set(ModDataComponents.TOTEM_DATA.get(), data.get()); } - + + @Nullable public static String getTargetName(ItemStack stack) { - if (!isTotem(stack)) { return null; } - return stack.getOrCreateTag().getString(TAG_TARGET_NAME); + return getTotemData(stack).map(TotemData::getTargetName).orElse(null); } public static void setTargetName(ItemStack stack, String targetName) { - if (!isTotem(stack)) { return; } - stack.getOrCreateTag().putString(TAG_TARGET_NAME, targetName); + Optional data = getTotemData(stack); + if (data.isEmpty()) { return; } + + data.get().setTargetName(targetName); + stack.set(ModDataComponents.TOTEM_DATA.get(), data.get()); } public static int getTargetCost(ItemStack stack) {