    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}