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

    Résolu PlayerInteractEvent

    1.7.x
    1.7.x
    3
    6
    1635
    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.
    • T
      totos51 dernière édition par robin4002

      Salut tout le monde,
      comme annoncé dans la section bla-bla je fais un mod DayZ, et pour cela je me sers de playerInteractEvent, cependant je me heurte à un problème:

          @ForgeSubscribe
          public void BlackListBlockPlacer(PlayerInteractEvent event)
          {
              ArrayList BlackListPlace = new ArrayList();
              BlackListPlace.add(Block.anvil.blockID);
              BlackListPlace.add(Block.beacon.blockID);
              BlackListPlace.add(Block.bookShelf.blockID);
              BlackListPlace.add(Block.cake.blockID);
              BlackListPlace.add(Block.cocoaPlant.blockID);
              BlackListPlace.add(Block.cactus.blockID);
              BlackListPlace.add(Block.enchantmentTable.blockID);
              BlackListPlace.add(Block.furnaceIdle.blockID);
              BlackListPlace.add(Block.jukebox.blockID);
              BlackListPlace.add(Block.ladder.blockID);
              BlackListPlace.add(Block.workbench.blockID);
              BlackListPlace.add(Item.dyePowder.itemID);
              BlackListPlace.add(Item.hoeDiamond.itemID);
              BlackListPlace.add(Item.hoeGold.itemID);
              BlackListPlace.add(Item.hoeIron.itemID);
              BlackListPlace.add(Item.hoeStone.itemID);
              BlackListPlace.add(Item.hoeWood.itemID);
              BlackListPlace.add(Item.shears.itemID);
              BlackListPlace.add(SurvivalZ.groundChest.blockID);
      
              System.out.println(event.entityPlayer.worldObj.getBlockId(event.x, event.y, event.z));
              if(!BlackListPlace.contains(event.entityPlayer.worldObj.getBlockId(event.x, event.y, event.z)))
              {
                  if(event.action == Action.RIGHT_CLICK_AIR || event.action == Action.RIGHT_CLICK_BLOCK)
                  {
                      if(event.entityPlayer.inventory.getCurrentItem() != null && !(BlackListPlace.contains(event.entityPlayer.inventory.getCurrentItem().getItem().itemID)))
                      {
                          event.setCanceled(true);
                      }
                  }
              }
          }
      

      quand je clic droit pour poser un bloc par exemple, j’obtient ça en console:
      2014-08-19 18:00:59 [INFOS] [STDOUT] 0
      2014-08-19 18:01:00 [INFOS] [STDOUT] 2
      2014-08-19 18:01:00 [INFOS] [STDOUT] 0

      et non pas seulement 2… ce qui fait que ma condition ne marche pas correctement.

      1 réponse Dernière réponse Répondre Citer 0
      • M
        MrAzErTy31 dernière édition par

        L’event PlayerInteractEvent c’est pour savoir quand tu clique sur un bloc, pas pour savoir quand tu en poses un 😉

        Mes mods :

        >! GGButtonMod : http://minecraftforgefrance.fr/showthread.php?tid=1280
        CraftYourMenu : http://minecraftforgefrance.fr/showth…

        1 réponse Dernière réponse Répondre Citer 0
        • T
          totos51 dernière édition par

          j’ai pas vu d’event pour la pose de bloc, y’en a pour quand on en casse mais pour quand on en pose ya que celui la.

          1 réponse Dernière réponse Répondre Citer 0
          • M
            MrAzErTy31 dernière édition par

            Oui … Exact 😕 Sur MC Forum, les personnes disaient de faire avec un “event.action == Action.RIGHT_CLICK_BLOCK”, dommage que forge n’a pas autant d’events que bukkit 😕

            Mes mods :

            >! GGButtonMod : http://minecraftforgefrance.fr/showthread.php?tid=1280
            CraftYourMenu : http://minecraftforgefrance.fr/showth…

            1 réponse Dernière réponse Répondre Citer 0
            • T
              totos51 dernière édition par

              le truc c’est que si j’ai un bloc dans la main qui ne soit pas un bloc de la liste et que je clic droit sur un coffres avec bah le coffre s’ouvre pas, pareillement je peux pas équiper d’armure avec clic droit ou utiliser la hoe

              Edit: J’ai remarqué que même ainsi un sneak + right clik permet de poser des blocs, une solution?

              1 réponse Dernière réponse Répondre Citer 0
              • Zak
                Zak dernière édition par

                Pour récupérer l’item dans ta main ta aussi getCurrentEquippedItem dans EntityPlayer, c’est plus simple.
                Pour le sneak+clic droit t’as sans doute une Action “RIGHT_CLICK_SNEAK” un truc comme ça ou sinon tu checks si le joueur ne s’accroupi pas.

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

                MINECRAFT FORGE FRANCE © 2018

                Powered by NodeBB