MFF

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

    Stoper L'utilisationd'un objet, pendant un event de type "EntityInteractEvent"

    Planifier Épinglé Verrouillé Déplacé Résolu 1.7.x
    1.7.10
    3 Messages 2 Publieurs 1.0k 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.
    • fredoo91F Hors-ligne
      fredoo91
      dernière édition par

      Bonjour à tous , 
      J’ai un petit soucis dans mon code. 
      Voici le contexte : 
      J’ai un Pnj qui ouvre une interface lorsqu’un joueur clique droit dessus. Le problème est que le clique droit est aussi le bouton pour utiliser l’objet en main.
      Ce qui a pour conséquence d’utiliser un arc , un morceau de pain , ou consommer une potion !!
      Pourtant quand on clique droit sur un coffre, il n’y a pas ce problème , lorsqu’un joueur clique droit sur un coffre , l’item en main réagit comme si le joueur fessais un clique gauche, alors qu’il vient de faire un clique droit pour ouvrir le coffre !

      Je voudrais savoir comment reproduire ce mécanisme pour que les items en main ne soient pas consommés quand un joueur clique droit sur mon PNJ.

      
      @SubscribeEvent
      public void onPlayerInteractPnjToServer(EntityInteractEvent event)
      {
      // On test si un joueur a fait un clique droit sur un des PNJ de ce mods.
      EntityLivingBase entity = (EntityLivingBase) event.target;
      String nameTarget = entity.getClass().getSimpleName().toLowerCase();
      if(!Utilities.isModedEntity(nameTarget)) return;
      
      // Ici on sais que le joueur vient de faire un clique droit sur un PNJ, donc on désactive l'event et l'item en main.
      EntityPlayer player = event.entityPlayer;
      event.setCanceled(true);
      player.clearItemInUse();
      player.stopUsingItem();
      // …
      // ...
      }
      
      

      Mais pour le moment l’item dans la main du joueur est toujours utilisé ! 
      Une personne est déjà tombé sur cette problématique ? 
      L’astuce serais d’utiliser le même mécanisme que pour un clique droit sur un coffre , mais je n’ai rien trouvé  :(.

      Merci de votre aide.

      1 réponse Dernière réponse Répondre Citer 0
      • AymericRedA Hors-ligne
        AymericRed
        dernière édition par

        L’utilisation de l’item quand on utilise un coffre est annulé car la fonction onBlockActivated du coffre retourne true, je vais regarder comment reproduire ça avec ton event.
        EDIT : j’ai regardé dans les classes et normalement ça devrait annuler le l’utilisation de l’item.

        Si je vous ai aidé, n'oubliez pas d’être heureux, j'aiderai encore +

        AymericRed, moddeur expérimenté qui aide sur ce forum et qui peut accepter de faire un mod Forge rémunéré de temps en temps.

        Mes tutos : Table de craft, plugin NEI, plugin JEI, modifier l'overlay
        Je suis un membre apprécié et joueur, j'ai déjà obtenu 6 points de réputation.

        1 réponse Dernière réponse Répondre Citer 0
        • fredoo91F Hors-ligne
          fredoo91
          dernière édition par

          Ha d’accort , alors je me dis qu’il existe peut être une fonction de ce style pour les Entity , “onEntityActivated” peut être.
          Et que par conséquence le code qui ouvre mon interface devrait plutôt être dans une telle fonction , que dans ma fonction qui récupère un EntityInteractEvent ?
          EDIT: J’ai trouvé une fonction “interact()”, pour une Entity.

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

          MINECRAFT FORGE FRANCE © 2024

          Powered by NodeBB