- 25
- 1
- 2
Впервые пытаюсь в пакетную систему и что-то не работает
Отправка с клиента Init.NETWORK.sendToServer(new MyPacket());
Пишет в консоль "toBytes wrote" и "fromBytes", а потом выдаёт ошибку.
Ошибка в строке System.out.println("Got Packet " + message.buf.readChar());
Init:
public class Init {
public static SimpleNetworkWrapper NETWORK;
public static void createNetwork() {
NETWORK = NetworkRegistry.INSTANCE.newSimpleChannel(Reference.MODID);
NETWORK.registerMessage(Handler.class, MyPacket.class, 0, Side.SERVER);
}
}
Handler:
public class Handler implements IMessageHandler<MyPacket, IMessage> {
public void onClient(EntityPlayer player, MyPacket message) {}
public void onServer(EntityPlayer player, MyPacket message) {
System.out.println("Got Packet " + message.buf.readChar());
}
@Override
public MyPacket onMessage(MyPacket message, MessageContext ctx) {
EntityPlayer player = ctx.getServerHandler().player;
if (ctx.side == Side.CLIENT) {
onClient(player, message);
}
else {
onServer(player, message);
}
return null;
}
}
MyPacket:
public class MyPacket implements IMessage {
ByteBuf buf = Unpooled.buffer();
public MyPacket() {
buf.writeChar('t');
}
@Override
public void fromBytes(ByteBuf buf) {
this.buf = buf;
System.out.println("fromBytes");
}
@Override
public final void toBytes(ByteBuf buf) {
if (buf != null) {
buf.writeBytes(this.buf);
System.out.println("toBytes wrote");
}
}
}
CommonProxy:
public void postInit(FMLPostInitializationEvent event)
{
Init.createNetwork();
}
Пишет в консоль "toBytes wrote" и "fromBytes", а потом выдаёт ошибку.
[11:29:31] [Netty Server IO #1/ERROR] [FML]: SimpleChannelHandlerWrapper exception
io.netty.util.IllegalReferenceCountException: refCnt: 0
at io.netty.buffer.AbstractByteBuf.ensureAccessible(AbstractByteBuf.java:1408) ~[AbstractByteBuf.class:4.1.9.Final]
at io.netty.buffer.AbstractByteBuf.checkReadableBytes0(AbstractByteBuf.java:1394) ~[AbstractByteBuf.class:4.1.9.Final]
at io.netty.buffer.AbstractByteBuf.readShort(AbstractByteBuf.java:706) ~[AbstractByteBuf.class:4.1.9.Final]
at io.netty.buffer.AbstractByteBuf.readChar(AbstractByteBuf.java:808) ~[AbstractByteBuf.class:4.1.9.Final]
at com.skillmagic.network.Handler.onServer(Handler.java:12) ~[Handler.class:?]
at com.skillmagic.network.Handler.onMessage(Handler.java:22) ~[Handler.class:?]
at com.skillmagic.network.Handler.onMessage(Handler.java:9) ~[Handler.class:?]
io.netty.util.IllegalReferenceCountException: refCnt: 0
at io.netty.buffer.AbstractByteBuf.ensureAccessible(AbstractByteBuf.java:1408) ~[AbstractByteBuf.class:4.1.9.Final]
at io.netty.buffer.AbstractByteBuf.checkReadableBytes0(AbstractByteBuf.java:1394) ~[AbstractByteBuf.class:4.1.9.Final]
at io.netty.buffer.AbstractByteBuf.readShort(AbstractByteBuf.java:706) ~[AbstractByteBuf.class:4.1.9.Final]
at io.netty.buffer.AbstractByteBuf.readChar(AbstractByteBuf.java:808) ~[AbstractByteBuf.class:4.1.9.Final]
at com.skillmagic.network.Handler.onServer(Handler.java:12) ~[Handler.class:?]
at com.skillmagic.network.Handler.onMessage(Handler.java:22) ~[Handler.class:?]
at com.skillmagic.network.Handler.onMessage(Handler.java:9) ~[Handler.class:?]