Crash du jeu



  • Bonjour,

    C'est très simple mais pas cool, dès que je prends ma pioche en amethyste et que je la mais dans une anvil, tout va bien, jusqu'au moment ou je veux rajouter un autre item ou un livre enchanter.

    Puisque je sais que vous allez me les demander voila mes codes java

    import net.minecraft.item.IItemTier;
    import net.minecraft.item.crafting.Ingredient;
    import net.minecraft.util.LazyLoadBase;
    
    import java.util.function.Supplier;
    
    public enum CustomItemTiers implements IItemTier
    {
        AMETHYST(1999, 6.5f, 6f, 4, 8, null);
    
        private final int maxUses;
        private final float efficiency;
        private final float attackDamage;
        private final int harvestLevel;
        private final int enchantability;
        private final LazyLoadBase<Ingredient> repairMaterial;
    
        CustomItemTiers(int maxUses, float efficiency, float attackDamage, int harvestLevel, int enchantability, Supplier<Ingredient> repairMaterial)
        {
            this.maxUses = maxUses;
            this.efficiency = efficiency;
            this.attackDamage = attackDamage;
            this.harvestLevel = harvestLevel;
            this.enchantability = enchantability;
            this.repairMaterial = new LazyLoadBase<>(repairMaterial);
        }
    
        @Override
        public int getMaxUses()
        {
            return maxUses;
        }
    
        @Override
        public float getEfficiency()
        {
            return efficiency;
        }
    
        @Override
        public float getAttackDamage()
        {
            return attackDamage;
        }
    
        @Override
        public int getHarvestLevel()
        {
            return harvestLevel;
        }
    
        @Override
        public int getEnchantability()
        {
            return enchantability;
        }
    
        @Override
        public Ingredient getRepairMaterial()
        {
            return repairMaterial.getValue();
        }
    }
    

    et :

    @Mod.EventBusSubscriber(modid = Refs.MODID, bus = Mod.EventBusSubscriber.Bus.MOD)
    public class ModItems
    {
        @ObjectHolder(Refs.MODID + ":amethyst_pickaxe")
        public static final ItemPickaxe AMETHYST_PICKAXE = null;
        @SubscribeEvent
        
        public static void registerItems(RegistryEvent.Register<Item> event)
        {
            event.getRegistry().register(new CustomPickaxe("amethyst_pickaxe", CustomItemTiers.AMETHYST, 1, -0.8f, new Item.Properties().group(ModGroups.MYGROUP)));
        }
    

    et pour finir :

    public class CustomPickaxe extends ItemPickaxe
    {
        public CustomPickaxe(String name, IItemTier tier, int attackDamageIn, float attackSpeedIn, Properties builder)
        {
            super(tier, attackDamageIn, attackSpeedIn, builder);
    
            setRegistryName(name);
        }
    }
    


  • yo, donne le crash log



  • C'étais obliger que j'oublie qqc 😞
    bon voila :
    crash-2019-06-05_19.06.59-client.txt


  • Administrateurs

    Salut,

    Visiblement il faudrait override la fonction getIsRepairable dans la classe de ton item (CustomPickaxe).



  • Mais j'ai pas cette fonction moi dans mon CustomPickaxe


  • Administrateurs

    Justement, il faut que tu l'implémentes, car celle qui est présente dans la classe ItemTiered de Minecraft ne gère que les outils de Minecraft.



  • Merci ça à marcher mais maintenant 🙂 , juste un question bête, j'ai mis return true dans getIsRepairable, mais comment le code c'est ce que je veut mettre comme truc pour réparrer ?


  • Administrateurs

    Si tu as juste mis true, c'est réparable avec n'importe quoi.

    Il faut vérifier que le repair.getItem() == ItemVoulu;



  • Mais c'est ou repair.getItem(), faut le créer ?



  • Ha mais non mais je suis bêtes ok il faut faire un condition xD


Log in to reply