@Override protected void channelRead0(ChannelHandlerContext ctx, InboundModernPacketWrapper msg) { IThreadListener thread = FMLCommonHandler.instance().getWorldThread(ctx.channel().attr(NetworkRegistry.NET_HANDLER).get()); if (thread.isCallingFromMinecraftThread()) { inThreadProcessPacket(msg.packet, msg.player); } else { thread.addScheduledTask(() -> inThreadProcessPacket(msg.packet, msg.player)); } }
@Override public IMessage onMessage(PacketPasteGUI message, MessageContext ctx) { FMLCommonHandler.instance().getWorldThread(ctx.netHandler).addScheduledTask(() -> handle(message, ctx)); return null; }
@Override public IMessage onMessage(PacketGetEntityInfo message, MessageContext ctx) { FMLCommonHandler.instance().getWorldThread(ctx.netHandler).addScheduledTask(() -> handle(message, ctx)); return null; }
@Override public IMessage onMessage(PacketGetCrystalInfo message, MessageContext ctx) { FMLCommonHandler.instance().getWorldThread(ctx.netHandler).addScheduledTask(() -> handle(message, ctx)); return null; }
@Override public IMessage onMessage(PacketVariableToServer message, MessageContext ctx) { FMLCommonHandler.instance().getWorldThread(ctx.netHandler).addScheduledTask(() -> handle(message, ctx)); return null; }
@Override public IMessage onMessage(PacketToggleMode message, MessageContext ctx) { FMLCommonHandler.instance().getWorldThread(ctx.netHandler).addScheduledTask(() -> handle(message, ctx)); return null; }
@Override public IMessage onMessage(PacketUndoKey message, MessageContext ctx) { FMLCommonHandler.instance().getWorldThread(ctx.netHandler).addScheduledTask(() -> handle(ctx)); return null; }
@Override public IMessage onMessage(PacketAnchorKey message, MessageContext ctx) { FMLCommonHandler.instance().getWorldThread(ctx.netHandler).addScheduledTask(() -> handle(ctx)); return null; }
@Override public IMessage onMessage(PacketTemplateManagerLoad message, MessageContext ctx) { FMLCommonHandler.instance().getWorldThread(ctx.netHandler).addScheduledTask(() -> handle(message, ctx)); return null; }
@Override public IMessage onMessage(PacketChangeRange message, MessageContext ctx) { FMLCommonHandler.instance().getWorldThread(ctx.netHandler).addScheduledTask(() -> handle(ctx)); return null; }
@Override public IMessage onMessage(PacketTemplateManagerPaste message, MessageContext ctx) { FMLCommonHandler.instance().getWorldThread(ctx.netHandler).addScheduledTask(() -> handle(message, ctx)); return null; }
@Override public IMessage onMessage(PacketSendKey message, MessageContext ctx) { // Always use a construct like this to actually handle your message. This ensures that // youre 'handle' code is run on the main Minecraft thread. 'onMessage' itself // is called on the networking thread so it is not safe to do a lot of things // here. FMLCommonHandler.instance().getWorldThread(ctx.netHandler).addScheduledTask(() -> handle(message, ctx)); return null; }
@Override public IMessage onMessage(OpActionMessage message, MessageContext ctx) { FMLCommonHandler.instance().getWorldThread(ctx.netHandler).addScheduledTask(() -> handle(message, ctx)); return null; }
@Override public IMessage onMessage(PacketGetInfo message, MessageContext ctx) { FMLCommonHandler.instance().getWorldThread(ctx.netHandler).addScheduledTask(() -> handle(message, ctx)); return null; }
@Override public IMessage onMessage(PacketGetRadiationLevel message, MessageContext ctx) { FMLCommonHandler.instance().getWorldThread(ctx.netHandler).addScheduledTask(() -> handle(message, ctx)); return null; }
@Override public IMessage onMessage(PacketGetTankInfo message, MessageContext ctx) { FMLCommonHandler.instance().getWorldThread(ctx.netHandler).addScheduledTask(() -> handle(message, ctx)); return null; }
@Override @Nullable public IMessage onMessage(final T message, final MessageContext context) { final IThreadListener thread = FMLCommonHandler.instance().getWorldThread(context.netHandler); if (thread.isCallingFromMinecraftThread()) { onMessageSynchronized(message, context); } else { thread.addScheduledTask(() -> onMessageSynchronized(message, context)); } return null; }
@Override public IMessage onMessage(PacketVisUpdate message, MessageContext ctx) { FMLCommonHandler.instance().getWorldThread(ctx.netHandler).addScheduledTask(() -> { if (Minecraft.getMinecraft().currentScreen instanceof GuiArcaneTerminal) { GuiArcaneTerminal gui = (GuiArcaneTerminal) Minecraft.getMinecraft().currentScreen; gui.setVisInfo(message.vis, message.required, message.discount); } }); return null; } }
@Override public IMessage onMessage(PacketMEItemUpdate message, MessageContext ctx) { FMLCommonHandler.instance().getWorldThread(ctx.netHandler).addScheduledTask(() -> { if (Minecraft.getMinecraft().currentScreen instanceof GuiArcaneTerminal) { GuiArcaneTerminal gui = (GuiArcaneTerminal) Minecraft.getMinecraft().currentScreen; gui.onMEStorageUpdate(message.list); } }); return null; } }
@Override public IMessage onMessage(PacketEssentiaFilter message, MessageContext ctx) { FMLCommonHandler.instance().getWorldThread(ctx.netHandler).addScheduledTask(() -> { if (Minecraft.getMinecraft().player.openContainer instanceof ContainerBase) { ContainerBase container = (ContainerBase) Minecraft.getMinecraft().player.openContainer; if (container.getEssentiaFilter() != null) container.setEssentiaFilter(message.essentiaFilter); } }); return null; } }