Как чистить дроп с помощью мода?

Kotikstar

Каменная лига
Сообщения
16
Лучшие ответы
0
Симпатии
0
#1
Здравствуйте, ребят, каким ивентом или же каким способом можно удалить/очистить дроп с помощью мода?
 

Agravaine

Алмазная лига
Сообщения
4,412
Лучшие ответы
182
Симпатии
578
#2
Все сущности мира хранятся в World#loadedEntityList. Дроп - EntityItem.
Что дальше делать ума много не надо.
 

timaxa007

Команда форума
Сообщения
5,475
Лучшие ответы
355
Симпатии
502
#4
Приветствую. Эвент зависит какой ты дроп хочешь (который в Entity, блоке или дроп в мире) чистить и как чистить (чанк выгрузился или просто появился в мире).
 

Agravaine

Алмазная лига
Сообщения
4,412
Лучшие ответы
182
Симпатии
578
#6
Смысле тебе не подходит? Тебе нужно удалить все предметы в мире или что? Я тебе сказал как.
Тимаха, не давай ему код, всю нужную инфу я ему сказал. Пусть сам пишет и думает головой.
 

timaxa007

Команда форума
Сообщения
5,475
Лучшие ответы
355
Симпатии
502
#8
Любой дроп, для этого нету универсальной очистки.
Java:
    @SubscribeEvent
    public void clearDropEntity(LivingDropsEvent event) {
        event.drops.clear();
    }

    @SubscribeEvent
    public void clearDropBlock(BlockEvent.HarvestDropsEvent event) {
        event.drops.clear();
    }

    @SubscribeEvent
    public void clearDropEbtityItem(EntityJoinWorldEvent event) {
        if (event.entity instanceof EntityItem)
            event.setCanceled(true);
    }
 

Agravaine

Алмазная лига
Сообщения
4,412
Лучшие ответы
182
Симпатии
578
#10
Ему скорее всего нужно выполнить один раз и очистить весь дроп.
Чувак, ты не можешь пробежаться циклом по листу, проверить что это предмет и вызвать у него setDead()?
 

timaxa007

Команда форума
Сообщения
5,475
Лучшие ответы
355
Симпатии
502
#13
то есть для каждого дропа отдельный эвент?
Зависит, что ты подразумеваешь "чистить дроп".
Java:
        for (int i = 0; i < world.loadedEntityList.size(); ++i) {
            Object o = world.loadedEntityList.get(i);
            if (o instanceof EntityItem) ((EntityItem)o).setDead();
        }
 

timaxa007

Команда форума
Сообщения
5,475
Лучшие ответы
355
Симпатии
502
#15
@Kotikstar, то что тебе @Agravaine тебе посоветовал, то и делай.
 

Agravaine

Алмазная лига
Сообщения
4,412
Лучшие ответы
182
Симпатии
578
#16
Сверху