Как выдать предмет игроку при первом заходе в мир?

Версия Minecraft
1.7.10
Привет, хочу выдать предмет при первом заходе в мир(один единственный раз, как например "Материалы и вы том 1" из Tinker's construct). Пробовал:

Java:
 @SubscribeEvent
        public void playerLoggedIn(PlayerEvent.PlayerLoggedInEvent e) {
            EntityPlayer player = e.player;
            NBTTagCompound entityData = player.getEntityData();
            String key = "freeApple";
            entityData.setBoolean(key, false);
            if (!entityData.getBoolean(key)) {
                entityData.setBoolean(key, true);
                player.inventory.addItemStackToInventory(new ItemStack(Items.apple));
            }
        }
в главном классе - не работает. Может, надо переместить в другой класс?
 
Решение
Может надо зарегать ивент? 🌚

tox1cozZ

aka Agravaine
8,455
598
2,892
Может надо зарегать ивент? 🌚
 
Java:
@Mod.EventHandler
    public void Init(FMLInitializationEvent event) {
        NetworkRegistry.INSTANCE.registerGuiHandler(instance, new HandlerGui());
        MinecraftForge.EVENT_BUS.register(new chemicalcraftbase());
    }
    
      
      @SubscribeEvent
        public void playerLoggedIn(PlayerEvent.PlayerLoggedInEvent e) {
            EntityPlayer player = e.player;
            NBTTagCompound entityData = player.getEntityData();
            String key = "freeApple";
            entityData.setBoolean(key, false);
            if (!entityData.getBoolean(key)) {
                entityData.setBoolean(key, true);
                player.inventory.addItemStackToInventory(new ItemStack(Items.apple));
            }
        }
что-то не так делаю?(
 
137
7
37
Создай свой класс где ты будешь записывать события, допустим, EventHandleer
Там пишешь этот метод

@SubscribeEvent public void playerLoggedIn(PlayerEvent.PlayerLoggedInEvent e) { EntityPlayer player = e.player; NBTTagCompound entityData = player.getEntityData(); String key = "freeApple"; entityData.setBoolean(key, false); if (!entityData.getBoolean(key)) { entityData.setBoolean(key, true); player.inventory.addItemStackToInventory(new ItemStack(Items.apple)); }
А в главном классе мода в preInit() регаешь твой EventHandleer
MinecraftForge.EVENT_BUS.register(new EventHandleer());
 
Сверху