package joshie.progression.network;
import io.netty.buffer.ByteBuf;
import joshie.progression.network.core.PenguinPacket;
import joshie.progression.player.PlayerSavedData.TeamAction;
import joshie.progression.player.PlayerTracker;
import net.minecraft.entity.player.EntityPlayer;
import net.minecraftforge.fml.common.network.ByteBufUtils;
import net.minecraftforge.fml.relauncher.Side;
import java.util.UUID;
@Packet(isSided = true, side = Side.SERVER)
public class PacketChangeTeam extends PenguinPacket {
private TeamAction action;
private String name;
private UUID team;
public PacketChangeTeam() {}
public PacketChangeTeam(TeamAction action) {
this.action = action;
}
public PacketChangeTeam(TeamAction action, String name) {
this.action = action;
this.name = name;
}
public PacketChangeTeam(TeamAction action, UUID team) {
this(action);
this.team = team;
}
@Override
public void toBytes(ByteBuf to) {
if (name != null) {
to.writeBoolean(true);
writeGzipString(to, name);
} else to.writeBoolean(false);
to.writeInt(action.ordinal());
if (team != null) {
to.writeBoolean(true);
ByteBufUtils.writeUTF8String(to, team.toString());
} else to.writeBoolean(false);
}
@Override
public void fromBytes(ByteBuf from) {
if (from.readBoolean()) {
name = readGzipString(from);
}
action = TeamAction.values()[from.readInt()];
if (from.readBoolean()) {
team = UUID.fromString(ByteBufUtils.readUTF8String(from));
}
}
@Override
public void handlePacket(EntityPlayer player) {
PlayerTracker.joinTeam(player, action, team, name);
}
}