• Register
    • Login
    • Search
    • Recent
    • Tags
    • Popular
    • Users
    • Groups

    Solved Problème event s'éxecute deux fois

    1.12.x
    1.12.2
    3
    5
    59
    Loading More Posts
    • Oldest to Newest
    • Newest to Oldest
    • Most Votes
    Reply
    • Reply as topic
    Log in to reply
    This topic has been deleted. Only users with topic management privileges can see it.
    • C
      clement5188 last edited by 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 Reply Last reply Reply Quote 0
      • Ama
        Ama @clement5188 last edited by

        @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 Reply Last reply Reply Quote 1
        • LeBossMax2
          LeBossMax2 last edited by 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 Reply Last reply Reply Quote 1
          • C
            clement5188 @Ama last edited by

            @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 Reply Last reply Reply Quote 0
            • C
              clement5188 @LeBossMax2 last edited by

              @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 Reply Last reply Reply Quote 0
              • Moved from Support pour les moddeurs by  robin4002 robin4002 
              • 1 / 1
              • First post
                Last post
              Design by Woryk
              Contact / Mentions Légales

              MINECRAFT FORGE FRANCE © 2018

              Powered by NodeBB