diff --git a/src/main/java/dev/micle/totemofreviving/network/ChargeTotemPacket.java b/src/main/java/dev/micle/totemofreviving/network/ChargeTotemPacket.java index 2a88b48..3b9aaf6 100644 --- a/src/main/java/dev/micle/totemofreviving/network/ChargeTotemPacket.java +++ b/src/main/java/dev/micle/totemofreviving/network/ChargeTotemPacket.java @@ -1,6 +1,6 @@ package dev.micle.totemofreviving.network; -import dev.micle.totemofreviving.item.StrawTotemItem; +import dev.micle.totemofreviving.item.TotemItem; import net.minecraft.entity.player.ServerPlayerEntity; import net.minecraft.item.ItemStack; import net.minecraft.network.PacketBuffer; @@ -9,8 +9,6 @@ import net.minecraftforge.fml.network.NetworkEvent; import java.util.function.Supplier; -import static dev.micle.totemofreviving.item.StrawTotemItem.TAG_CHARGE; - public class ChargeTotemPacket { private final Hand hand; @@ -33,21 +31,17 @@ public class ChargeTotemPacket { context.enqueueWork(() -> { ServerPlayerEntity sender = context.getSender(); if (sender == null) { return; } - ItemStack totem = sender.getMainHandItem(); - ItemStack charge = sender.getOffhandItem(); - if (!packet.hand.equals(Hand.MAIN_HAND)) { - totem = sender.getOffhandItem(); - charge = sender.getMainHandItem(); + + ItemStack totemStack = (packet.hand.equals(Hand.MAIN_HAND)) ? sender.getMainHandItem() : sender.getOffhandItem(); + ItemStack chargeStack = (packet.hand.equals(Hand.MAIN_HAND)) ? sender.getOffhandItem() : sender.getMainHandItem(); + int charge = TotemItem.getCharge(totemStack); + + if (charge >= TotemItem.getMaxCharge(totemStack)) { + return; } - if (totem.getItem() instanceof StrawTotemItem) { - if (totem.getOrCreateTag().getInt(TAG_CHARGE) >= StrawTotemItem.getMaxCharge()) { - return; - } - } - - totem.getOrCreateTag().putInt(TAG_CHARGE, totem.getOrCreateTag().getInt(TAG_CHARGE) + 1); - charge.setCount(charge.getCount() - 1); + TotemItem.setCharge(totemStack, charge + 1); + chargeStack.setCount(chargeStack.getCount() - 1); }); context.setPacketHandled(true); }