Сериализация/Десериализация BufferedImage в/из ByteBuf

Версия Minecraft
1.7.10
3,005
192
592
Как сделать корректную Сериализацию/Десериализацию?
Сделал так:
Kotlin:
override fun fromBytes(buf: ByteBuf) {
    val `in` = ByteBufInputStream(buf)
    val img = ImageIO.read(`in`)
    this.img = img
}

override fun toBytes(buf: ByteBuf) {
    val out = ByteBufOutputStream(buf)
    ImageIO.write(img, "png", out)
}
Получил краш.
 
Краш-лог
[Netty Client IO #0/ERROR] [FML]: NetworkDispatcher exception
java.lang.IllegalArgumentException: Payload may not be larger than 32k
at net.minecraft.network.play.client.C17PacketCustomPayload.<init>(C17PacketCustomPayload.java:39) ~[C17PacketCustomPayload.class:?]
at cpw.mods.fml.common.network.internal.FMLProxyPacket.toC17Packet(FMLProxyPacket.java:129) ~[FMLProxyPacket.class:?]
at cpw.mods.fml.common.network.handshake.NetworkDispatcher.write(NetworkDispatcher.java:434) ~[NetworkDispatcher.class:?]
at io.netty.channel.DefaultChannelHandlerContext.invokeWrite(DefaultChannelHandlerContext.java:644) ~[DefaultChannelHandlerContext.class:?]
at io.netty.channel.DefaultChannelHandlerContext.write(DefaultChannelHandlerContext.java:698) ~[DefaultChannelHandlerContext.class:?]
at io.netty.channel.DefaultChannelHandlerContext.writeAndFlush(DefaultChannelHandlerContext.java:688) ~[DefaultChannelHandlerContext.class:?]
at io.netty.channel.DefaultChannelHandlerContext.writeAndFlush(DefaultChannelHandlerContext.java:717) ~[DefaultChannelHandlerContext.class:?]
at io.netty.channel.DefaultChannelPipeline.writeAndFlush(DefaultChannelPipeline.java:893) ~[DefaultChannelPipeline.class:?]
at io.netty.channel.AbstractChannel.writeAndFlush(AbstractChannel.java:239) ~[AbstractChannel.class:?]
at net.minecraft.network.NetworkManager$1.run(NetworkManager.java:197) [NetworkManager$1.class:?]
at io.netty.util.concurrent.SingleThreadEventExecutor.runAllTasks(SingleThreadEventExecutor.java:354) [SingleThreadEventExecutor.class:?]
at io.netty.channel.nio.NioEventLoop.run(NioEventLoop.java:348) [NioEventLoop.class:?]
at io.netty.util.concurrent.SingleThreadEventExecutor$2.run(SingleThreadEventExecutor.java:101) [SingleThreadEventExecutor$2.class:?]
at java.lang.Thread.run(Thread.java:748) [?:1.8.0_161]
Краш-лог:
[Netty Client IO #0/ERROR] [FML]: NetworkDispatcher exception
java.lang.IllegalArgumentException: Payload may not be larger than 32k
	at net.minecraft.network.play.client.C17PacketCustomPayload.<init>(C17PacketCustomPayload.java:39) ~[C17PacketCustomPayload.class:?]
	at cpw.mods.fml.common.network.internal.FMLProxyPacket.toC17Packet(FMLProxyPacket.java:129) ~[FMLProxyPacket.class:?]
	at cpw.mods.fml.common.network.handshake.NetworkDispatcher.write(NetworkDispatcher.java:434) ~[NetworkDispatcher.class:?]
	at io.netty.channel.DefaultChannelHandlerContext.invokeWrite(DefaultChannelHandlerContext.java:644) ~[DefaultChannelHandlerContext.class:?]
	at io.netty.channel.DefaultChannelHandlerContext.write(DefaultChannelHandlerContext.java:698) ~[DefaultChannelHandlerContext.class:?]
	at io.netty.channel.DefaultChannelHandlerContext.writeAndFlush(DefaultChannelHandlerContext.java:688) ~[DefaultChannelHandlerContext.class:?]
	at io.netty.channel.DefaultChannelHandlerContext.writeAndFlush(DefaultChannelHandlerContext.java:717) ~[DefaultChannelHandlerContext.class:?]
	at io.netty.channel.DefaultChannelPipeline.writeAndFlush(DefaultChannelPipeline.java:893) ~[DefaultChannelPipeline.class:?]
	at io.netty.channel.AbstractChannel.writeAndFlush(AbstractChannel.java:239) ~[AbstractChannel.class:?]
	at net.minecraft.network.NetworkManager$1.run(NetworkManager.java:197) [NetworkManager$1.class:?]
	at io.netty.util.concurrent.SingleThreadEventExecutor.runAllTasks(SingleThreadEventExecutor.java:354) [SingleThreadEventExecutor.class:?]
	at io.netty.channel.nio.NioEventLoop.run(NioEventLoop.java:348) [NioEventLoop.class:?]
	at io.netty.util.concurrent.SingleThreadEventExecutor$2.run(SingleThreadEventExecutor.java:101) [SingleThreadEventExecutor$2.class:?]
	at java.lang.Thread.run(Thread.java:748) [?:1.8.0_161]
7,099
324
1,510
Логичнее пакеты расширить
 
7,099
324
1,510
3,005
192
592
7,099
324
1,510
3,005
192
592
ограничивать пакеты со стороны сервера
Мне нужно передать пакет с клиента на сервер.
Вопрос:
Если я изменю в клиенте ограничение - то значит будет краш сервера.
А если я изменю на сервере ограничение - значит будут крашить сервер.

Чувак, выше скинули мод
Я не хочу, что бы сервер ложили по кд пакетами.
 
7,099
324
1,510
Если я изменю в клиенте ограничение - то значит будет краш сервера.
Нет, просто клиент сможет принимать без вылета более толстые пакеты. Сервер же специально своим юзерам не будет отправлять пакеты, которые они прожевать не смогут
А если я изменю на сервере ограничение - значит будут крашить сервер.
В том коде, что выше скидывал, вроде, вообще нет ограничения, но его можно добавить. Все в разумных пределах нужно делать.
 
3,005
192
592
7,099
324
1,510
Сверху