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

Помогите Запрет на течение воды.

Discussion in 'Разработка плагинов для новичков' started by HamBurgeR, Dec 20, 2016.

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

    HamBurgeR Участник Пользователь

    Trophy Points:
    31
    Приветули. Такая ситуация. Очень пытаюсь познать ремесло написания плагинов, но делать это сложно, поскольку все линки старые и многие не работают. У меня есть мод Mariculture на сервере и там есть тип воды, которая ломает всё своим течением. В конфигах запрета данной функции нету. Плюс, помимо с этим хотел написать плагин на запрет течения воды и лавы на всей карте, включая территории без привата, а таких плагинов найти не смог. Как я понял, мне нужна эта штука BlockFromToEvent. Но, мне нужно немного помощи с объяснением, как именно её использовать. Спасибо!
     
  2. Хостинг MineCraft
    <
  3. AtomicInteger

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

    Trophy Points:
    46
    Если есть WG, то можно выставлять флаг water-flow.Иначе, в ивенте BlockFromToEvent проверяешь, вода ли это и закрываешь ивент.Примерно так:
    Code:
    @EventHandler
    private void onWaterFlow(BlockFromToEvent event) {
        if (event.getBlock().getType() == Material.WATER)
            event.setCancelled(true);
    }
     
  4. Автор темы
    HamBurgeR

    HamBurgeR Участник Пользователь

    Trophy Points:
    31
    А не знаешь, можно ли WATER заменить на ид воды из мода? Или нужно что-то другое делать?
     
  5. AtomicInteger

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

    Trophy Points:
    46
    Можно.Правда если вода из мода, то у неё и Material другой, но я не уверен.Можешь задебажить.
     
  6. xDark

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

    Trophy Points:
    96
    Skype:
    ailyashevich
    Имя в Minecraft:
    xDark
    Бред
    getTypeId
     
  7. Автор темы
    HamBurgeR

    HamBurgeR Участник Пользователь

    Trophy Points:
    31
    Т.е?
    Code:
    if(event.getBlock().getTypeId()== ID)
    
    Так?
     
  8. 0x1EE7C0DE

    0x1EE7C0DE Участник Пользователь

    Trophy Points:
    36
    Да
     
  9. AtomicInteger

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

    Trophy Points:
    46
    Почему бред?
     
  10. Dereku

    Dereku Старожил

    Trophy Points:
    173
    Skype:
    derek_unavailable
    Имя в Minecraft:
    _Dereku
    Потому что староверы не могут в проверку обновлений, и узнать, что Material есть почти у всех предметов в модах.
     
  11. Автор темы
    HamBurgeR

    HamBurgeR Участник Пользователь

    Trophy Points:
    31
    getTypeId() == 800)
    Фразу getTypeId Эклипс почему-то зачёркивает. И просит добавить @SuppressWarnings("deprecation")[DOUBLEPOST=1482276972,1482276651][/DOUBLEPOST]И ещё вопрос. А если внести дополнительно мод, как библиотеку, а в нём указать место "WATER" слово из мода? Такое будет работать?
     
  12. slavik123123123

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

    Trophy Points:
    143
    Имя в Minecraft:
    Leymooooooooooo
    ну и пусть зачеркивает. главное чтобы красным не зачеркивало :)
     
  13. Fenix78563

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

    Trophy Points:
    76
    Имя в Minecraft:
    Blc_Dragon
    это значит что метод устарел и что в любой момент его могут убрать, поэтому его использование не желательно. если мне не изменяет память то он еще с 1.7 уже deprecated

    эээксперименты. проверьте и посмотрите.
     
  14. AtomicInteger

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

    Trophy Points:
    46
    Если метод устарел, то это не значит что его в любой момент могут убрать.
    Проверка по id дело не надежное.Если уж так нужно, то лучше выведи значение в конфиг и оттуда получай его, так как потом будут проблемы.Но вообще, не понимаю, зачем возится с устарелыми ненадёжными методами, к тому же id, когда у модовых предметов тоже есть Material и можно проверять по нему, если автор того мода не совсем дурак.
    А вот советовать magic value методы - не бред.
     
  15. alexandrage

    alexandrage Администратор

    Trophy Points:
    173
    Skype:
    alexandr0116
    Потому что у модов айдишники создаются рандомнот, после вайпа слетит все.
    Material.valueOf("arg");
     
  16. Автор темы
    HamBurgeR

    HamBurgeR Участник Пользователь

    Trophy Points:
    31
    Дык, а каким образом тогда узнать Material из мода?
     
  17. alexandrage

    alexandrage Администратор

    Trophy Points:
    173
    Skype:
    alexandr0116
    Ну к примеру в логе запуска сервера. Injected new Forge block material CUSTOMNPCS_NPCLAMP with ID 198.
     
  18. AtomicInteger

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

    Trophy Points:
    46
    Не спорю, айдишники - да, а материал всегда обычно статический.
    Хорошо бы иметь небольшой дебаг-плагин, который выводит разные параметры вещей и т.п.Конкретно материал можно проверить примерно так:
    Code:
    player.sendMessage(player.getItemInHand().getType().toString());
    Можно на команды сделать, можно на клики, как угодно.
     
  19. alexandrage

    alexandrage Администратор

    Trophy Points:
    173
    Skype:
    alexandr0116
    Тогда уж полностью автоматизировать добавление в конфиг через команду с предметом в руке.
     
  20. AtomicInteger

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

    Trophy Points:
    46
    Можно и так.У меня есть десктоп, она лог парсит и вырезает только модовские материалы, тоже можно использовать.
     

Share This Page