Вопрос Как запретить выкидывать алмаз в портал?

Версия Minecraft
1.16.X

Mikita

Пользователь
Заблокирован
Сообщения
57
Решения
3
Всем привет, пишу плагин для себя и вот мне нужно запретить кидать алмаз (в виде дропа) в портал. (Ивент: EntityPortalEvent
)
 
Код:
    @EventHandler
    public void onPortal(EntityPortalEvent event) {
        Entity entity = event.getEntity();
        if (entity.getType() == EntityType.DROPPED_ITEM) {
            ItemStack itemStack = ((Item) entity).getItemStack();
            if (itemStack.getType() == Material.DIAMOND) {
                event.setCancelled(true);
            }
        }
    }
 
Код:
    @EventHandler
    public void onPortal(EntityPortalEvent event) {
        Entity entity = event.getEntity();
        if (entity.getType() == EntityType.DROPPED_ITEM) {
            ItemStack itemStack = ((Item) entity).getItemStack();
            if (itemStack.getType() == Material.DIAMOND) {
                event.setCancelled(true);
            }
        }
    }
Спасибо тебе большое!
 
Кстати говоря, на современных версиях Java лучше писать так

Java:
@EventHandler(ignoreCancelled = true)
public void onEntityPortal(EntityPortalEvent event) {
    if (event.getEntity() instanceof Item item) {
        event.setCancelled(item.getItemStack().getType() == Material.DIAMOND);
    }
}
 
Кстати говоря, на современных версиях Java лучше писать так
Согласен, но у новичков очень редко установлены новые версии джавы, а когда скидываешь код для новых версий, то потом вопросы "А у меня не работает" "А что делать" и тому подобное, с опытом начнут писать под новую джаву
 
Назад
Сверху Снизу