Rewrote handle method to use new totem item class. Fixed issue where it only got the dynamic target cost regardless of totem using dynamic or static cost types.
This commit is contained in:
@ -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);
|
||||
}
|
||||
|
Reference in New Issue
Block a user