My mod sends a packet to clients that are supposed to send the contents back. The server doesn't have any problems sending the packet to clients, and the first player to connect receives the packet, but the return message never gets sent. If the first player reconnects then everything functions properly. To be clear I want the ModCheckMessageHandler to send a HasModMessage to the server, which never receives the message.
Client Handler:
public static class ModCheckMessageHandler implements IMessageHandler<ModCheckMessage, HasModMessage> {
@Override
public HasModMessage onMessage(ModCheckMessage message, MessageContext ctx) {
MineCalc.LOGGER.info("Server has MineCalc installed");
return new HasModMessage(message.name);
}
}
Server Handler:
public static class HasModMessageHandler implements IMessageHandler<HasModMessage, IMessage> {
@Override
public IMessage onMessage(HasModMessage message, MessageContext ctx) {
MineCalc.LOGGER.info(message.name + " returned HasModMessage");
Calculate.hasMod.add(message.name);
return null;
}
}
How handlers are registered on client and server:
NetHub.NETWORKWRAPPER.registerMessage(ModCheckMessageHandler.class, ModCheckMessage.class,
NetHub.packetDiscriminator++, Side.CLIENT);
NetHub.NETWORKWRAPPER.registerMessage(HasModMessageHandler.class, HasModMessage.class,
NetHub.packetDiscriminator++, Side.SERVER);
What's wrong?