Событие не работает?

Версия Minecraft
1.7.10
1,417
44
594
В общем не работает событие. Вот код:

Java:
// Главный класс
@EventHandler
    public void load(FMLInitializationEvent event)
    {
        FMLCommonHandler.instance().bus().register(new TutFMLEventHandler());
    }
Java:
public class TutFMLEventHandler {
    @SubscribeEvent
    public void onPlayerRender(RenderPlayerEvent.Pre event){
        EntityPlayer player = event.entityPlayer;
        if (player != null)
        {
            System.out.println("... рендер активирован");
        }
    }
}
Подскажите, пожалуйста, в чем косяк?
 
3,005
192
592
Код:
    @SubscribeEvent
    public void onPlayerRender(RenderPlayerEvent.Pre event){
        System.out.println("Есть ли игрок? " + (event.entityPlayer != null ? "Да." : "Нет."));
    }
Попробуй так.
(Возможны ошибки в скобках, хз)
 
1,417
44
594
Java:
public class TutFMLEventHandler {
    @SubscribeEvent
    public void onPlayerRender(RenderPlayerEvent.Specials.Post event){
        System.out.println("  рендер активирован 3");
        if(event.isCanceled()) return;
        EntityPlayer player = event.entityPlayer;
        if (player != null)
        {
            System.out.println("  рендер активирован");
        }
        System.out.println("  рендер активирован 2");
        Minecraft mc = Minecraft.getMinecraft();
        Tessellator tessellator = Tessellator.instance;
        GL11.glPushMatrix();
        tessellator.startDrawingQuads();
        ///
        ///
        tessellator.draw();
        ///
        ///
        GL11.glPopMatrix();
    }
}
effect 0
 
1,417
44
594
Что только не пытался сделать.
Отмени попробуй сначала (event.setCanceled)
if(event.isCanceled()) return;
Сделал и эту проверку и в клиент прокси регистрировал, и в постинит переносил.. Все не работает :/
 
1,417
44
594
Описываю все очень подробно. Вот что я сделал:

Java:
    @Mod.EventHandler
    public void preInit(FMLPreInitializationEvent event) {
    ....
            TutFMLEventHandler handler = new TutFMLEventHandler();
            MinecraftForge.EVENT_BUS.register(handler);
            FMLCommonHandler.instance().bus().register(handler);
    }

Java:
public class TutFMLEventHandler {
    @SubscribeEvent
    @SideOnly(Side.CLIENT)
    public void onPlayerRender(RenderPlayerEvent.Specials.Post event){
        System.out.println(" рендер активирован 3");
        if(event.isCanceled()) return;
        EntityPlayer player = event.entityPlayer;
        if (player != null)
        {
            System.out.println(" рендер активирован");
        }
        System.out.println(" рендер активирован 2");
        ...
    }
}
 
Последнее редактирование:
3,005
192
592
Найс кодер.
1512426977849.png
У меня все работает...
Но работает когда открыт инвентарь игрока в гм 0 или гм 1 с вкладкой инвентаря игрока.
И ты мог бы посмотреть, что где он используется и понять (renderEquippedItems, типо рендерит тогда, когда рендерятся экипированные вещи).
Найс кодер.
 
3,005
192
592
1,417
44
594
Смысл создавать 2 файла, когда можно все поместить в 1 ? ...
Да, смысл вообще разделять на классы, когда можно все в 1 упихать (Классы, которые не нужно наследование)

Взять код который не работает
Тут не про твой, а про тот, что я писал. Ты просто сунул его в главный класс, но ошибка при этом до сих пор не известна, а просто сделан "костыль".
 
2,505
81
397
Да, смысл вообще разделять на классы, когда можно все в 1 упихать (Классы, которые не нужно наследование)
Не раздувай из мухи слона. Если у тебя на весь мод только один ивент, то вполне уместно поместить его в главный класс. Тем более, там стоит SideOnly аннотация. А прокси это вообще опциональная штука. Совсем не обязательно использовать его всегда.
 
1,417
44
594
Не раздувай из мухи слона. Если у тебя на весь мод только один ивент
Да, но то что он там сейчас 1 - не значит, что он там всю жизнь в одиночестве сидеть будет
 
1,417
44
594
1,417
44
594
Теперь обиженку строим,
Лол. Не строю, а говорю что думаю. Это кб разные вещи, посмотри в толковом словаре, что ли.

Как вариант, чтобы другие игроки могли почуствовать рендер
Серверу не нужно знать об это эвенте, даже без сервера будет рендер у других игроков, Найс кодер.
 
Последнее редактирование:
Сверху