Не отображается GUI

Версия Minecraft
1.7.10
API
Forge
Хочу сделать GUI для аутентификации на сервере, но оно не отображается.

AuthGUI.java:
package space.cybercommunity.auth.client;

import net.minecraft.client.gui.GuiScreen;

public class AuthGUI extends GuiScreen {

    @Override
    public void initGui() {
        super.initGui();
        
        System.out.println("GUI init");
    }

    @Override
    public void drawScreen(int mouseX, int mouseY, float partialTicks) {
        this.drawDefaultBackground();

        this.drawGradientRect(0, 0, 100, 100, 0xff0000, 0x00ff00);

        super.drawScreen(mouseX, mouseY, partialTicks);
        System.out.println("GUI drawScreen");
    }
}

Сам GUI должен появлятся при вызове комманды /auth
CommandAuth.java:
package space.cybercommunity.auth.client;

import javax.annotation.Nullable;

import net.minecraft.client.Minecraft;
import net.minecraft.command.CommandBase;
import net.minecraft.command.ICommandSender;
import net.minecraft.util.ChatComponentText;

public class CommandAuth extends CommandBase {
    @Override
    public String getCommandName() {
        return "auth";
    }

    @Override
    public boolean canCommandSenderUseCommand(ICommandSender sender) {
        return true;
    }

    @Nullable
    @Override
    public String getCommandUsage(ICommandSender sender) {
        return null;
    }

    @Override
    public void processCommand(ICommandSender sender, String[] args) {
        sender.addChatMessage(new ChatComponentText("Executing /auth command"));
        Minecraft.getMinecraft().displayGuiScreen(new AuthGUI());
    }
}

Судя по логам initGui вызывается, а drawScreen - нет.
Код:
[20:27:33] [Client thread/INFO]: [CHAT] Executing /auth command
[20:27:33] [Client thread/INFO] [STDOUT]: [space.cybercommunity.auth.client.AuthGUI:initGui:11]: GUI init
 
Покажи как зарегистрировал команду.
ClientProxy.java:
package space.cybercommunity.auth.client;

import cpw.mods.fml.common.event.FMLInitializationEvent;
import cpw.mods.fml.common.event.FMLPostInitializationEvent;
import cpw.mods.fml.common.event.FMLPreInitializationEvent;
import net.minecraftforge.client.ClientCommandHandler;
import space.cybercommunity.auth.common.CommonProxy;

public class ClientProxy extends CommonProxy {
    @Override
    public void preInit(FMLPreInitializationEvent event) {
        super.preInit(event);
    }

    @Override
    public void init(FMLInitializationEvent event) {
        super.init(event);
        ClientCommandHandler.instance.registerCommand(new CommandAuth());
    }

    @Override
    public void postInit(FMLPostInitializationEvent event) {
        super.postInit(event);
    }
}

Сама команда работает.
 
Minecraft.getMinecraft() ... открывает gui локальному игроку.
Ты должен отправить клиенту пакет, при получении которого клиент откроет твое gui
Всё правильно, клиент сам себе gui откроет и отправит потом инфу на сервер.
 

TheAndrey

Редактор учебника
1,067
71
372
Не нужно везде подряд писать System.out, потому что оно потом успешно поедет в релиз. Пользуйтесь точками остановки. Там всего лишь нужно нажать на номер нужной строки строки для добавления точки и запустить клиент кнопкой с жуком.
 
Сверху