Открытие гуи

Версия Minecraft
1.7.10
Доброго времени суток. Как правильно открывать инвентарь по клику на моба?
Сперва все тестировал все в одиночке, все было классно. Для открытия инвентаря использовал Minecraft.getMinecraft().displayGuiScreen(new WandererScreen()); Решил потетситьна сервере, выбило java.lang.NoClassDefFoundError: net/minecraft/client/gui/GuiScreen, что в принципе логично. Нашел способ открытия с помощью player.openGui(),но не могу понять, где достать 2 параметр(modGuild)
 
Хммм. отчасти разобрался. Но при закрытии своего инвентаря происходит краш, мол не может к контейнру закастить.
Java:
java.lang.ClassCastException: me.Sa1ZeR_.DiverseThings.GUI.WandererScreen cannot be cast to net.minecraft.inventory.Container
    at cpw.mods.fml.common.network.NetworkRegistry.getRemoteGuiContainer(NetworkRegistry.java:243)
    at cpw.mods.fml.common.network.internal.FMLNetworkHandler.openGui(FMLNetworkHandler.java:75)
    at net.minecraft.entity.player.EntityPlayer.openGui(EntityPlayer.java:2501)
    at me.Sa1ZeR_.DiverseThings.entities.WandererMob.interact(WandererMob.java:58)
    at net.minecraft.entity.EntityLiving.interactFirst(EntityLiving.java:1158)
    at net.minecraft.entity.player.EntityPlayer.interactWith(EntityPlayer.java:1267)
    at net.minecraft.network.NetHandlerPlayServer.processUseEntity(NetHandlerPlayServer.java:870)
    at net.minecraft.network.play.client.C02PacketUseEntity.processPacket(C02PacketUseEntity.java:51)
    at net.minecraft.network.play.client.C02PacketUseEntity.processPacket(C02PacketUseEntity.java:69)
    at net.minecraft.network.NetworkManager.processReceivedPackets(NetworkManager.java:241)
    at net.minecraft.network.NetworkSystem.networkTick(NetworkSystem.java:182)
    at net.minecraft.server.MinecraftServer.updateTimeLightAndEntities(MinecraftServer.java:726)
    at net.minecraft.server.MinecraftServer.tick(MinecraftServer.java:614)
    at net.minecraft.server.integrated.IntegratedServer.tick(IntegratedServer.java:118)
    at net.minecraft.server.MinecraftServer.run(MinecraftServer.java:485)
    at net.minecraft.server.MinecraftServer$2.run(MinecraftServer.java:752)
Вызов открытия в классе моба:
@Override
    protected boolean interact(EntityPlayer player) {
        if(player.getHeldItem() != null && player.getHeldItem().getItem() == DiverseThings.instance.thingsUtils.mobHelperItem) {
            this.setHealth(0);
            return true;
        }
        player.openGui(DiverseThings.instance, DiverseThings.customGuiId, player.worldObj, (int) player.posX, (int) player.posY, (int) player.posZ);
        return true;
    }
GUIHandler:
public class GuiHandler implements IGuiHandler {
    @Override
    public Object getServerGuiElement(int ID, EntityPlayer player, World world, int x, int y, int z) {
        switch (ID) {
            case 0:
                return new WandererScreen();
        }
        return null;
    }

    @Override
    public Object getClientGuiElement(int ID, EntityPlayer player, World world, int x, int y, int z) {
        switch (ID) {
            case 0:
                return new WandererScreen();
        }
        return null;
    }
}

Еще несколько вопросов. Как я понимаю, есть метод для сервера и для клиента..., но зачем для сервера, если гуи это клиентская фишка? Если есть серверный метод, то регистрировать GUIHandler нужно и на сервере ?
 
А как ты собрался делать инвентарь на одном гуи? -_-
Нужно юзать GuiContainer и к нему приделать Container, а ты зачем-то с сервера ещё гуи вызываешь тоже самое..
Мне не нужен контейнер, у меня простая картинка, на которой рендерю текст, никаких слотов нет)

На клиенте возвращаешь GuiScreen, на сервере Container(там де слоты). Если контейнера нет, то возвращаешь просто нулл, а не гуи как у тебя.
Спасибо. GUIHandler на сервере и на клиенте же регать?
 
Если контейнера нет, то возвращаешь просто нулл, а не гуи как у тебя.
Возник небольшой вопрос по этому поводу. Если Gui не предполагает контейнера и существует только на клиенте, является ли резонным не заводить GuiHandler и открывать сам Gui через displayGuiScreen()?
 
Сверху