package net.minecraftforge.fml.test; import io.netty.buffer.Unpooled; import net.minecraft.entity.player.EntityPlayerMP; import net.minecraft.network.PacketBuffer; import net.minecraftforge.common.MinecraftForge; import net.minecraftforge.fml.common.Mod; import net.minecraftforge.fml.common.Mod.EventHandler; import net.minecraftforge.fml.common.event.FMLPreInitializationEvent; import net.minecraftforge.fml.common.eventhandler.SubscribeEvent; import net.minecraftforge.fml.common.gameevent.PlayerEvent.PlayerLoggedInEvent; import net.minecraftforge.fml.common.network.FMLEventChannel; import net.minecraftforge.fml.common.network.NetworkRegistry; import net.minecraftforge.fml.common.network.internal.FMLProxyPacket; import net.minecraftforge.fml.relauncher.Side; @Mod(modid = ForgeNetworkTestMod.MOD_ID, name = ForgeNetworkTestMod.MOD_ID, acceptableRemoteVersions = "*") public class ForgeNetworkTestMod { public static final String MOD_ID = "forgenetworktest"; private FMLEventChannel channel; @EventHandler public void onPreInit(FMLPreInitializationEvent e) { if (e.getSide() == Side.SERVER) { MinecraftForge.EVENT_BUS.register(this); channel = NetworkRegistry.INSTANCE.newEventDrivenChannel(MOD_ID); channel.register(this); } } @SubscribeEvent public void onPlayerLogin(PlayerLoggedInEvent e) { if (channel == null) return; PacketBuffer buffer = new PacketBuffer(Unpooled.buffer()); buffer.writeByte(0); channel.sendTo(new FMLProxyPacket(buffer, MOD_ID), (EntityPlayerMP)e.player); // disconnects vanilla clients in 1.11 } }