001    package cpw.mods.fml.common.network;
002    
003    import net.minecraft.entity.player.EntityPlayer;
004    import net.minecraft.world.World;
005    
006    public interface IGuiHandler
007    {
008        /**
009         * Returns a Server side Container to be displayed to the user.
010         * 
011         * @param ID
012         *            The Gui ID Number
013         * @param player
014         *            The player viewing the Gui
015         * @param world
016         *            The current world
017         * @param x
018         *            X Position
019         * @param y
020         *            Y Position
021         * @param z
022         *            Z Position
023         * @return A GuiScreen/Container to be displayed to the user, null if none.
024         */
025        public Object getServerGuiElement(int ID, EntityPlayer player, World world, int x, int y, int z);
026        /**
027         * Returns a Container to be displayed to the user. On the client side, this
028         * needs to return a instance of GuiScreen On the server side, this needs to
029         * return a instance of Container
030         * 
031         * @param ID
032         *            The Gui ID Number
033         * @param player
034         *            The player viewing the Gui
035         * @param world
036         *            The current world
037         * @param x
038         *            X Position
039         * @param y
040         *            Y Position
041         * @param z
042         *            Z Position
043         * @return A GuiScreen/Container to be displayed to the user, null if none.
044         */
045        public Object getClientGuiElement(int ID, EntityPlayer player, World world, int x, int y, int z);
046    }