MFF

    Minecraft Forge France
    • Récent
    • Mots-clés
    • Populaire
    • Utilisateurs
    • Groupes
    • Forge Events
      • Automatique
      • Foncé
      • Clair
    • S'inscrire
    • Se connecter

    Problème event s'éxecute deux fois

    Planifier Épinglé Verrouillé Déplacé Résolu 1.12.x
    1.12.2
    5 Messages 3 Publieurs 483 Vues 1 Watching
    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 Hors-ligne
      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

      AmaA 1 réponse Dernière réponse Répondre Citer 0
      • AmaA Hors-ligne
        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
        • LeBossMax2L Hors-ligne
          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 Hors-ligne
            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 Hors-ligne
              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
              • robin4002R robin4002 a déplacé ce sujet de Support pour les moddeurs sur
              • 1 / 1
              • Premier message
                Dernier message
              Design by Woryk
              ContactMentions Légales

              MINECRAFT FORGE FRANCE © 2024

              Powered by NodeBB