package joshie.progression.network; import io.netty.buffer.ByteBuf; import joshie.progression.api.criteria.ICriteria; import joshie.progression.handlers.APICache; import joshie.progression.network.core.PenguinPacket; import joshie.progression.player.PlayerTracker; import net.minecraft.entity.player.EntityPlayer; import net.minecraftforge.fml.relauncher.Side; import java.util.UUID; @Packet(isSided = true, side = Side.CLIENT) public class PacketSyncImpossible extends PenguinPacket { private ICriteria[] criteria; public PacketSyncImpossible() {} public PacketSyncImpossible(ICriteria[] criteria) { this.criteria = criteria; } @Override public void toBytes(ByteBuf buf) { buf.writeInt(criteria.length); for (ICriteria tech : criteria) { writeGzipString(buf, tech.getUniqueID().toString()); } } @Override public void fromBytes(ByteBuf buf) { int size = buf.readInt(); criteria = new ICriteria[size]; for (int i = 0; i < size; i++) { criteria[i] = APICache.getClientCache().getCriteria(UUID.fromString(readGzipString(buf))); } } @Override public void handlePacket(EntityPlayer player) { PlayerTracker.getClientPlayer().getMappings().setImpossibles(criteria); } }