Event onCrafting()



  • Bonjour 🙂

    Je reviens encore pour un problème d'achievement (Et oui, encore :/)
    Tout simplement, quand je craft l'item indiqué dans le code, je n'ai pas l'achievement. Voici les codes

    J'ai déclaré les achievements

    public static AchievementPage NawakPage;
    
    public static Achievement obtenirGrenat;
    public static Achievement obtenirSaphir;
    public static Achievement obtenirRubis;
    

    Je les ai créé

    //Achievements
    
    obtenirGrenat = new Achievement("achievement.obtenirGrenat", "obtenirGrenat", 0, 0, this.Grenat, (Achievement)null).initIndependentStat().registerStat();
    obtenirSaphir = new Achievement("achievement.obtenirSaphir", "obtenirSaphir", -2, 0, this.Saphir, obtenirGrenat).registerStat();
    obtenirRubis = new Achievement("achievement.obtenirRubis", "obtenirRubis", 2, 0, this.Rubis, obtenirGrenat).registerStat();
    
    NawakPage = new AchievementPage("Nawak", obtenirGrenat, obtenirSaphir, obtenirRubis);
    
    AchievementPage.registerAchievementPage(NawakPage);
    

    Création d'une class avec mes events

    MinecraftForge.EVENT_BUS.register(new CraftingHandler());
    

    Et le code de CraftingHandler

    package fr.zery59.modnawak.common;
    
    import net.minecraft.entity.item.EntityItem;
    import net.minecraft.item.ItemStack;
    import cpw.mods.fml.common.eventhandler.SubscribeEvent;
    import cpw.mods.fml.common.gameevent.PlayerEvent.ItemCraftedEvent;
    import cpw.mods.fml.common.gameevent.PlayerEvent.ItemPickupEvent;
    
    public class CraftingHandler
    {
        @SubscribeEvent
        public void onCrafting(ItemCraftedEvent event)
        {
            System.out.println("event launched");
            if (event.crafting.getItem() == Nawak.Grenat)
            {
                event.player.addStat(Nawak.obtenirGrenat, 1);
            }
        }
    }
    

    Voilà j'espère que vous pourrez m'aider. merci d'avance 🙂



  • C'est juste une hypothèse, essaye de changer MinecraftForge.EVENT_BUS.register(…) par FMLCommonHandler.instance().bus().register(..) 😉



  • Bonne hypothèse, ça fonctionne ! Merci beaucoup 🙂 Ça mérite 2 points de réputation positif !



  • Haha ravi de t'avoir aidé 😄