001    package cpw.mods.fml.common.modloader;
002    
003    import net.minecraft.entity.player.EntityPlayer;
004    import net.minecraft.network.INetworkManager;
005    import net.minecraft.network.NetLoginHandler;
006    import net.minecraft.network.packet.NetHandler;
007    import net.minecraft.network.packet.Packet1Login;
008    import net.minecraft.server.MinecraftServer;
009    import cpw.mods.fml.common.network.IConnectionHandler;
010    import cpw.mods.fml.common.network.Player;
011    
012    public class ModLoaderConnectionHandler implements IConnectionHandler
013    {
014        private BaseModProxy mod;
015    
016        public ModLoaderConnectionHandler(BaseModProxy mod)
017        {
018            this.mod = mod;
019        }
020    
021        @Override
022        public void playerLoggedIn(Player player, NetHandler netHandler, INetworkManager manager)
023        {
024            mod.onClientLogin((EntityPlayer)player);
025        }
026    
027        @Override
028        public String connectionReceived(NetLoginHandler netHandler, INetworkManager manager)
029        {
030            return null;
031        }
032    
033        @Override
034        public void connectionOpened(NetHandler netClientHandler, String server, int port, INetworkManager manager)
035        {
036            ModLoaderHelper.sidedHelper.clientConnectionOpened(netClientHandler, manager, mod);
037        }
038    
039        @Override
040        public void connectionClosed(INetworkManager manager)
041        {
042            if (ModLoaderHelper.sidedHelper==null || !ModLoaderHelper.sidedHelper.clientConnectionClosed(manager, mod))
043            {
044                mod.serverDisconnect();
045                mod.onClientLogout(manager);
046            }
047        }
048    
049        @Override
050        public void clientLoggedIn(NetHandler nh, INetworkManager manager, Packet1Login login)
051        {
052            mod.serverConnect(nh);
053        }
054    
055        @Override
056        public void connectionOpened(NetHandler netClientHandler, MinecraftServer server, INetworkManager manager)
057        {
058            ModLoaderHelper.sidedHelper.clientConnectionOpened(netClientHandler, manager, mod);
059        }
060    
061    }