use of org.lanternpowered.server.network.buffer.ByteBuffer in project LanternServer by LanternPowered.
the class CodecPlayOutTabComplete method encode.
@Override
public ByteBuffer encode(CodecContext context, MessagePlayOutTabComplete message) throws CodecException {
final ByteBuffer buf = context.byteBufAlloc().buffer();
final List<String> matches = message.getMatches();
buf.writeVarInt(matches.size());
matches.forEach(buf::writeString);
return buf;
}
use of org.lanternpowered.server.network.buffer.ByteBuffer in project LanternServer by LanternPowered.
the class CodecPlayOutTabListHeaderAndFooter method encode.
@Override
public ByteBuffer encode(CodecContext context, MessagePlayOutTabListHeaderAndFooter message) throws CodecException {
ByteBuffer buf = context.byteBufAlloc().buffer();
Text header = message.getHeader();
Text footer = message.getFooter();
if (header != null) {
buf.write(Types.TEXT, header);
} else {
buf.writeString(EMPTY_TEXT);
}
if (footer != null) {
buf.write(Types.TEXT, footer);
} else {
buf.writeString(EMPTY_TEXT);
}
return buf;
}
use of org.lanternpowered.server.network.buffer.ByteBuffer in project LanternServer by LanternPowered.
the class CodecPlayOutUpdateTileEntity method encode.
@Override
public ByteBuffer encode(CodecContext context, MessagePlayOutUpdateTileEntity message) throws CodecException {
ByteBuffer buf = context.byteBufAlloc().buffer();
buf.write(Types.VECTOR_3_I, message.getPosition());
buf.writeByte((byte) message.getTileType());
buf.writeDataView(message.getTileData());
return buf;
}
use of org.lanternpowered.server.network.buffer.ByteBuffer in project LanternServer by LanternPowered.
the class CodecPlayOutWindowItems method encode.
@Override
public ByteBuffer encode(CodecContext context, MessagePlayOutWindowItems message) throws CodecException {
ByteBuffer buf = context.byteBufAlloc().buffer();
buf.writeByte((byte) message.getWindowId());
ItemStack[] items = message.getItems();
buf.writeShort((short) items.length);
for (ItemStack item : items) {
buf.write(Types.ITEM_STACK, item);
}
return buf;
}
use of org.lanternpowered.server.network.buffer.ByteBuffer in project LanternServer by LanternPowered.
the class CodecPlayOutWorldBorder method encode.
@Override
public ByteBuffer encode(CodecContext context, MessagePlayOutWorldBorder message) throws CodecException {
ByteBuffer buf = context.byteBufAlloc().buffer();
if (message instanceof MessagePlayOutWorldBorder.Initialize) {
MessagePlayOutWorldBorder.Initialize message1 = (MessagePlayOutWorldBorder.Initialize) message;
buf.writeVarInt(3);
buf.writeDouble(message1.getCenterX());
buf.writeDouble(message1.getCenterZ());
buf.writeDouble(message1.getOldDiameter());
buf.writeDouble(message1.getNewDiameter());
buf.writeVarLong(message1.getLerpTime());
buf.writeVarInt(message1.getWorldSize());
buf.writeVarInt(message1.getWarningTime());
buf.writeVarInt(message1.getWarningDistance());
} else if (message instanceof MessagePlayOutWorldBorder.UpdateCenter) {
MessagePlayOutWorldBorder.UpdateCenter message1 = (MessagePlayOutWorldBorder.UpdateCenter) message;
buf.writeVarInt(2);
buf.writeDouble(message1.getX());
buf.writeDouble(message1.getZ());
} else if (message instanceof MessagePlayOutWorldBorder.UpdateLerpedDiameter) {
MessagePlayOutWorldBorder.UpdateLerpedDiameter message1 = (MessagePlayOutWorldBorder.UpdateLerpedDiameter) message;
buf.writeVarInt(1);
buf.writeDouble(message1.getOldDiameter());
buf.writeDouble(message1.getNewDiameter());
buf.writeVarLong(message1.getLerpTime());
} else if (message instanceof MessagePlayOutWorldBorder.UpdateDiameter) {
buf.writeVarInt(0);
buf.writeDouble(((MessagePlayOutWorldBorder.UpdateDiameter) message).getDiameter());
} else if (message instanceof MessagePlayOutWorldBorder.UpdateWarningDistance) {
buf.writeVarInt(5);
buf.writeVarInt(((MessagePlayOutWorldBorder.UpdateWarningDistance) message).getDistance());
} else if (message instanceof MessagePlayOutWorldBorder.UpdateWarningTime) {
buf.writeVarInt(4);
buf.writeVarInt(((MessagePlayOutWorldBorder.UpdateWarningTime) message).getTime());
} else {
throw new EncoderException("Unsupported message type: " + message.getClass().getName());
}
return buf;
}
Aggregations