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

Статус
В этой теме нельзя размещать новые ответы.
Версия 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)
Attempted to call Event#setCanceled() on a non-cancelable event of type
Ты пытаешься отменить неотменяемый метод.

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

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

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);
 
Новая проблема.
Нужно отобразить текст над хотбаром, независимо от размеров окна.

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