• S'inscrire
    • Se connecter
    • Recherche
    • Récent
    • Mots-clés
    • Populaire
    • Utilisateurs
    • Groupes

    Résolu Erreur de give avec onBlockActivated

    1.7.x
    1.7.10
    3
    4
    457
    Charger plus de messages
    • Du plus ancien au plus récent
    • Du plus récent au plus ancien
    • Les plus votés
    Répondre
    • Répondre à l'aide d'un nouveau sujet
    Se connecter pour répondre
    Ce sujet a été supprimé. Seuls les utilisateurs avec les droits d'administration peuvent le voir.
    • D
      DentaX dernière édition par

      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

      1 réponse Dernière réponse Répondre Citer 0
      • robin4002
        robin4002 Moddeurs confirmés Rédacteurs Administrateurs dernière édition par robin4002

        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 !)

        1 réponse Dernière réponse Répondre Citer 0
        • V
          virgilfree dernière édition par

          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

          1 réponse Dernière réponse Répondre Citer 0
          • robin4002
            robin4002 Moddeurs confirmés Rédacteurs Administrateurs dernière édition par robin4002

            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 !)

            1 réponse Dernière réponse Répondre Citer 0
            • D
              DentaX dernière édition par

              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

              1 réponse Dernière réponse Répondre Citer 0
              • 1 / 1
              • Premier message
                Dernier message
              Design by Woryk
              Contact / Mentions Légales

              MINECRAFT FORGE FRANCE © 2018

              Powered by NodeBB