Помогите Можно ли один Event использовать в другом Evant'е?

jimi_1997

Активный участник
Пользователь
Баллы
61
Имя в Minecraft
jimi_1997
Здравствуйте. У меня есть вопрос можно ли один Event использовать в другом Evant'е? Если можно, то как?
 
Все ещё не понял вас. Приведите пример ситуации, в которой это может понадобиться.
 
Все ещё не понял вас. Приведите пример ситуации, в которой это может понадобиться.
Есть определенный список блоков при разрушении которого не падает дроп. Вот я и хочу через ItemSpawnEvent отменить дроп определенных блоков.
 
Есть определенный список блоков при разрушении которого не падает дроп. Вот я и хочу через ItemSpawnEvent отменить дроп определенных блоков.
Тогда почему вы не используете getBlock().getDrops().clear() в BlockBreakEvent?
 
Тогда почему вы не используете getBlock().getDrops().clear() в BlockBreakEvent?
Не выходит, дроп всё равно появляется
Java:
@EventHandler
public void onBlockBreak(BlockBreakEvent e){
   final Player player = e.getPlayer();

   if(player.getWorld().getName().equalsIgnoreCase("Laputa")){
       if(e.getBlock().getType() == Material.EMERALD_ORE){
           e.getBlock().getDrops().clear();
       }
   }
}
 
Последнее редактирование:
Не выходит, дроп всё равно появляется
Java:
@EventHandler
public void onBlockBreak(BlockBreakEvent e){
   final Player player = e.getPlayer();

   if(player.getWorld().getName().equalsIgnoreCase("Laputa")){
       if(e.getBlock().getType() == Material.EMERALD_ORE){
           e.getBlock().getDrops().clear();
       }
   }
}
сохрани дроп и проверь в дроп эвенте сохраненное. если найдется совпадение - удали.
e.getBlock().getDrops().clear(); действительно работает не во всех случаях
 
сохрани дроп и проверь в дроп эвенте сохраненное. если найдется совпадение - удали.
e.getBlock().getDrops().clear(); действительно работает не во всех случаях
Может я чего то не понимаю, но способ очистки инвентаря в блоке тоже работает (стоит на сервере и без проблем чистит блоки из тинкерса).
Вот тема с примером: http://www.rubukkit.org/threads/resheno-udalenie-dropa-iz-bloka.83926/
 
Не знаю, всегда делал это отменяя евент а затем выбрасывая что надо самому...
 
Не знаю, всегда делал это отменяя евент а затем выбрасывая что надо самому...
Если отменять BlockBreakEvent и ломать, например, верстак, то из него выпадут вещи из которых ты крафтил.
Дроп самого блока легче отменить через getBlock().getDrops().clear() и добавлять через add(ItemStack)
 
Если отменять BlockBreakEvent и ломать, например, верстак, то из него выпадут вещи из которых ты крафтил.
Дроп самого блока легче отменить через getBlock().getDrops().clear() и добавлять через add(ItemStack)
Только вот инвентарь блока в этом спмске отсутствует...
 
Ну я и написал, что дроп самого блока :)
А ссылку на мою тему с инвентарем я скидывал выше.
 
Назад
Верх