blob: 30250c64b07302e06c5ef0399e78499f512d717a [file] [log] [blame] [raw]
package universalelectricity.prefab.network;
import java.util.ArrayList;
import java.util.List;
import net.minecraft.server.MinecraftServer;
import net.minecraft.src.INetworkManager;
import net.minecraft.src.NetHandler;
import net.minecraft.src.NetLoginHandler;
import net.minecraft.src.Packet1Login;
import cpw.mods.fml.common.network.IConnectionHandler;
import cpw.mods.fml.common.network.Player;
public class ConnectionHandler implements IConnectionHandler
{
private static final List<ISimpleConnectionHandler> simpleConnectionHandlers = new ArrayList<ISimpleConnectionHandler>();
public static enum ConnectionType
{
LOGIN_SERVER, LOGIN_CLIENT, RECEIVED, OPEN_REMOTE, OPEN_LOCAL, CLOSED
}
/**
* Registers a simple connection handler
*
* @param tileEntity
*/
public static void registerConnectionHandler(ISimpleConnectionHandler tileEntity)
{
simpleConnectionHandlers.add(tileEntity);
}
@Override
public void playerLoggedIn(Player player, NetHandler netHandler, INetworkManager manager)
{
for (ISimpleConnectionHandler handler : simpleConnectionHandlers)
{
handler.handelConnection(ConnectionType.LOGIN_SERVER, player, netHandler, manager);
}
}
@Override
public void clientLoggedIn(NetHandler clientHandler, INetworkManager manager, Packet1Login login)
{
for (ISimpleConnectionHandler handler : simpleConnectionHandlers)
{
handler.handelConnection(ConnectionType.LOGIN_CLIENT, clientHandler, manager, login);
}
}
@Override
public String connectionReceived(NetLoginHandler netHandler, INetworkManager manager)
{
for (ISimpleConnectionHandler handler : simpleConnectionHandlers)
{
handler.handelConnection(ConnectionType.RECEIVED, netHandler, manager);
}
return null;
}
@Override
public void connectionOpened(NetHandler netClientHandler, String server, int port, INetworkManager manager)
{
for (ISimpleConnectionHandler handler : simpleConnectionHandlers)
{
handler.handelConnection(ConnectionType.OPEN_REMOTE, netClientHandler, server, port, manager);
}
}
@Override
public void connectionOpened(NetHandler netClientHandler, MinecraftServer server, INetworkManager manager)
{
for (ISimpleConnectionHandler handler : simpleConnectionHandlers)
{
handler.handelConnection(ConnectionType.OPEN_LOCAL, netClientHandler, server, manager);
}
}
@Override
public void connectionClosed(INetworkManager manager)
{
for (ISimpleConnectionHandler handler : simpleConnectionHandlers)
{
handler.handelConnection(ConnectionType.CLOSED, manager);
}
}
}