Как отрисовать текст на экране игрока?

Версия Minecraft
1.18+
API
Forge
18
0
Я не понимаю как отрисовать текст на экране игрока в 1.18, скиньте пожалуйста пример кода
 
1.18? Не знаю, схожи ли их api с 1.16.5, но вот код с 1.16.5, который возможно сможет помочь:
Code:
@SubscribeEvent //event
public void onRender(RenderGameOverlayEvent.Post e) { //void + event
    if (Minecraft.getInstance().screen == null && Minecraft.getInstance().player.isAlive()) { //check
        FontRenderer fr = Minecraft.getInstance().font; //variable
        fr.draw(e.getMatrixStack(), "", 20, 20, -1); //render
    }
}
P.S.: я это стырил с minecraft api 1.12.2, и оно вполне заработало, только надо было подкорректировать некоторые строчки, я уверен, что если этот код не подойдёт, то ты сможешь его немного вправить, удачки.
 
1,374
113
241
if (Minecraft.getInstance().screen == null && Minecraft.getInstance().player.isAlive()) {
Эта проверка ненужная, скорее даже лишняя. Проверка на смерть игрока на клиенте работать будет криво, а проверка на screen вообще что-то из разряда вон. Если и пилить туда проверку, то только на содержание эвента. Лучше уж так:

Java:
@SubscribeEvent
public static void renderText(RenderGameOverlayEvent.Post e) {
       if(e.getType() == RenderGameOverlayEvent.ElementType.TEXT) { //Проверка на тип рендера, для текста - текст, для здоровья - здоровье, и т.д.
            Minecraft.getInstance().font.draw(e.getMatrixStack(), "HELLO",
                    (float)e.getWindow().getWidth()/2,
                    (float)e.getWindow().getHeight()/2+35, 0x67ff67);
            //FontRenderer#draw(матрица, текст, расположение по x, по y, цвет);
        }
}
 
Последнее редактирование:
Сверху