001package cpw.mods.fml.common.network;
002
003import net.minecraft.network.INetworkManager;
004import net.minecraft.network.NetLoginHandler;
005import net.minecraft.network.packet.NetHandler;
006import net.minecraft.network.packet.Packet1Login;
007import net.minecraft.server.MinecraftServer;
008
009public interface IConnectionHandler
010{
011    /**
012     * Called when a player logs into the server
013     *  SERVER SIDE
014     *
015     * @param player
016     * @param netHandler
017     * @param manager
018     */
019    void playerLoggedIn(Player player, NetHandler netHandler, INetworkManager manager);
020
021    /**
022     * If you don't want the connection to continue, return a non-empty string here
023     * If you do, you can do other stuff here- note no FML negotiation has occured yet
024     * though the client is verified as having FML installed
025     *
026     * SERVER SIDE
027     *
028     * @param netHandler
029     * @param manager
030     */
031    String connectionReceived(NetLoginHandler netHandler, INetworkManager manager);
032
033    /**
034     * Fired when a remote connection is opened
035     * CLIENT SIDE
036     *
037     * @param netClientHandler
038     * @param server
039     * @param port
040     */
041    void connectionOpened(NetHandler netClientHandler, String server, int port, INetworkManager manager);
042    /**
043     *
044     * Fired when a local connection is opened
045     *
046     * CLIENT SIDE
047     *
048     * @param netClientHandler
049     * @param server
050     */
051    void connectionOpened(NetHandler netClientHandler, MinecraftServer server, INetworkManager manager);
052
053    /**
054     * Fired when a connection closes
055     *
056     * ALL SIDES
057     *
058     * @param manager
059     */
060    void connectionClosed(INetworkManager manager);
061
062    /**
063     * Fired when the client established the connection to the server
064     *
065     * CLIENT SIDE
066     * @param clientHandler
067     * @param manager
068     * @param login
069     */
070    void clientLoggedIn(NetHandler clientHandler, INetworkManager manager, Packet1Login login);
071
072}