Empêcher destruction block



  • Bonjour,

    Je voudrais empêcher les joueurs mais aussi les pnj de casser les plantes (blé, carotte, betterave, patate, etc). Je ne sais pas comment m'y prendre. J'ai essayé avec PlayerInteractEvent, LivingDestroyBlockEvent, BlockEvent) ca n'a pas marché sauf avec le dernier mais au bout de 10s ça crash en disant que l'event n'est pas cancellable. Sinon au moins empêcher les plantes des pousser.

    Merci


  • Moddeurs confirmés Rédacteurs Administrateurs

    Salut,
    Il faut cancel BlockEvent.BreakEvent



  • @'robin4002':

    Salut,
    Il faut cancel BlockEvent.BreakEvent

    Cette méthode semble ne pas exister (ou plus) je suppose que ce que j'ai fait est l'équivalent :

    @SubscribeEvent
    public static void onBlockDestroyed(BlockEvent event)
        {
    if(season_manager.getSeason() == SeasonManager.seasons.Summer && event.getState().getBlock() instanceof BlockBeetroot)
    {
    event.setCanceled(true);
    }
        }
    

    Mais j'ai l'erreur suivante Event#setCanceled() on a non-cancelable event of type: net.minecraftforge.event.world.BlockEvent.CropGrowEvent.Pre


  • Moddeurs confirmés Rédacteurs Administrateurs

    Hum si si il existe bien en 1.12.2

    
      @SubscribeEvent
       public static void onBlockDestroyed(BlockEvent.BreakEvent event)
       {
           if(season_manager.getSeason() == SeasonManager.seasons.Summer && event.getState().getBlock() instanceof BlockBeetroot)
           {
                event.setCanceled(true);
           }
      }
    


  • @'robin4002':

    Hum si si il existe bien en 1.12.2

    
      @SubscribeEvent
       public static void onBlockDestroyed(BlockEvent.BreakEvent event)
       {
           if(season_manager.getSeason() == SeasonManager.seasons.Summer && event.getState().getBlock() instanceof BlockBeetroot)
           {
                event.setCanceled(true);
           }
      }
    

    Ah oui d'accord, merci beaucoup, résolu !



  • AH ! Oups j'suis arrivé trop tard 😢


Log in to reply