package joshie.progression.network; import io.netty.buffer.ByteBuf; import joshie.progression.api.criteria.IConditionProvider; import joshie.progression.handlers.APICache; import joshie.progression.network.core.PenguinPacket; import joshie.progression.player.PlayerTracker; import net.minecraft.entity.player.EntityPlayer; import java.util.UUID; @Packet public class PacketIsSatisfied extends PenguinPacket { private UUID uuid; private boolean isTrue; public PacketIsSatisfied() {} public PacketIsSatisfied(UUID uuid) { this.uuid = uuid; } public PacketIsSatisfied(UUID uuid, boolean isTrue) { this.uuid = uuid; this.isTrue = isTrue; } @Override public void toBytes(ByteBuf buf) { writeGzipString(buf, uuid.toString()); buf.writeBoolean(isTrue); } @Override public void fromBytes(ByteBuf buf) { uuid = UUID.fromString(readGzipString(buf)); isTrue = buf.readBoolean(); } @Override public void handlePacket(EntityPlayer player) { IConditionProvider provider = APICache.getCache(player.worldObj.isRemote).getConditionFromUUID(uuid); if (provider != null) { if (!player.worldObj.isRemote) { boolean isTrue = provider.getProvided().isSatisfied(PlayerTracker.getPlayerData(player).getTeam()); PacketHandler.sendToClient(new PacketIsSatisfied(uuid, isTrue), player); } else provider.setSatisfied(isTrue); } } }