Обсудим Запретить взрывам уничтожать ресурсы на полу

NormalWalk_

Разработчик
Пользователь
Сообщения
63
Решения
1
Как можно запретить любым взрывам уничтожать лежащие не земле ресурсы?

Java:
    @EventHandler(
            priority = EventPriority.HIGHEST
    )
    public void onExplosion(EntityExplodeEvent event) {
        if (event.getEntity().getType() == EntityType.WITHER) {
            event.blockList().clear();
        } else {
            Iterator<Block> blockIterator = event.blockList().iterator();
            while (blockIterator.hasNext()) {
                Block block = blockIterator.next();
                if (block.getType() == Material.CHEST) {
                    continue;
                }
                blockIterator.remove();
            }
            event.setYield(1.0f);
        }
 
Java:
@EventHandler
    public void onDamage(EntityDamageEvent e) {
        if (e.getEntity() instanceof org.bukkit.entity.Item &&
                e.getCause() == EntityDamageEvent.DamageCause.ENTITY_EXPLOSION)
            e.setCancelled(true);
    }

Причины можно расширить при желании
 
Назад
Сверху Снизу