Не знаю как активировать TextField

Версия Minecraft
1.15.2
103
2
2
Кто делал текстовые поля на 1.15.2? гайдов на эту версию нет, а в исходниках недоделанные мапинги и кроме создания виджета и рендеринга поля, я не смог ничего понять.
 
Решение
Java:
class YourScreen extends Screen {
    private TextFieldWidget password;
    
    @Override
    public void tick() {
        this.password.tick();
    }
    
    @Override
    protected void init() {
        this.password = new TextFieldWidget(this.font, this.width / 2 - 150, this.height / 2 - 10, 300, 20, "Your password");
        this.password.setMaxStringLength(1000);
        this.password.setResponder((text) -> {
            // Делать что-то, когда пишут в поле
        });
        this.children.add(this.password);
    }
    
    @Override
    public void render(int mouseX, int mouseY, float partialTicks) {
        this.password.render(mouseX, mouseY, partialTicks);
    }
}

Icosider

Kotliner
Администратор
3,603
99
664
Java:
class YourScreen extends Screen {
    private TextFieldWidget password;
    
    @Override
    public void tick() {
        this.password.tick();
    }
    
    @Override
    protected void init() {
        this.password = new TextFieldWidget(this.font, this.width / 2 - 150, this.height / 2 - 10, 300, 20, "Your password");
        this.password.setMaxStringLength(1000);
        this.password.setResponder((text) -> {
            // Делать что-то, когда пишут в поле
        });
        this.children.add(this.password);
    }
    
    @Override
    public void render(int mouseX, int mouseY, float partialTicks) {
        this.password.render(mouseX, mouseY, partialTicks);
    }
}
 
103
2
2
Всё работает, но возник вопрос. Как сделать так, чтобы текст в поле становился красным, если там не цифра?
Сейчас проверяю на наличие других букв так:
button:
this.addButton(new Button( this.guiLeft+50, this.guiTop+50, 70, 20, I18n.format("button.allyouneed.apply"), (button) -> {
            boolean noletter=true;
            for(int i=0;i<this.ticks.getText().length();i++){
                if (!Character.isDigit(this.ticks.getText().charAt(i))){
                    noletter=false;
                }
            }
            if (noletter==true) {
                Networking.INSTANCE.sendToServer(new PacketChangeRedstoneTime(this.container.windowId, Integer.valueOf(this.ticks.getText())));
            }
        }));
 
Сверху