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

    Résolu [1.7.10] Détection d'un clic droit avec un item spécifique dans la main

    1.7.x
    1.7.10
    3
    7
    226
    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.
    • K
      kraniax dernière édition par kraniax

      Bonjour, j’aimerais savoir comment détecter clic droit avec un item spécifique dans la main. J’ai essayé de

      @SubscribeEvent
      public void rightClick(PlayerInteractEvent e){
        if(e.action == Action.RIGHT_CLICK_AIR  && e.entityPlayer.getCurrentEquippedItem() != null && e.entityPlayer.getCurrentEquippedItem().getItem() == ItemMod.heal){
        p.setHealth(20.0F)
      }
      

      Mon clic est détecté cependant ça fonctionne même lorsque je n’ai pas l’item en main de plus l’action est effectué 2 fois alors que j’ai cliqué qu’une fois pour résoudre ce problème j’ai essayé de faire e.setCanceled(true). Cela a fonctionné cependant je ne pouvais plus lancer de potion, ça exécutait le code à la place.

      Merci de votre aide.

      ♦ Développeur Java ♦

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

        essaie cela

        public ItemStack onItemRightClick(ItemStack stack, World world, EntityPlayer player)
        {
          p.setHealth(20.0F)
        }
        

        il faudra import, mettre le code dans la classe de l’item et modifier a ta facon

        s

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

          le code dans la classe de l’item = la classe de l’item a detecter

          s

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

            deja c’est normal que le code soit exec 2 fois, car c’est exec une fois client side et une autre fois server side, si tu veux exec le code que server side only alors tu doit verifier si le side est bien celui du server, avec un if world.isRemote == false, disponible dans la class du player, ou utiliser la class FMLCommonHandler qui permet de savoir sur quel side tu te trouve

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

              ah oui je l’ai oublié donc c’est cela

                  public ItemStack onItemRightClick(ItemStack stack, World world, EntityPlayer player)
                  {
                   
                      if(!world.isRemote)
                      {
                    p.setHealth(20.0F)
                      }
                      
                      if(!world.isRemote) {
                          stack.stackSize--;
                      }
                      return stack;
                  }
              

              oui j’ai eu la flemme j’ai le code de ma dynamite mais le principe est presque le meme dans ce bout de code
              donc c’est en fait ceci

              s

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

                p.setHealth est en fait this.setHealth et ajoute la methode

                s

                1 réponse Dernière réponse Répondre Citer 0
                • K
                  kraniax dernière édition par kraniax

                  Merci, ça marche.

                  ♦ Développeur Java ♦

                  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