Хостинг серверов Minecraft playvds.com
  1. Вы находитесь в русском сообществе Bukkit. Мы - администраторы серверов Minecraft, разрабатываем собственные плагины и переводим на русский язык плагины наших собратьев из других стран.
    Скрыть объявление

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

Тема в разделе "Разработка плагинов для новичков", создана пользователем jimi_1997, 9 ноя 2014.

  1. Автор темы
    jimi_1997

    jimi_1997 Активный участник Пользователь

    Баллы:
    61
    Имя в Minecraft:
    jimi_1997
    Здравствуйте. У меня есть вопрос можно ли один Event использовать в другом Evant'е? Если можно, то как?
     
  2. Хостинг MineCraft
    <
  3. serega6531

    serega6531 Старожил Девелопер Пользователь

    Баллы:
    173
    Skype:
    shkurovs
    Что вы имеете в виду?
     
  4. Автор темы
    jimi_1997

    jimi_1997 Активный участник Пользователь

    Баллы:
    61
    Имя в Minecraft:
    jimi_1997
    Есть ItemSpawnEvent я хочу внутри него поместить BlockBreakEvent, как это можно реализовать?
     
  5. serega6531

    serega6531 Старожил Девелопер Пользователь

    Баллы:
    173
    Skype:
    shkurovs
    Все ещё не понял вас. Приведите пример ситуации, в которой это может понадобиться.
     
  6. Code

    Code Старожил Пользователь

    Баллы:
    123
    Имя в Minecraft:
    _Gizmo
    конкретно, что значит поместить?
     
  7. Автор темы
    jimi_1997

    jimi_1997 Активный участник Пользователь

    Баллы:
    61
    Имя в Minecraft:
    jimi_1997
    Есть определенный список блоков при разрушении которого не падает дроп. Вот я и хочу через ItemSpawnEvent отменить дроп определенных блоков.
     
  8. serega6531

    serega6531 Старожил Девелопер Пользователь

    Баллы:
    173
    Skype:
    shkurovs
    Тогда почему вы не используете getBlock().getDrops().clear() в BlockBreakEvent?
     
  9. Автор темы
    jimi_1997

    jimi_1997 Активный участник Пользователь

    Баллы:
    61
    Имя в Minecraft:
    jimi_1997
    Не выходит, дроп всё равно появляется
    Код:
    @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();
           }
       }
    }
    
     
    Последнее редактирование: 9 ноя 2014
  10. Jampire

    Jampire Старожил Пользователь

    Баллы:
    173
    Skype:
    jampire-h
    Имя в Minecraft:
    Jampire
    сохрани дроп и проверь в дроп эвенте сохраненное. если найдется совпадение - удали.
    e.getBlock().getDrops().clear(); действительно работает не во всех случаях
     
  11. doodka

    doodka Активный участник Пользователь

    Баллы:
    68
    Skype:
    d_oo_d
    Может я чего то не понимаю, но способ очистки инвентаря в блоке тоже работает (стоит на сервере и без проблем чистит блоки из тинкерса).
    Вот тема с примером: http://www.rubukkit.org/threads/resheno-udalenie-dropa-iz-bloka.83926/
     
  12. saharin94

    saharin94 Старожил Пользователь Заблокирован

    Баллы:
    173
    Skype:
    RikkiLooh
    Имя в Minecraft:
    RubukkitDniwe
    Верстаки что ли?
     
  13. doodka

    doodka Активный участник Пользователь

    Баллы:
    68
    Skype:
    d_oo_d
    Ага
     
  14. ql_Nik_lp

    ql_Nik_lp Старожил Девелопер Пользователь

    Баллы:
    173
    Skype:
    q-nik-p
    Имя в Minecraft:
    ql_Nik_lp
    Не знаю, всегда делал это отменяя евент а затем выбрасывая что надо самому...
     
  15. doodka

    doodka Активный участник Пользователь

    Баллы:
    68
    Skype:
    d_oo_d
    Если отменять BlockBreakEvent и ломать, например, верстак, то из него выпадут вещи из которых ты крафтил.
    Дроп самого блока легче отменить через getBlock().getDrops().clear() и добавлять через add(ItemStack)
     
  16. saharin94

    saharin94 Старожил Пользователь Заблокирован

    Баллы:
    173
    Skype:
    RikkiLooh
    Имя в Minecraft:
    RubukkitDniwe
    Только вот инвентарь блока в этом спмске отсутствует...
     
  17. doodka

    doodka Активный участник Пользователь

    Баллы:
    68
    Skype:
    d_oo_d
    Ну я и написал, что дроп самого блока :)
    А ссылку на мою тему с инвентарем я скидывал выше.
     
  18. Кирилл Доркис

    Кирилл Доркис Активный участник

    Баллы:
    61
    Имя в Minecraft:
    Sargasmic
    Напиши e.getBlock().Settype(Material.Air);
     

Поделиться этой страницей