2019-08-22 14:52:32 +02:00
|
|
|
package fr.themode.minestom.utils;
|
|
|
|
|
2019-08-31 07:54:53 +02:00
|
|
|
import fr.themode.minestom.net.packet.PacketWriter;
|
2019-08-22 14:52:32 +02:00
|
|
|
import fr.themode.minestom.net.packet.server.ServerPacket;
|
2020-04-17 01:16:02 +02:00
|
|
|
import io.netty.buffer.ByteBuf;
|
|
|
|
import io.netty.buffer.Unpooled;
|
2019-08-22 14:52:32 +02:00
|
|
|
|
|
|
|
public class PacketUtils {
|
|
|
|
|
2020-04-17 01:16:02 +02:00
|
|
|
public static ByteBuf writePacket(ServerPacket serverPacket) {
|
2019-08-22 14:52:32 +02:00
|
|
|
int id = serverPacket.getId();
|
2020-04-17 01:16:02 +02:00
|
|
|
PacketWriter packetWriter = new PacketWriter();
|
|
|
|
|
|
|
|
packetWriter.writeVarInt(id);
|
|
|
|
|
2019-08-31 07:54:53 +02:00
|
|
|
serverPacket.write(packetWriter);
|
2019-08-31 12:10:46 +02:00
|
|
|
|
2020-04-17 01:16:02 +02:00
|
|
|
byte[] bytes = packetWriter.toByteArray();
|
|
|
|
int length = bytes.length;
|
|
|
|
|
|
|
|
int varIntSize = Utils.lengthVarInt(length);
|
|
|
|
|
|
|
|
ByteBuf buffer = Unpooled.buffer(length + varIntSize);
|
|
|
|
Utils.writeVarIntBuf(buffer, length);
|
|
|
|
buffer.writeBytes(bytes);
|
|
|
|
|
|
|
|
//System.out.println("WRITE PACKET: " + id + " " + serverPacket.getClass().getSimpleName() + " size: " + length);
|
2020-03-20 19:50:22 +01:00
|
|
|
|
2020-04-17 01:16:02 +02:00
|
|
|
return Unpooled.copiedBuffer(buffer);
|
2019-08-23 15:37:38 +02:00
|
|
|
}
|
|
|
|
|
2019-08-22 14:52:32 +02:00
|
|
|
}
|