1. Вы находитесь в сообществе Rubukkit. Мы - администраторы серверов Minecraft, разрабатываем собственные плагины и переводим на различные языки плагины наших коллег из других стран.
    Скрыть объявление
Скрыть объявление
В преддверии глобального обновления, мы проводим исследования, которые помогут нам сделать опыт пользования форумом ещё удобнее. Помогите нам, примите участие!

Фикс Эвенты для модов [1.7.10/Устаревшие/SRC]

Тема в разделе "Управление сервером Bukkit", создана пользователем Shevchik, 12 янв 2014.

  1. origamerpro

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

    Баллы:
    88
    Имя в Minecraft:
    origamerpro
    А можно евенты Ender Quarry в моде Extra Utilites. хороший карьер, не оставляет дырок,но.... гриферит.Причем если это сундук, аккуратно из сундука все заберет и сундук не сломает, как пылесос засосет.
     
  2. ensirius

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

    Баллы:
    123
    Какой смысл плодить кучу новых событий?
     
  3. oleg57zls

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

    Баллы:
    173
    Skype:
    BlayzerQ
    Имя в Minecraft:
    Blayzer
    Ответ уже был, из-за плохой работы некоторых плагинов с ивентами стандартными.
     
  4. saharin94

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

    Баллы:
    173
    И не только: можно менять логику обработки событий. ModEventListener - это как бы пример плагина. Те, кто пишут плагины, могут у себя в них добавить отслеживание кастомных эвентов.
     
  5. Sirse

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

    Баллы:
    173
    Имя в Minecraft:
    Sirse
    @ensirius говорит именно о куче новых событий, а не об одном общем. Ведь так или иначе, можно обойтись 2-3 кастомными ивентами, общими для всех модов.
    Писать отслеживание модовских ивентов в плагинах - извращение, ибо неизвестно что за дерьмо произойдёт в следующей версии мода.
     
    oleg57zls нравится это.
  6. Автор темы
    Shevchik

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

    Баллы:
    173
    Имя в Minecraft:
    _Shevchik_
    Да какое угодно дерьмо может произойти, но как-то на следующие версии пофигу, главное что можно обработать эвент как хочешь. Например я хочу чтобы взрывы тупо не наносили урон по приватам, а кто-то другой хочет чтобы наносил только привату в котором был взрыв, а кто-то просто хочет отключить взрывы. Или например сделать чтобы карьер копал только в одном мире, а в другом нет, а насос работал везде. И чтобы не перекатывать мод каждый раз когда надо внести изменения проще кинуть кучу разных кастомных эвентов. Поэтому кидать только например IC2BlockBreakEvent на всё совершенно глупо.
     
  7. Sirse

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

    Баллы:
    173
    Имя в Minecraft:
    Sirse
    Конечному юзеру может быть и удобнее, имхо, проще дописывать нужные ограничения в теле самого мода, а не ипаться с баккитом и случать over9000 ивентов.
     
  8. Автор темы
    Shevchik

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

    Баллы:
    173
    Имя в Minecraft:
    _Shevchik_
    Кому как.
    На перекомпиляцию плагина уйдёт пару секунд, в то время как мод собирается оооочень долго, да и не всегда есть готовый воркспейс по рукой.
     
  9. ensirius

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

    Баллы:
    123
    Неумение пользоваться всеми эвентами баккита - вот где проблема из слов сказанных выше.
     
  10. Автор темы
    Shevchik

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

    Баллы:
    173
    Имя в Minecraft:
    _Shevchik_
    Баккитовские эвенты вообще не вариант.
    Какой эвент я должен бросить для выстрела лазера чтобы не среагировало три тонны других плагинов которые от того что эветы бросает не реальный игрок сходят с катушек?
     
  11. saharin94

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

    Баллы:
    173
    Вы ничего не понимаете в этом. Моды для модов это по сути то же самое, что делать эвенты для ванильных блоков (например, раздатчика). Только их прикручивают разработчики ядра.
     
    ПриветОтЛайки нравится это.
  12. ensirius

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

    Баллы:
    123
    Я в своих утверждениях более чем уверен. Что бы предмет корректно обрабатывался надо в нужном месте добавить нужное событие из баккита.
     
  13. saharin94

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

    Баллы:
    173
    Сделай сначала. Тогда будет о чём говорить.
     
  14. ensirius

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

    Баллы:
    123
    Под видом взрыва очевидно же.

    IC2ExplosionBlocksDestroyEvent - EntityExplodeEvent
    IC2ExplosionEntityDamageEvent - EntityDamageEvent
    IC2LaserHitBlockEvent - EntityExplodeEvent
    IC2LaserHitEntityEvent - EntityDamageEvent
    IC2MinerMineBlockEvent - EntityChangeBlockEvent
    BC4EngineExplosionEvent - EntityExplodeEvent
    BC4FillerModifyBlockEvent - EntityBlockFormEvent
    BC4PumpPumpBlockEvent - EntityBlockFormEvent

    Даже если вы не могли воспользоваться EntityBlockFormEvent вы могли сделать один свой эвент, а не штопать пачку. Но опять же лучшее всего внедриться под стандартные события и тогда дискомфорта не будет.
     
  15. saharin94

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

    Баллы:
    173
    Сделай их вызов при ловле нестандартного. В чём проблема?
     
  16. Автор темы
    Shevchik

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

    Баллы:
    173
    Имя в Minecraft:
    _Shevchik_
    Все баккит эвенты будет отменены античитом и плагином авторизации. Это не счиая того что некоторые плагины могут слететь с катушек так как плагин вполнее имеет право не ожидать того что эвенты могут быть кинуты чем угодно, и таких плагинов большинство.
    А так же мне в любом случае придётся писать свой плагин для достижения желаемого
    эффекта.
     
  17. ensirius

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

    Баллы:
    123
    С какой целью вы появились в этой теме? Оспорить мои умения или доказать свою некомпетентность? Прежде чем со мной говорите, прибегните к своему же совету.
    Исходя из какой логики они будут отменены? Да придется хукнуть кое где, но это сделает вашу работу правильной.
    Делать грабли на граблях :)))
     
  18. Автор темы
    Shevchik

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

    Баллы:
    173
    Имя в Minecraft:
    _Shevchik_
    И на кой хер мне хукать кучу разной фигни и иметь проблемы с разными логгирующими плагинами если я тупо могу накатать пачку эвентов и обработать их из своего плагина?
    Если вдруг я поставлю плагин и окажется что он неадекватно реагирует на фейкового игрока, то мне придётся пистаь ещё один костыль в моде. В то время как в случае кастомных эвентов у меня такой пролемы не будет.
     
  19. ensirius

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

    Баллы:
    123
    Сделать пару instanceof EntityBlabla всяко лучшее. Вы не сделали, но утверждаете что будут проблемы с плагинами авторизации, античитом и логерами. Какие проблемы? Они могут возникнуть только если вы не правильно сделали событие. Вы пошли по простому пути - как проще. Если бы вы это решение делали для себя, я бы все понял. Но вы выложили его в паблик. Я не имею WG и качественная интеграция для меня этих событий под вопросом. В итоге мне нужно тоже писать отдельный плагин. Поймите, когда вы делаете что-то для других, это решение должно быть на столько хорошим, что бы другой программист мог сказать про себя, какой вы боженька и молодец. Нет, Вы молодец. Я просто задал вопрос почему нет и услышал весьма странные аргументы про плагины и проблемы которых в принципе нет . Вот товарищ @Sirse успешно хукает без создания своих событий.

    И нет, не одно событие что я дал выше не требует фейкового игрока. Основная позиция - к черту столько разных событий. Это здравый дискас и создает соответственное комьюнити людей которые хотят сделать мир майнкрафта лучшее :)
     
  20. Автор темы
    Shevchik

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

    Баллы:
    173
    Имя в Minecraft:
    _Shevchik_
    Впрочем эвенты указанные вами WG и не слушает(кроме EntityExplodeEvent), так что они будут байпассить приват. Всё равно придётся писать плагин который будет слушать их и защищать приват. И опять же будут ли предметы грифить регион или нет будет зависеть от того как плагин привата написан. Что опять же возвращает нас к проблеме рандомной реакции плагинов на баккит эвенты брошенные с нестандартными аргументами.

    Короче куда проще и лучше контролировать как сработают предметы самому, а с плагина привата дёргать только инфу о защищённости региона. А вот почему контролируется это на стороне плагина, а не мода: просто потому что плагин дописывать легче.
     

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