Erreur de give avec onBlockActivated



  • Bonjour,
    j'ai commencé la programmation java / minecraft il y a pas longtemps et je souhaiterais que quand je click sur un block avec le bon item, cela m'en donne un autre à la place.
    Cependant, dans le script ci-dessous, quand je vais faire click droit, ça va me donner pendant 0.1 sec. l'item "water_barrel" puis ça va le supprimer et remettre l'item "empty_barrel". Est-ce que quelqu'un sait où est mon erreur et comment je fais pour la corrgier ?

    public boolean onBlockActivated(World world, int x, int y, int z, EntityPlayer player, int side, float hitX, float hitY, float hitZ)
        {
            if(!world.isRemote) {
            	return false;
            }
            
    		
            System.out.println(player.inventory.getCurrentItem()); // Pour savoir le nom de l'Item
            
            if(player.inventory.getCurrentItem() == null || player.inventory.getCurrentItem().getItem() != ItemMod.emptybarrel) { //Si l'item du joueur est "null" ou si ce n'est pas le bon
            	System.out.println("Mauvais item");
            }
            else{ //Sinon, donc si c'est le bon item
            	player.inventory.setInventorySlotContents(player.inventory.currentItem, new ItemStack(ItemMod.emptybarrel));
            	System.out.println("Bon item");
            }
            	
            return false;
        }
    

    Merci d'avance,
    DentaX



  • Bonjour,
    Je sais pas extactement mais déjà tu peux pas remplacer ton "!= ItemMod.emptybarrel par instanceof ?
    et mettre un return true à la fin ?

    Bien cordialement


  • Administrateurs

    Salut,
    Ta première condition est inversé, elle arrête l'exécution du code si le monde n'est pas distant (donc si le monde est celui du serveur). Or toutes les actions de donnée doivent être fait sur le serveur, pas sur le client.
    (en gros, retires le !)



  • Avant tout, merci de vos récompenses.
    @virgilfree Non, car il y a d'autres items dans ma classe ItemMod, et je n'aimerais pas qu'on puisse aussi les utiliser…

    @robin4002 Merci beaucoup, je l'ai mis en suivant tes tutoriels mais j'ai oublié de l'enlever :,) !

    Ça marche du coup :3