Почему убранные полоски хп и сытости крашут игру?

Статус
В этой теме нельзя размещать новые ответы.
Версия Minecraft
1.14.4
52
1
6
Java:
@SubscribeEvent
    public void onRenderHUD(RenderGameOverlayEvent.Post e) {
        GL11.glPushMatrix();
        if (e.getType() == ElementType.HEALTH || e.getType() == ElementType.FOOD) {
            e.setCanceled(true); //UPD: нельзя отменить, но как это тогда спрятать?
        }
        GL11.glPopMatrix();
       
    }
И еще, как можно вывести в текст здоровье игрока? Просто текст я выводить умею.
Просто создать экземпляр игрока и получать его здоровье? Ткните пожалуйста пальцем, в какую сторону копать.
Благодарю заранее.
 
Краш-лог
// You're mean.

Time: 21.11.19 17:51
Description: Unexpected error

java.lang.UnsupportedOperationException: Attempted to call Event#setCanceled() on a non-cancelable event of type: net.minecraftforge.client.event.RenderGameOverlayEvent.Post
at net.minecraftforge.eventbus.api.Event.setCanceled(Event.java:95) ~[eventbus-1.0.0-service.jar:?] {}
at ru.dmitriin.surv.utils.RenderHandler.onRenderHUD(RenderHandler.java:18) ~[main/:?] {re:classloading}
at net.minecraftforge.eventbus.ASMEventHandler_5_RenderHandler_onRenderHUD_Post.invoke(.dynamic) ~[?:?] {}
at net.minecraftforge.eventbus.ASMEventHandler.invoke(ASMEventHandler.java:80) ~[eventbus-1.0.0-service.jar:?] {}
at net.minecraftforge.eventbus.EventBus.post(EventBus.java:258) ~[eventbus-1.0.0-service.jar:?] {}
at net.minecraftforge.client.ForgeIngameGui.post(ForgeIngameGui.java:831) ~[forge-1.14.4-28.1.90_mapped_snapshot_20190719-1.14.3-recomp.jar:?] {re:classloading}
at net.minecraftforge.client.ForgeIngameGui.renderHealth(ForgeIngameGui.java:501) ~[forge-1.14.4-28.1.90_mapped_snapshot_20190719-1.14.3-recomp.jar:?] {re:classloading}
at net.minecraftforge.client.ForgeIngameGui.renderGameOverlay(ForgeIngameGui.java:162) ~[forge-1.14.4-28.1.90_mapped_snapshot_20190719-1.14.3-recomp.jar:?] {re:classloading}
at net.minecraft.client.renderer.GameRenderer.updateCameraAndRender(GameRenderer.java:535) ~[forge-1.14.4-28.1.90_mapped_snapshot_20190719-1.14.3-recomp.jar:?] {re:classloading,pl:accesstransformer:B,pl:runtimedistcleaner:A}
at net.minecraft.client.Minecraft.runGameLoop(Minecraft.java:925) ~[forge-1.14.4-28.1.90_mapped_snapshot_20190719-1.14.3-recomp.jar:?] {re:classloading,pl:accesstransformer:B,pl:runtimedistcleaner:A}
at net.minecraft.client.Minecraft.run(Minecraft.java:384) ~[forge-1.14.4-28.1.90_mapped_snapshot_20190719-1.14.3-recomp.jar:?] {re:classloading,pl:accesstransformer:B,pl:runtimedistcleaner:A}
at net.minecraft.client.main.Main.main(Main.java:128) ~[forge-1.14.4-28.1.90_mapped_snapshot_20190719-1.14.3-recomp.jar:?] {re:classloading,pl:runtimedistcleaner:A}
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) ~[?:1.8.0_221] {}
at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source) ~[?:1.8.0_221] {}
at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source) ~[?:1.8.0_221] {}
at java.lang.reflect.Method.invoke(Unknown Source) ~[?:1.8.0_221] {}
at net.minecraftforge.userdev.FMLUserdevClientLaunchProvider.lambda$launchService$0(FMLUserdevClientLaunchProvider.java:55) ~[forge-1.14.4-28.1.90_mapped_snapshot_20190719-1.14.3-recomp.jar:?] {}
at cpw.mods.modlauncher.LaunchServiceHandlerDecorator.launch(LaunchServiceHandlerDecorator.java:37) [modlauncher-4.1.0.jar:?] {}
at cpw.mods.modlauncher.LaunchServiceHandler.launch(LaunchServiceHandler.java:54) [modlauncher-4.1.0.jar:?] {}
at cpw.mods.modlauncher.LaunchServiceHandler.launch(LaunchServiceHandler.java:72) [modlauncher-4.1.0.jar:?] {}
at cpw.mods.modlauncher.Launcher.run(Launcher.java:81) [modlauncher-4.1.0.jar:?] {}
at cpw.mods.modlauncher.Launcher.main(Launcher.java:65) [modlauncher-4.1.0.jar:?] {}
at net.minecraftforge.userdev.LaunchTesting.main(LaunchTesting.java:101) [forge-1.14.4-28.1.90_mapped_snapshot_20190719-1.14.3-recomp.jar:?] {}


A detailed walkthrough of the error, its code path and all known details is as follows:
---------------------------------------------------------------------------------------

-- Head --
Thread: Client thread
Stacktrace:
at net.minecraftforge.eventbus.api.Event.setCanceled(Event.java:95)
at ru.dmitriin.surv.utils.RenderHandler.onRenderHUD(RenderHandler.java:18)
at net.minecraftforge.eventbus.ASMEventHandler_5_RenderHandler_onRenderHUD_Post.invoke(.dynamic)
at net.minecraftforge.eventbus.ASMEventHandler.invoke(ASMEventHandler.java:80)
at net.minecraftforge.eventbus.EventBus.post(EventBus.java:258)
at net.minecraftforge.client.ForgeIngameGui.post(ForgeIngameGui.java:831)
at net.minecraftforge.client.ForgeIngameGui.renderHealth(ForgeIngameGui.java:501)
at net.minecraftforge.client.ForgeIngameGui.renderGameOverlay(ForgeIngameGui.java:162)

-- Affected level --
Details:
All players: 1 total; [ClientPlayerEntity['Dev'/5, l='MpServer', x=-68.50, y=4.00, z=-102.50]]
Chunk stats: Client Chunk Cache: 169, 81
Level dimension: DimensionType{minecraft:overworld}
Level name: MpServer
Level seed: 0
Level generator: ID 01 - flat, ver 0. Features enabled: false
Level generator options: {}
Level spawn location: World: (-64,4,-96), Chunk: (at 0,0,0 in -4,-6; contains blocks -64,0,-96 to -49,255,-81), Region: (-1,-1; contains chunks -32,-32 to -1,-1, blocks -512,0,-512 to -1,255,-1)
Level time: 160174 game time, 160174 day time
Level storage version: 0x00000 - Unknown?
Level weather: Rain time: 0 (now: true), thunder time: 0 (now: false)
Level game mode: Game mode: creative (ID 1). Hardcore: false. Cheats: false
Server brand: forge
Server type: Integrated singleplayer server
Stacktrace:
at net.minecraft.client.world.ClientWorld.fillCrashReport(ClientWorld.java:425)
at net.minecraft.client.Minecraft.addGraphicsAndWorldToCrashReport(Minecraft.java:1824)
at net.minecraft.client.Minecraft.run(Minecraft.java:405)
at net.minecraft.client.main.Main.main(Main.java:128)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
at java.lang.reflect.Method.invoke(Unknown Source)
at net.minecraftforge.userdev.FMLUserdevClientLaunchProvider.lambda$launchService$0(FMLUserdevClientLaunchProvider.java:55)
at cpw.mods.modlauncher.LaunchServiceHandlerDecorator.launch(LaunchServiceHandlerDecorator.java:37)
at cpw.mods.modlauncher.LaunchServiceHandler.launch(LaunchServiceHandler.java:54)
at cpw.mods.modlauncher.LaunchServiceHandler.launch(LaunchServiceHandler.java:72)
at cpw.mods.modlauncher.Launcher.run(Launcher.java:81)
at cpw.mods.modlauncher.Launcher.main(Launcher.java:65)
at net.minecraftforge.userdev.LaunchTesting.main(LaunchTesting.java:101)
Краш-лог:
// You're mean.

Time: 21.11.19 17:51
Description: Unexpected error

java.lang.UnsupportedOperationException: Attempted to call Event#setCanceled() on a non-cancelable event of type: net.minecraftforge.client.event.RenderGameOverlayEvent.Post
	at net.minecraftforge.eventbus.api.Event.setCanceled(Event.java:95) ~[eventbus-1.0.0-service.jar:?] {}
	at ru.dmitriin.surv.utils.RenderHandler.onRenderHUD(RenderHandler.java:18) ~[main/:?] {re:classloading}
	at net.minecraftforge.eventbus.ASMEventHandler_5_RenderHandler_onRenderHUD_Post.invoke(.dynamic) ~[?:?] {}
	at net.minecraftforge.eventbus.ASMEventHandler.invoke(ASMEventHandler.java:80) ~[eventbus-1.0.0-service.jar:?] {}
	at net.minecraftforge.eventbus.EventBus.post(EventBus.java:258) ~[eventbus-1.0.0-service.jar:?] {}
	at net.minecraftforge.client.ForgeIngameGui.post(ForgeIngameGui.java:831) ~[forge-1.14.4-28.1.90_mapped_snapshot_20190719-1.14.3-recomp.jar:?] {re:classloading}
	at net.minecraftforge.client.ForgeIngameGui.renderHealth(ForgeIngameGui.java:501) ~[forge-1.14.4-28.1.90_mapped_snapshot_20190719-1.14.3-recomp.jar:?] {re:classloading}
	at net.minecraftforge.client.ForgeIngameGui.renderGameOverlay(ForgeIngameGui.java:162) ~[forge-1.14.4-28.1.90_mapped_snapshot_20190719-1.14.3-recomp.jar:?] {re:classloading}
	at net.minecraft.client.renderer.GameRenderer.updateCameraAndRender(GameRenderer.java:535) ~[forge-1.14.4-28.1.90_mapped_snapshot_20190719-1.14.3-recomp.jar:?] {re:classloading,pl:accesstransformer:B,pl:runtimedistcleaner:A}
	at net.minecraft.client.Minecraft.runGameLoop(Minecraft.java:925) ~[forge-1.14.4-28.1.90_mapped_snapshot_20190719-1.14.3-recomp.jar:?] {re:classloading,pl:accesstransformer:B,pl:runtimedistcleaner:A}
	at net.minecraft.client.Minecraft.run(Minecraft.java:384) ~[forge-1.14.4-28.1.90_mapped_snapshot_20190719-1.14.3-recomp.jar:?] {re:classloading,pl:accesstransformer:B,pl:runtimedistcleaner:A}
	at net.minecraft.client.main.Main.main(Main.java:128) ~[forge-1.14.4-28.1.90_mapped_snapshot_20190719-1.14.3-recomp.jar:?] {re:classloading,pl:runtimedistcleaner:A}
	at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) ~[?:1.8.0_221] {}
	at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source) ~[?:1.8.0_221] {}
	at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source) ~[?:1.8.0_221] {}
	at java.lang.reflect.Method.invoke(Unknown Source) ~[?:1.8.0_221] {}
	at net.minecraftforge.userdev.FMLUserdevClientLaunchProvider.lambda$launchService$0(FMLUserdevClientLaunchProvider.java:55) ~[forge-1.14.4-28.1.90_mapped_snapshot_20190719-1.14.3-recomp.jar:?] {}
	at cpw.mods.modlauncher.LaunchServiceHandlerDecorator.launch(LaunchServiceHandlerDecorator.java:37) [modlauncher-4.1.0.jar:?] {}
	at cpw.mods.modlauncher.LaunchServiceHandler.launch(LaunchServiceHandler.java:54) [modlauncher-4.1.0.jar:?] {}
	at cpw.mods.modlauncher.LaunchServiceHandler.launch(LaunchServiceHandler.java:72) [modlauncher-4.1.0.jar:?] {}
	at cpw.mods.modlauncher.Launcher.run(Launcher.java:81) [modlauncher-4.1.0.jar:?] {}
	at cpw.mods.modlauncher.Launcher.main(Launcher.java:65) [modlauncher-4.1.0.jar:?] {}
	at net.minecraftforge.userdev.LaunchTesting.main(LaunchTesting.java:101) [forge-1.14.4-28.1.90_mapped_snapshot_20190719-1.14.3-recomp.jar:?] {}


A detailed walkthrough of the error, its code path and all known details is as follows:
---------------------------------------------------------------------------------------

-- Head --
Thread: Client thread
Stacktrace:
	at net.minecraftforge.eventbus.api.Event.setCanceled(Event.java:95)
	at ru.dmitriin.surv.utils.RenderHandler.onRenderHUD(RenderHandler.java:18)
	at net.minecraftforge.eventbus.ASMEventHandler_5_RenderHandler_onRenderHUD_Post.invoke(.dynamic)
	at net.minecraftforge.eventbus.ASMEventHandler.invoke(ASMEventHandler.java:80)
	at net.minecraftforge.eventbus.EventBus.post(EventBus.java:258)
	at net.minecraftforge.client.ForgeIngameGui.post(ForgeIngameGui.java:831)
	at net.minecraftforge.client.ForgeIngameGui.renderHealth(ForgeIngameGui.java:501)
	at net.minecraftforge.client.ForgeIngameGui.renderGameOverlay(ForgeIngameGui.java:162)

-- Affected level --
Details:
	All players: 1 total; [ClientPlayerEntity['Dev'/5, l='MpServer', x=-68.50, y=4.00, z=-102.50]]
	Chunk stats: Client Chunk Cache: 169, 81
	Level dimension: DimensionType{minecraft:overworld}
	Level name: MpServer
	Level seed: 0
	Level generator: ID 01 - flat, ver 0. Features enabled: false
	Level generator options: {}
	Level spawn location: World: (-64,4,-96), Chunk: (at 0,0,0 in -4,-6; contains blocks -64,0,-96 to -49,255,-81), Region: (-1,-1; contains chunks -32,-32 to -1,-1, blocks -512,0,-512 to -1,255,-1)
	Level time: 160174 game time, 160174 day time
	Level storage version: 0x00000 - Unknown?
	Level weather: Rain time: 0 (now: true), thunder time: 0 (now: false)
	Level game mode: Game mode: creative (ID 1). Hardcore: false. Cheats: false
	Server brand: forge
	Server type: Integrated singleplayer server
Stacktrace:
	at net.minecraft.client.world.ClientWorld.fillCrashReport(ClientWorld.java:425)
	at net.minecraft.client.Minecraft.addGraphicsAndWorldToCrashReport(Minecraft.java:1824)
	at net.minecraft.client.Minecraft.run(Minecraft.java:405)
	at net.minecraft.client.main.Main.main(Main.java:128)
	at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
	at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
	at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
	at java.lang.reflect.Method.invoke(Unknown Source)
	at net.minecraftforge.userdev.FMLUserdevClientLaunchProvider.lambda$launchService$0(FMLUserdevClientLaunchProvider.java:55)
	at cpw.mods.modlauncher.LaunchServiceHandlerDecorator.launch(LaunchServiceHandlerDecorator.java:37)
	at cpw.mods.modlauncher.LaunchServiceHandler.launch(LaunchServiceHandler.java:54)
	at cpw.mods.modlauncher.LaunchServiceHandler.launch(LaunchServiceHandler.java:72)
	at cpw.mods.modlauncher.Launcher.run(Launcher.java:81)
	at cpw.mods.modlauncher.Launcher.main(Launcher.java:65)
	at net.minecraftforge.userdev.LaunchTesting.main(LaunchTesting.java:101)
292
14
160
Attempted to call Event#setCanceled() on a non-cancelable event of type
Ты пытаешься отменить неотменяемый метод.

RenderGameOverlayEvent.Post
Post бросается, когда событие уже случилось (в данном случае - отрисовка оверлея). Если ты хочешь отменить отрисовку - лови ивент RenderGameOverlayEvent.Pre.

Просто создать экземпляр игрока и получать его здоровье?
Нет, надо брать уже существующий экземпляр. Он лежит в Minecraft.getMinecraft().player
 
516
11
39
как можно вывести в текст здоровье игрока?
получаешь значение

Java:
float health = mc.player.getHealth();
                    float maxhealth = mc.player.getMaxHealth();
Выводишь
Java:
 mc.ingameGUI.drawString(this.mc.fontRenderer,health+"/"+maxhealth, x/2, y-32, 0xFFFFFF);
 
52
1
6
Новая проблема.
Нужно отобразить текст над хотбаром, независимо от размеров окна.

Java:
int w = mc.mainWindow.getWidth();
int h = mc.mainWindow.getHeight();
Так получаю размеры окна, далее экспериментируя, прибавлял/вычитал пиксели в drawString, но текста теперь вообще нет.
 
1,038
57
229
размер холста на котором ты рисуешь не равен размеру окна. Его размер зависит от размера GUI которого ты выбрал. Поэтому если не менять GUI Scale в настройках, он всегда будет одного размера (около 600px в ширину вроде), ну вот стандартное окно когда открывается при загрузке, это и есть его размер.
 
Статус
В этой теме нельзя размещать новые ответы.
Сверху