1.12.2 Bière bug de partout



  • Bonjour,

    j'aimerais faire une boisson qui donne un effet mais j'ai 2 problèmes

    1: le bruit est celui de quand on mange qqch
    2: sa ne donne pas la bouteille vide (bouteille créée au par-avant)

    voici le code:

    Beer.java

    package com.frenchdevteam.goodlifemod.objects.items;
    
    import com.frenchdevteam.goodlifemod.GoodLife;
    import com.frenchdevteam.goodlifemod.init.ItemInit;
    import com.frenchdevteam.goodlifemod.util.interfaces.IHasModel;
    import net.minecraft.client.util.ITooltipFlag;
    import net.minecraft.entity.EntityLivingBase;
    import net.minecraft.entity.player.EntityPlayer;
    import net.minecraft.init.MobEffects;
    import net.minecraft.item.ItemFood;
    import net.minecraft.item.ItemStack;
    import net.minecraft.potion.PotionEffect;
    import net.minecraft.world.World;
    
    import javax.annotation.Nullable;
    import java.util.List;
    
    public class Beer extends ItemFood implements IHasModel
    {
        public Beer(String name, int amount, float saturation, boolean isWolfFood)
        {
            super(amount, saturation, isWolfFood);
            setUnlocalizedName(name);
            setRegistryName(name);
            setCreativeTab(GoodLife.GOODLIFETAB);
            setAlwaysEdible();
    
    
            ItemInit.ITEMS.add(this);
        }
    
        @Override
        public ItemStack onItemUseFinish(ItemStack stack, World worldIn, EntityLivingBase entityLiving)
        {
            entityLiving.addPotionEffect(new PotionEffect(MobEffects.NAUSEA, 200, 5, false, false));
            entityLiving.addPotionEffect(new PotionEffect(MobEffects.RESISTANCE, 200, 1, false, false));
            ItemInit.ITEMS.add(ItemInit.BOUTEILLE);
            return super.onItemUseFinish(stack, worldIn, entityLiving);
        }
    
        @Override
        public void registerModels()
        {
            GoodLife.proxy.registerItemRenderer(this, 0, "inventory");
        }
    
        @Override
        public ItemStack onItemRightClick(ItemStack stack, World world, EntityPlayer player) {
            return null;
        }
    
        @Override
        public void addInformation(ItemStack stack, @Nullable World worldIn, List<String> tooltip, ITooltipFlag flagIn) {
            tooltip.add("${beer}");
            super.addInformation(stack, worldIn, tooltip, flagIn);
        }
    }
    

    Merci d'vance


  • Moddeurs confirmés Rédacteurs Administrateurs

    Bonjour,
    De mémoire il y a une méthode à implémenter renvoyant un enum qui a un nom du genre getAction et sur laquelle on peut renvoyer un enum avec la valeur DRINK. Regardes du côté de l'item de potion ou du seau de lait.

    Pour redonner la bouteille vide il faut dans le constructeur ajouter this.setContainerItem(MonModItems.NOM_BOUTEILLE);



  • mercii je vais voir tout sa quand c'est bon je donne la bonne réponse



  • @robin4002 sa marche pas pour le give


  • Moddeurs confirmés Rédacteurs Administrateurs

    Comment ça cela ne fonctionne pas pour le give ?



  • j'ai trouvé pour le give c'est ça

    return new ItemStack(Items.BOWL);
    


  • pour le truc du bruit je trouve pas dumoin, je sais pas ou et comment le mettre


  • Moddeurs confirmés Rédacteurs Administrateurs

    En 1.16 c'est cette méthode :

       public UseAction getUseAction(ItemStack stack) {
          return UseAction.DRINK;
       }
    


  • super tout est fini (appart un bruit de rôt a la fin mais on l'entends pas)

    package com.frenchdevteam.goodlifemod.objects.items;
    
    import com.frenchdevteam.goodlifemod.GoodLife;
    import com.frenchdevteam.goodlifemod.init.ItemInit;
    import com.frenchdevteam.goodlifemod.util.interfaces.IHasModel;
    import net.minecraft.client.util.ITooltipFlag;
    import net.minecraft.entity.EntityLivingBase;
    import net.minecraft.entity.player.EntityPlayer;
    import net.minecraft.init.MobEffects;
    import net.minecraft.item.EnumAction;
    import net.minecraft.item.ItemFood;
    import net.minecraft.item.ItemStack;
    import net.minecraft.potion.PotionEffect;
    import net.minecraft.world.World;
    
    import javax.annotation.Nullable;
    import java.util.List;
    
    public class Beer extends ItemFood implements IHasModel
    {
        public Beer(String name, int amount, float saturation, boolean isWolfFood)
        {
            super(amount, saturation, isWolfFood);
            setUnlocalizedName(name);
            setRegistryName(name);
            setCreativeTab(GoodLife.GOODLIFETAB);
            setAlwaysEdible();
            this.setMaxStackSize(1);
    
    
            ItemInit.ITEMS.add(this);
        }
    
        @Override
        public ItemStack onItemUseFinish(ItemStack stack, World worldIn, EntityLivingBase entityLiving)
        {
            entityLiving.addPotionEffect(new PotionEffect(MobEffects.NAUSEA, 300, 5, false, false));
            entityLiving.addPotionEffect(new PotionEffect(MobEffects.RESISTANCE, 200, 1, false, false));
            super.onItemUseFinish(stack, worldIn, entityLiving);
            return new ItemStack(ItemInit.BOUTEILLE);
        }
    
        public EnumAction getItemUseAction(ItemStack stack)
        {
            return EnumAction.DRINK;
        }
    
        @Override
        public void registerModels()
        {
            GoodLife.proxy.registerItemRenderer(this, 0, "inventory");
        }
    
        @Override
        public ItemStack onItemRightClick(ItemStack stack, World world, EntityPlayer player) {
            return null;
        }
    
        @Override
        public void addInformation(ItemStack stack, @Nullable World worldIn, List<String> tooltip, ITooltipFlag flagIn) {
            tooltip.add("à boir avec modération!");
            super.addInformation(stack, worldIn, tooltip, flagIn);
        }
    }
    
    

Log in to reply