@Override public SetPassengerMessage decode(ByteBuf buffer) throws IOException { int entityId = ByteBufUtils.readVarInt(buffer); int length = ByteBufUtils.readVarInt(buffer); int[] passengers = new int[length]; for (int i = 0; i < length; i++) { passengers[i] = ByteBufUtils.readVarInt(buffer); } return new SetPassengerMessage(entityId, passengers); }
@Override protected void encode(ChannelHandlerContext ctx, ByteBuf msg, ByteBuf out) throws Exception { ByteBufUtils.writeVarInt(out, msg.readableBytes()); out.writeBytes(msg); }
/** * Write an encoded chat message to the buffer. * * @param buf The buffer. * @param text The chat message to write. * @throws IOException on write failure. */ public static void writeChat(ByteBuf buf, TextMessage text) throws IOException { ByteBufUtils.writeUTF8(buf, text.encode()); }
@Override public AdvancementTabMessage decode(ByteBuf buf) throws IOException { int action = ByteBufUtils.readVarInt(buf); if (action == AdvancementTabMessage.ACTION_CLOSE) { return new AdvancementTabMessage(); } String tabId = ByteBufUtils.readUTF8(buf); return new AdvancementTabMessage(action, tabId); }
@Override public ByteBuf encode(ByteBuf buf, AdvancementTabMessage message) throws IOException { ByteBufUtils.writeVarInt(buf, message.getAction()); if (message.getAction() == AdvancementTabMessage.ACTION_OPEN) { ByteBufUtils.writeUTF8(buf, message.getTabId()); } return buf; } }
@Override public ByteBuf encode(ByteBuf buf, ResourcePackStatusMessage message) throws IOException { ByteBufUtils.writeVarInt(buf, message.getResult()); return buf; } }
@Override public CollectItemMessage decode(ByteBuf buf) throws IOException { int id = ByteBufUtils.readVarInt(buf); int collector = ByteBufUtils.readVarInt(buf); int count = ByteBufUtils.readVarInt(buf); return new CollectItemMessage(id, collector, count); }
@Override public ByteBuf encode(ByteBuf buf, IncomingChatMessage message) throws IOException { ByteBufUtils.writeUTF8(buf, message.getText()); return buf; } }
@Override public ByteBuf encode(ByteBuf buf, SetPassengerMessage message) throws IOException { ByteBufUtils.writeVarInt(buf, message.getEntityId()); ByteBufUtils.writeVarInt(buf, message.getPassengers().length); for (int passenger : message.getPassengers()) { ByteBufUtils.writeVarInt(buf, passenger); } return buf; } }
@Override public SetCooldownMessage decode(ByteBuf buffer) throws IOException { int itemId = ByteBufUtils.readVarInt(buffer); int cooldownTicks = ByteBufUtils.readVarInt(buffer); return new SetCooldownMessage(itemId, cooldownTicks); }
@Override public ByteBuf encode(ByteBuf buf, CameraMessage message) throws IOException { ByteBufUtils.writeVarInt(buf, message.getCameraId()); return buf; } }
@Override public PlayerSwingArmMessage decode(ByteBuf buf) throws IOException { int hand = ByteBufUtils.readVarInt(buf); return new PlayerSwingArmMessage(hand); }
@Override public ByteBuf encode(ByteBuf buf, UseItemMessage message) throws IOException { ByteBufUtils.writeVarInt(buf, message.getHand()); return buf; } }
@Override public CameraMessage decode(ByteBuf buffer) throws IOException { int cameraId = ByteBufUtils.readVarInt(buffer); return new CameraMessage(cameraId); }
@Override public ByteBuf encode(ByteBuf buf, LoginStartMessage message) throws IOException { ByteBufUtils.writeUTF8(buf, message.getUsername()); return buf; } }
@Override public ByteBuf encode(ByteBuf buf, SetCompressionMessage message) throws IOException { ByteBufUtils.writeVarInt(buf, message.getThreshold()); return buf; } }
@Override public TeleportConfirmMessage decode(ByteBuf buffer) throws IOException { int id = ByteBufUtils.readVarInt(buffer); return new TeleportConfirmMessage(id); }
@Override public ByteBuf encode(ByteBuf buf, PlayerSwingArmMessage message) throws IOException { ByteBufUtils.writeVarInt(buf, message.getHand()); return buf; } }