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

    Résolu Problème event s'éxecute deux fois

    1.12.x
    1.12.2
    3
    5
    159
    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.
    • C
      clement5188 dernière édition par clement5188

      Tout mes évènements s’éxecutent deux fois alors qu’ils sont juste sur la side SERVER je ne comprend pas est ce que j’aurai manqué un truc?
      °fa-info°(texte d’information)

      @SubscribeEvent
      
          public void onBandageUse(PlayerInteractEvent.EntityInteract e) {
          if(e.getWorld().isRemote==false){
              if (e.getTarget() instanceof EntityPlayer ) {
                  if (e.getEntityPlayer().getHeldItemMainhand() != null) {
                      if (e.getEntityPlayer().getHeldItemMainhand().getItem() == ModItems.bandage) {
                          System.out.println(e.getSide());
                              ((EntityPlayer) e.getTarget()).heal(2.0F);
                              e.getEntityPlayer().getHeldItemMainhand().shrink(1);
                          }
                      }
      
                  }
              }
      
          }
      

      Le problème est que quand je cliques droit avec le bandages il heal deux fois plus de coeur et il enlève deux bandage au lieu d’un

      Ama 1 réponse Dernière réponse Répondre Citer 0
      • Ama
        Ama @clement5188 dernière édition par

        @clement5188 a dit dans Problème event s'éxecute deux fois :

        if(e.getWorld().isRemote==false){

        Ça, ça n’existe pas sur minecraft

        Ça c’est mieux:

        if(!e.getWorld().isRemove)

        Et essaie avec if (e.getTarget() instanceof ServerEntityPlayer) étant donné que t’es côté serveur maintenant

        *ServerEntityPlayer peut avoir un autre nom en 1.12.2, et je m’en rappelle plus

        Si je t'ai filé un coup de main n'oublie pas le + / -
        Par contre évite les demandes d'aides en MP, tu sera sympa'

        La JavaDoc c'est comme le PQ, ça sert à ce démerder tous seul. -Victor Hugo- 2017

        Une superbe API pour animer vos super modèles CraftStudio dans Minecraft !

        C 1 réponse Dernière réponse Répondre Citer 1
        • LeBossMax2
          LeBossMax2 dernière édition par LeBossMax2

          Il y a deux mains, donc l’event est appelé pour les deux mains. Tu devrais donc check l’item en fonction de la main donnée dans l’event, comme ça ton item fonctionnera aussi dans la main secondaire. En plus, il faut que tu set le result de l’event pour que l’event de l’autre main soit pas appelé.
          Aussi, comme c’est ton propre item, tu as pas besoin de passer par un event, c’est mieux d’override la méthode qui correspond dans la classe de ton item.
          Et un dernier truc, pour les items, ça sert à rien de check si c’est null, il faut plutôt utiliser la fonction isEmpty pour vérifier qu’il n’y a pas d’item dans le stack

          C 1 réponse Dernière réponse Répondre Citer 1
          • C
            clement5188 @Ama dernière édition par

            @ama
            ok c’est vrai c’est mieux que ==false
            j’ai pas trouvé le ServerEntityPlayer ou un équivalent en 1.12.2 je suppose que c’est EntityPlayer

            1 réponse Dernière réponse Répondre Citer 0
            • C
              clement5188 @LeBossMax2 dernière édition par

              @lebossmax2
              Le problème était ici merci beaucoup enfaite j’avais pas compris mais il éxecute deux fois l’event une fois pour chaque main merci beaucoup!!!
              parcontre je vois pas qu’elle méthode Overide dans la class de l’item tu peux m’éclairer?

              1 réponse Dernière réponse Répondre Citer 0
              • Déplacé de Support pour les moddeurs par  robin4002 robin4002 
              • 1 / 1
              • Premier message
                Dernier message
              Design by Woryk
              Contact / Mentions Légales

              MINECRAFT FORGE FRANCE © 2018

              Powered by NodeBB