SOLVED Event, empecher de poser un bloc


  • Salut à tous, en me basant sur ce qui m'a été dit, j'ai rapidement t(rouvé une solution pour empecher de poser/casser un bloc, cependant j'ai un problème:

    @ForgeSubscribe
    public void BlackListBlockPlacer(PlayerInteractEvent event)
    {
       if (event.action == Action.RIGHT_CLICK_AIR || event.action == Action.RIGHT_CLICK_BLOCK)
       {
          if (!event.entityPlayer.getHeldItem().isItemEqual(new ItemStack(Block.anvil)))
           {
              event.setCanceled(true);
           }
       }
    }
    

    En faisant ceci, si je nj'ai pas d'item en main et que je fais un clic droit j'ai une erreur.
    comment gérer le cas ou le contenu de la main est null?


  • Salut Toto si c'est de la 1.7.10 essaie ceci (je ne suis pas sûr) :

    
    ItemStack currentItem = player.inventory.getCurrentItem();
    
    if (currentItem != null)
    
    

    Après a toi de gérer pour la condition : si c'est null ou si ce n'est pas null enfin tu vois ce que je veux dire je pense

  • Modérateurs

    @ForgeSubscribe
    public void BlackListBlockPlacer(PlayerInteractEvent event)
    {
    if (event.action == Action.RIGHT_CLICK_AIR || event.action == Action.RIGHT_CLICK_BLOCK)
    {
    if (event.entityPlayer.inventory.getCurrentItem() != null && !event.entityPlayer.getCurrentItem().getItem() != Item.getItemFromBlock(Block.anvil))
    {
    event.setCanceled(true);
    }
    }
    }
    

  • En effet, merci à vous, au vu de la version dans laquelle je code, ya fallut que j'adapte un petit peu mais ça fonctionne 🙂
    Mercià vous 2, sujet résolu