Как правильно отправлять пакет на клиент

Версия Minecraft
1.12.2
API
Forge
7,099
324
1,510
Есть вот такой код:
Необобщенный эквивалент которого выглядит примерно так:
Java:
String channel = ...

SimpleNetworkWrapper simpleNetworkWrapper = NetworkRegistry.INSTANCE.newSimpleChannel(channel);

//регаем пакет с сервера на клиент
simpleNetworkWrapper.registerMessage((message, ctx) -> {
    if (!mc().isCallingFromMinecraftThread())
        mc().addScheduledTask(() -> onReceiveClient(message, channel));
    else
        onReceiveClient(message, channel);

    return null;
}, ServerToClientUniversalPacket.class, 0, Side.CLIENT);
//регаем пакет с клиента на сервер
simpleNetworkWrapper.registerMessage((message, ctx) -> {
    MinecraftServer mc = FMLCommonHandler.instance().getMinecraftServerInstance();
    if (!mc.isCallingFromMinecraftThread())
        mc.addScheduledTask(() -> onReceiveServer(message, ctx.getServerHandler().player, channel));
    else
        onReceiveServer(message, ctx.getServerHandler().player, channel);

    return null;
}, ClientToServerUniversalPacket.class, 0, Side.SERVER);

//отправка пакета одному игроку
simpleNetworkWrapper.sendTo(
    new ServerToClientUniversalPacket(1, channel, packet),
    player
);

Проблема выглядит так: мой код вызывается правильно и пакет уходит в глубины нетти(проверил дебагом), правильно сериализуется, но на стороне клиента 0 эффекта, конструктор пакета на стороне клиента не вызывается и хандлер не вызывается.
При этом отправка с клиента на сервер работает.
 
Решение
Ну, всегда регал с разным - проблем не было. Тут очевидно проблема с регистрацией, то есть по приходу пакета он не находит хандлер, и всё тут. Притом ищет он этот хандлер, используя дискриминатор, так что вполне возможно, что там нет такого разделения на сервер/клиент. Всё равно пакеты регаются с обеих сторон.
7,099
324
1,510
7,099
324
1,510
А должен быть разный? Это же пакеты с разных сторон: сервер и клиент
 
178
4
42
Ну, всегда регал с разным - проблем не было. Тут очевидно проблема с регистрацией, то есть по приходу пакета он не находит хандлер, и всё тут. Притом ищет он этот хандлер, используя дискриминатор, так что вполне возможно, что там нет такого разделения на сервер/клиент. Всё равно пакеты регаются с обеих сторон.
 
Сверху