Запрет ломание блоков

Версия Minecraft
1.7.10
Доброго времени суток, подскажите, как запретить ломать блоки, чтоб допустим я смог сломать землю только лопатой, а если чем-то другим то блок не ломался и даже не было анимации(чтоб при клике на блок без определенного предмета отменялось действие ломание блока).
 
Решение
процесс ломания блока идёт
Вот так всё нормально работает, чисто пример.
Java:
    @SubscribeEvent
    public void onBlockBreak(PlayerEvent.BreakSpeed e) {
        EntityPlayer player = (EntityPlayer) e.entityLiving;
        if (e.block.equals(Blocks.dirt) || e.block.equals(Blocks.grass)) {
            if (player.getHeldItem() != null && player.getHeldItem().getItem() instanceof ItemSpade) {
            } else {
                e.setCanceled(true);
            }
        }
    }
@mts2200 И что дальше нужно? Один фиг процесс поломки блока есть
Java:
@SubscribeEvent
public void onBlockBreak(PlayerInteractEvent e) {
    Entity entity = (Entity)e.entity;
    if (e.action == PlayerInteractEvent.Action.LEFT_CLICK_BLOCK) {
        if (entity instanceof EntityPlayerMP){
            EntityPlayer p = (EntityPlayer) entity;
            if (p.getHeldItem() == null){
                e.setCanceled(true);
            }
        }
    }
}
    }
 

Вложения

  • 1658674954994.png
    1658674954994.png
    50.2 KB · Просмотры: 10
241
20
75
процесс ломания блока идёт
Вот так всё нормально работает, чисто пример.
Java:
    @SubscribeEvent
    public void onBlockBreak(PlayerEvent.BreakSpeed e) {
        EntityPlayer player = (EntityPlayer) e.entityLiving;
        if (e.block.equals(Blocks.dirt) || e.block.equals(Blocks.grass)) {
            if (player.getHeldItem() != null && player.getHeldItem().getItem() instanceof ItemSpade) {
            } else {
                e.setCanceled(true);
            }
        }
    }
 
Сверху