1.12.2 Clic Droit Potion de Heal



  • Bonjour, je crée un item et je voudrais savoir comment summon une potion de heal en faisant un clic droit ?
    Je n'ai pas trouvé en cherchant sur internet.

    package com.avonia.mod.init.objects;
    
    import com.avonia.mod.Main;
    import com.avonia.mod.init.ItemInit;
    import com.avonia.mod.util.IHasModel;
    
    import net.minecraft.entity.player.EntityPlayer;
    import net.minecraft.entity.projectile.EntityPotion;
    import net.minecraft.init.Items;
    import net.minecraft.init.SoundEvents;
    import net.minecraft.item.Item;
    import net.minecraft.item.ItemStack;
    import net.minecraft.util.ActionResult;
    import net.minecraft.util.EnumActionResult;
    import net.minecraft.util.EnumHand;
    import net.minecraft.util.SoundCategory;
    import net.minecraft.world.World;
    
    public class PotionGun extends Item implements IHasModel
    {
        public PotionGun(String name)
        {
            setUnlocalizedName(name);
            setRegistryName(name);
            setCreativeTab(Main.avoniaTab);
            setMaxDamage(29);
            setMaxStackSize(1);       
            ItemInit.ITEMS.add(this);
        }
        
        @Override
        public void registerModels()
        {
            Main.proxy.registerItemRederer(this, 0);
        }
        
        @Override
        public ActionResult<ItemStack> onItemRightClick(World worldIn, EntityPlayer playerIn, EnumHand handIn)
        {     
            ItemStack itemstack = playerIn.getHeldItem(handIn);
    
            worldIn.playSound((EntityPlayer)null, playerIn.posX, playerIn.posY, playerIn.posZ, SoundEvents.ENTITY_SPLASH_POTION_THROW, SoundCategory.PLAYERS, 0.5F, 0.4F / (itemRand.nextFloat() * 0.4F + 0.8F));
    
            if (!worldIn.isRemote)
            {
                EntityPotion entitypotion = new EntityPotion(worldIn, playerIn, new ItemStack(Items.SPLASH_POTION));
                entitypotion.shoot(playerIn, playerIn.rotationPitch, playerIn.rotationYaw, -20.0F, 0.5F, 1.0F);
                worldIn.spawnEntity(entitypotion);
            }
            
            return new ActionResult<ItemStack>(EnumActionResult.SUCCESS, itemstack);
        }
    }
    
    


  • Quelques pistes :

    • Tu overrides la fonction de clic droit de ton item
    • Tu récupères le Player et utilise addPotionEffet(PotionEffet) de EntityLivingBase
    • Constructeur: PotionEffet(Potion p[, int duration[, int amplifier[, boolean ambient, boolean showParticles]]])
    • Tu peux récupérer les potions dans la class Potion ou via la commande in-game /effect

    Tu peux déjà essayer cela, en espérant que ça t'aides



  • UP :backhand_index_pointing_up_light_skin_tone:



  • Bonjour, il se passe quoi actuellement avec ton code ? Ça fait apparaître une potion ?



  • Regarde comment Minecraft le fait avec les Splash potions



  • j'ai regardé mais il vérif selon l'item (ce que je n'ai pas)



  • Quelques pistes :

    • Tu overrides la fonction de clic droit de ton item
    • Tu récupères le Player et utilise addPotionEffet(PotionEffet) de EntityLivingBase
    • Constructeur: PotionEffet(Potion p[, int duration[, int amplifier[, boolean ambient, boolean showParticles]]])
    • Tu peux récupérer les potions dans la class Potion ou via la commande in-game /effect

    Tu peux déjà essayer cela, en espérant que ça t'aides


Log in to reply