Navigation

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

    SOLVED Détecter si un item moddé est dans la main gauche

    1.16.x
    1.16.x
    2
    8
    41
    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.
    • L
      Lunyx last edited by Lunyx

      Bonjour,
      ça fait déjà plusieurs jours que je fais face à un problème: je n’arrive pas à trouver un moyen de détecter si un item moddé est dans la main gauche,
      en fait je voudrais faire en sorte que lorsque l’item est dans la main gauche, le joueur ait un effet permanent, et quand il l’enlève, l’effet disparaît.
      Pour faire ça, j’ai tenté d’utiliser les events mais je n’ai pas trouvé d’event fonctionnel pour ça…
      Du coup aujourd’hui je vous demande de l’aide.

      Merci beaucoup à ceux qui tenteraient de m’aider, ne serait-ce que pour me donner une piste !

      1 Reply Last reply Reply Quote 0
      • robin4002
        robin4002 Administrateurs Rédacteurs Moddeurs confirmés last edited by

        Bonsoir,

        Regardes du côté de PlayerTickEvent.
        Tu peux ensuite utiliser event.getPlayer().inventory.getItem(Hand.OFF_HAND) pour avoir l’item stack dans la main secondaire (j’ai donnée le code de tête, probable qu’il soit pas 100% juste)

        L 1 Reply Last reply Reply Quote 0
        • L
          Lunyx @robin4002 last edited by Lunyx

          @robin4002 Bonsoir, merci beaucoup pour l’aide ! Cependant, tout fonctionne sauf un point…(J’ai dû pas mal modifier le code pour récupérer l’item)
          En fait je n’arrive pas à entrer le paramètre de la main, j’ai tenté de chercher un peu, et rien…
          Voici ce que j’ai tenté:

              @SubscribeEvent
              public static void onItemLeftHand(TickEvent.PlayerTickEvent event) {
                  System.out.println(event.player.inventory.getCurrentItem(Hand.OFF_HAND));
              }
          

          Mais malheureusement le paramètre “Hand.OFF_HAND” ne semble pas autorisé…
          Une idée ?

          EDIT:
          J’ai trouvé quelque chose de concluant:

              @SubscribeEvent
              public static void onItemLeftHand(TickEvent.PlayerTickEvent event) {
                  System.out.println(event.player.inventory.offHandInventory);
              }
          
          1 Reply Last reply Reply Quote 0
          • L
            Lunyx last edited by Lunyx

            Bon j’ai réussi à chopper l’item, mais je ne trouve pas comment checker si c’en est un en particulier…
            J’ai tenté == et .equals(), mais aucun des deux ne fonctionnent
            Ça marche pas car c’est un itemstack qui est retourné…

            1 Reply Last reply Reply Quote 0
            • robin4002
              robin4002 Administrateurs Rédacteurs Moddeurs confirmés last edited by

              event.player.inventory.offHandInventory.getItem() == ClasseItem.NOM

              L 1 Reply Last reply Reply Quote 0
              • L
                Lunyx @robin4002 last edited by

                @robin4002 Le soucis avec ça, c’est que getItem() ne fonctionnait pas, du coup j’ai trouvé quelque chose d’encore mieux…

                    @SubscribeEvent
                    public static void onItemLeftHand(TickEvent.PlayerTickEvent event) {
                        if(event.player.getHeldItem(Hand.OFF_HAND).getItem() == ModItems.FAST_HIT_BOOK.get()) {
                            // Encore du code par ici...
                        }
                    }
                

                Juste petite question, j’ai mis ça dans la classe de mon Item, et du coup j’ai rajouté “@Mod.EventBusSubscriber(modid = VanillaPlus.MODID)” avant le code de la classe, est-ce une bonne pratique ? Ou je devrais faire autrement ?

                1 Reply Last reply Reply Quote 0
                • robin4002
                  robin4002 Administrateurs Rédacteurs Moddeurs confirmés last edited by

                  La bonne pratique en général c’est plutôt d’avoir des classes dédiés aux events et ne pas éparpiller les events partout.

                  L 1 Reply Last reply Reply Quote 0
                  • L
                    Lunyx @robin4002 last edited by

                    @robin4002 Ok, très bien, merci beaucoup pour toute l’aide 🙂

                    1 Reply Last reply Reply Quote 0
                    • 1 / 1
                    • First post
                      Last post
                    Design by Woryk
                    Contact / Mentions Légales / Faire un don

                    MINECRAFT FORGE FRANCE © 2018

                    Powered by NodeBB