diff --git a/src/main/java/dev/micle/totemofreviving/network/ChangeTargetPacket.java b/src/main/java/dev/micle/totemofreviving/network/ChangeTargetPacket.java index 1c1b1a9..8b2b735 100644 --- a/src/main/java/dev/micle/totemofreviving/network/ChangeTargetPacket.java +++ b/src/main/java/dev/micle/totemofreviving/network/ChangeTargetPacket.java @@ -1,18 +1,19 @@ package dev.micle.totemofreviving.network; import dev.micle.totemofreviving.TotemOfReviving; +import dev.micle.totemofreviving.item.TotemItem; import net.minecraft.entity.player.ServerPlayerEntity; import net.minecraft.item.ItemStack; import net.minecraft.network.PacketBuffer; import net.minecraft.server.management.PlayerList; import net.minecraft.stats.Stats; import net.minecraft.util.Hand; +import net.minecraft.util.text.StringTextComponent; +import net.minecraft.util.text.TextFormatting; import net.minecraftforge.fml.network.NetworkEvent; import java.util.function.Supplier; -import static dev.micle.totemofreviving.item.StrawTotemItem.*; - public class ChangeTargetPacket { private final Hand hand; @@ -35,19 +36,24 @@ public class ChangeTargetPacket { context.enqueueWork(() -> { ServerPlayerEntity sender = context.getSender(); if (sender == null) { return; } - ItemStack totem = sender.getItemInHand(packet.hand); + ItemStack totemStack = sender.getItemInHand(packet.hand); PlayerList playerList = TotemOfReviving.PROXY.getServer().getPlayerList(); + int targetIndex = TotemItem.getTargetIndex(totemStack) + 1; - int targetIndex = totem.getOrCreateTag().getInt(TAG_TARGET_INDEX) + 1; - if (targetIndex > playerList.getPlayerCount()-1) { - targetIndex = 0; - } + if (targetIndex > playerList.getPlayerCount()-1) { targetIndex = 0; } ServerPlayerEntity target = playerList.getPlayers().get(targetIndex); - totem.getOrCreateTag().putInt(TAG_TARGET_INDEX, targetIndex); - totem.getOrCreateTag().putString(TAG_TARGET_UUID, target.getStringUUID()); - totem.getOrCreateTag().putInt(TAG_TARGET_CHARGE, target.getStats().getValue(Stats.CUSTOM.get(Stats.DEATHS))); + TotemItem.setTargetIndex(totemStack, targetIndex); + TotemItem.setTargetUUID(totemStack, target.getUUID()); + TotemItem.setTagTargetName(totemStack, target.getDisplayName().getString()); + if (TotemItem.isCostDynamic(totemStack)) { + TotemItem.setTargetCost(totemStack, target.getStats().getValue(Stats.CUSTOM.get(Stats.DEATHS))); + } else { + TotemItem.setTargetCost(totemStack, TotemItem.getMaxCharge(totemStack)); + } + + sender.sendMessage(new StringTextComponent(TextFormatting.WHITE + "Now targetting " + TextFormatting.GRAY + target.getDisplayName().getString()), sender.getUUID()); }); context.setPacketHandled(true); }