@Override public void fromBytes(ByteBuf buffer) { packetType = PortableTeleporterPacketType.values()[buffer.readInt()]; if (packetType == PortableTeleporterPacketType.DATA_REQUEST) { if (buffer.readBoolean()) { frequency = new Frequency(PacketHandler.readString(buffer), null).setPublic(buffer.readBoolean()); } } else if (packetType == PortableTeleporterPacketType.DATA_RESPONSE) { if (buffer.readBoolean()) { frequency = new Frequency(PacketHandler.readString(buffer), null).setPublic(buffer.readBoolean()); } status = buffer.readByte(); int amount = buffer.readInt(); for (int i = 0; i < amount; i++) { publicCache.add(new Frequency(buffer)); } amount = buffer.readInt(); for (int i = 0; i < amount; i++) { privateCache.add(new Frequency(buffer)); } } else if (packetType == PortableTeleporterPacketType.SET_FREQ) { frequency = new Frequency(PacketHandler.readString(buffer), null).setPublic(buffer.readBoolean()); } else if (packetType == PortableTeleporterPacketType.DEL_FREQ) { frequency = new Frequency(PacketHandler.readString(buffer), null).setPublic(buffer.readBoolean()); } else if (packetType == PortableTeleporterPacketType.TELEPORT) { frequency = new Frequency(PacketHandler.readString(buffer), null).setPublic(buffer.readBoolean()); } }