Как включить светящиеся эффекты сущности ?

Версия Minecraft
1.12.2
19
0
Когда игрок смотрит на entity , мы хотим установить значение entity.setGlowing в true. Однако значение entity.setGlowing по-прежнему равно true, даже если игрок не смотрит на entity . Как изменить значение entity.setGlowing на false, если игрок не смотрит на entity ?



Я также написал следующий код, но это не удалось.

Java:
@SubscribeEvent
    public void renderWorldLastEvent(RenderWorldLastEvent event) {
        Entity entity = Minecraft.getMinecraft().objectMouseOver.entityHit;
        if (entity != null) {
            entity.setGlowing(true);
        } else {
            entity.setGlowing(false);
        }
    }
}




2019-02-12_18.25.24.png

2019-02-12_18.25.29.png
 
Краш-лог
[18:37:06] [Client thread/ERROR] [FML]: Exception caught during firing event net.minecraftforge.client.event.RenderWorldLastEvent@6674f28a:
java.lang.NullPointerException: null
at kr.guebeul.roel.renderer.HUD.renderWorldLastEvent(HUD.java:112) ~[HUD.class:?]
at net.minecraftforge.fml.common.eventhandler.ASMEventHandler_13_HUD_renderWorldLastEvent_RenderWorldLastEvent.invoke(.dynamic) ~[?:?]
at net.minecraftforge.fml.common.eventhandler.ASMEventHandler.invoke(ASMEventHandler.java:90) ~[ASMEventHandler.class:?]
at net.minecraftforge.fml.common.eventhandler.EventBus.post(EventBus.java:182) [EventBus.class:?]
at net.minecraftforge.client.ForgeHooksClient.dispatchRenderLast(ForgeHooksClient.java:196) [ForgeHooksClient.class:?]
at net.minecraft.client.renderer.EntityRenderer.renderWorldPass(EntityRenderer.java:1485) [EntityRenderer.class:?]
at net.minecraft.client.renderer.EntityRenderer.renderWorld(EntityRenderer.java:1312) [EntityRenderer.class:?]
at net.minecraft.client.renderer.EntityRenderer.updateCameraAndRender(EntityRenderer.java:1115) [EntityRenderer.class:?]
at net.minecraft.client.Minecraft.runGameLoop(Minecraft.java:1209) [Minecraft.class:?]
at net.minecraft.client.Minecraft.run(Minecraft.java:442) [Minecraft.class:?]
at net.minecraft.client.main.Main.main(Main.java:118) [Main.class:?]
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) ~[?:1.8.0_202]
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) ~[?:1.8.0_202]
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) ~[?:1.8.0_202]
at java.lang.reflect.Method.invoke(Method.java:498) ~[?:1.8.0_202]
at net.minecraft.launchwrapper.Launch.launch(Launch.java:135) [launchwrapper-1.12.jar:?]
at net.minecraft.launchwrapper.Launch.main(Launch.java:28) [launchwrapper-1.12.jar:?]
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) ~[?:1.8.0_202]
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) ~[?:1.8.0_202]
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) ~[?:1.8.0_202]
at java.lang.reflect.Method.invoke(Method.java:498) ~[?:1.8.0_202]
at net.minecraftforge.gradle.GradleStartCommon.launch(GradleStartCommon.java:97) [start/:?]
at GradleStart.main(GradleStart.java:25) [start/:?]
[18:37:06] [Client thread/ERROR] [FML]: Index: 1 Listeners:
[18:37:06] [Client thread/ERROR] [FML]: 0: NORMAL
[18:37:06] [Client thread/ERROR] [FML]: 1: ASM: kr.guebeul.roel.renderer.HUD@31857c80 renderWorldLastEvent(Lnet/minecraftforge/client/event/RenderWorldLastEvent;)V
Краш-лог:
[18:37:06] [Client thread/ERROR] [FML]: Exception caught during firing event net.minecraftforge.client.event.RenderWorldLastEvent@6674f28a:
java.lang.NullPointerException: null
	at kr.guebeul.roel.renderer.HUD.renderWorldLastEvent(HUD.java:112) ~[HUD.class:?]
	at net.minecraftforge.fml.common.eventhandler.ASMEventHandler_13_HUD_renderWorldLastEvent_RenderWorldLastEvent.invoke(.dynamic) ~[?:?]
	at net.minecraftforge.fml.common.eventhandler.ASMEventHandler.invoke(ASMEventHandler.java:90) ~[ASMEventHandler.class:?]
	at net.minecraftforge.fml.common.eventhandler.EventBus.post(EventBus.java:182) [EventBus.class:?]
	at net.minecraftforge.client.ForgeHooksClient.dispatchRenderLast(ForgeHooksClient.java:196) [ForgeHooksClient.class:?]
	at net.minecraft.client.renderer.EntityRenderer.renderWorldPass(EntityRenderer.java:1485) [EntityRenderer.class:?]
	at net.minecraft.client.renderer.EntityRenderer.renderWorld(EntityRenderer.java:1312) [EntityRenderer.class:?]
	at net.minecraft.client.renderer.EntityRenderer.updateCameraAndRender(EntityRenderer.java:1115) [EntityRenderer.class:?]
	at net.minecraft.client.Minecraft.runGameLoop(Minecraft.java:1209) [Minecraft.class:?]
	at net.minecraft.client.Minecraft.run(Minecraft.java:442) [Minecraft.class:?]
	at net.minecraft.client.main.Main.main(Main.java:118) [Main.class:?]
	at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) ~[?:1.8.0_202]
	at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) ~[?:1.8.0_202]
	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) ~[?:1.8.0_202]
	at java.lang.reflect.Method.invoke(Method.java:498) ~[?:1.8.0_202]
	at net.minecraft.launchwrapper.Launch.launch(Launch.java:135) [launchwrapper-1.12.jar:?]
	at net.minecraft.launchwrapper.Launch.main(Launch.java:28) [launchwrapper-1.12.jar:?]
	at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) ~[?:1.8.0_202]
	at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) ~[?:1.8.0_202]
	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) ~[?:1.8.0_202]
	at java.lang.reflect.Method.invoke(Method.java:498) ~[?:1.8.0_202]
	at net.minecraftforge.gradle.GradleStartCommon.launch(GradleStartCommon.java:97) [start/:?]
	at GradleStart.main(GradleStart.java:25) [start/:?]
[18:37:06] [Client thread/ERROR] [FML]: Index: 1 Listeners:
[18:37:06] [Client thread/ERROR] [FML]: 0: NORMAL
[18:37:06] [Client thread/ERROR] [FML]: 1: ASM: kr.guebeul.roel.renderer.HUD@31857c80 renderWorldLastEvent(Lnet/minecraftforge/client/event/RenderWorldLastEvent;)V
Последнее редактирование:
Решение
Java:
    private Entity lastPointedEntity; 

    @SubscribeEvent
    public void renderWorldLastEvent(RenderWorldLastEvent event) {
        Entity entity = Minecraft.getMinecraft().objectMouseOver.entityHit;

        if(lastPointedEntity != null && lastPointedEntity != entity){
                lastPointedEntity.setGlowing(false);
                lastPointedEntity = null;
            }

        if (entity != null) {
            entity.setGlowing(true);
            lastPointedEntity = entity;
        }
    }
}
1,195
31
183
Ну так у тебя энтити - нулл, ты пустому месту пытаешься всунуть гловинг, из-за чего и крашит :D
Я думаю сделать так: заносить в лист всех энтитей которые вокруг игрока, и проверять, смотрит он на них или нет, а там сетай чо хочешь
Но мб я и не прав
 

tox1cozZ

aka Agravaine
8,455
598
2,892
Java:
    private Entity lastPointedEntity; 

    @SubscribeEvent
    public void renderWorldLastEvent(RenderWorldLastEvent event) {
        Entity entity = Minecraft.getMinecraft().objectMouseOver.entityHit;

        if(lastPointedEntity != null && lastPointedEntity != entity){
                lastPointedEntity.setGlowing(false);
                lastPointedEntity = null;
            }

        if (entity != null) {
            entity.setGlowing(true);
            lastPointedEntity = entity;
        }
    }
}
 
Сверху