Tous les items sont consommés au lieu d'un seul



  • Bonjour à toutes et tous,

    Je poste aujourd'hui mon problème qui doit surement être simple à régler, mais ne pouvant suivre des cours de java que l'an prochain, bah pour l'instant je suis paniqué.

    En fait, je vous explique le topo : j'ai un mod avec des papillotes. Quand je fais clique droit avec n'importe qu'elle papillote, elle me donne un morceau de chocolat. Cependant le problème est là : c'est que même si j'ai 10 papillotes dans la main, ça me les consumes toutes et cela ne me donne qu'un chocolat. Or je souhaiterai que ça n'en consomme qu'une et que ça me donne un chocolat. Une idée ?

    Voici ma super-classe Papillote :

    package fr.cloudcommunity.fiesta.common;
    
    import net.minecraft.client.renderer.texture.IIconRegister;
    import net.minecraft.entity.player.EntityPlayer;
    import net.minecraft.item.Item;
    import net.minecraft.item.ItemStack;
    import net.minecraft.world.World;
    
    public abstract class Papillote extends Item
    {
    @Override
    public abstract void registerIcons(IIconRegister iconregister);
    
    public Papillote()
    {
    this.setCreativeTab(ModFiesta.FiestaMod);
    }
    
    public ItemStack onItemRightClick(ItemStack stack, World world, EntityPlayer player)
    {
    
    return new ItemStack(ModFiesta.Morceau_chocolat);
    
    }
    
    }
    

    Et le problème se trouve dans le public ItemStack…
    Une idée ?

    Si vous voulez plus d'info, n'hésitez pas à me demander ![/bt]


  • Moddeurs confirmés Rédacteurs Administrateurs

    Salut,
    Pourquoi une classe abstraite ?
    Envoie une de tes classes filles aussi.

    onItemRightClick devrait retourner stack pas un autre itemStack. Si tu veux consommés un item, il faut faire un stack.stackSize – et ensuite pour ajouter un autre item dans l'inventaire il y a :
    player.inventory.addItemStackToInventory(new ItemStack(ModFiesta.Morceau_chocolat))



  • Pour l'instant y'a rien dans mes classes filles, mais si tu en veux une voici donc ^^

    package fr.cloudcommunity.fiesta.common;
    
    import net.minecraft.client.renderer.texture.IIconRegister;
    import net.minecraft.creativetab.CreativeTabs;
    import net.minecraft.entity.player.EntityPlayer;
    import net.minecraft.init.Items;
    import net.minecraft.item.Item;
    import net.minecraft.item.ItemStack;
    import net.minecraft.world.World;
    
    public class Papillote_orange extends Papillote
    {
    
    @Override
    public void registerIcons(IIconRegister iconregister)
    {
    this.itemIcon = iconregister.registerIcon(ModFiesta.MODID + ":papillote_orange");
    }
    
    }
    

    Sinon j'ai fais comme vous me l'avez dit, et cela donne ceci :

    package fr.cloudcommunity.fiesta.common;
    
    import net.minecraft.client.renderer.texture.IIconRegister;
    import net.minecraft.entity.player.EntityPlayer;
    import net.minecraft.item.Item;
    import net.minecraft.item.ItemStack;
    import net.minecraft.world.World;
    
    public abstract class Papillote extends Item
    {
    @Override
    public abstract void registerIcons(IIconRegister iconregister);
    
    public Papillote()
    {
    this.setCreativeTab(ModFiesta.FiestaMod);
    }
    
    public ItemStack onItemRightClick(ItemStack stack, World world, EntityPlayer player)
    {
    
    player.inventory.addItemStackToInventory(new ItemStack(ModFiesta.Morceau_chocolat));
    stack.stackSize –;
    return stack;
    
    }
    
    }
    
    

    Alors, en effet ça ne supprime plus tout mon stack de papillotes, mais on le voit passé à 63 puis revenir à 64. C'est le seul problème que j'ai pu percevoir.


    Non ok en faite problème résolu merci beaucoup , je suis juste le plus gros boulet de la terre.... J'avais pas enlever le gm...
    Merci beaucoup de votre aide !


Log in to reply