Войти или зарегистрироваться
  • Вы находитесь в сообществе Rubukkit. Мы - администраторы серверов Minecraft, разрабатываем собственные плагины и переводим на различные языки плагины наших коллег из других стран.

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

Хотел дописать про фиксы для BC4 и эвенты выше в пост, но не получилось.
По хорошему надо бы запилить вики для всех этих эвентов, ибо в одну тему всё подряд тупо не умещается.
А можно евенты Ender Quarry в моде Extra Utilites. хороший карьер, не оставляет дырок,но.... гриферит.Причем если это сундук, аккуратно из сундука все заберет и сундук не сломает, как пылесос засосет.
 
Ответ уже был, из-за плохой работы некоторых плагинов с ивентами стандартными.
И не только: можно менять логику обработки событий. ModEventListener - это как бы пример плагина. Те, кто пишут плагины, могут у себя в них добавить отслеживание кастомных эвентов.
 
Ответ уже был, из-за плохой работы некоторых плагинов с ивентами стандартными.

@ensirius говорит именно о куче новых событий, а не об одном общем. Ведь так или иначе, можно обойтись 2-3 кастомными ивентами, общими для всех модов.
И не только: можно менять логику обработки событий. ModEventListener - это как бы пример плагина. Те, кто пишут плагины, могут у себя в них добавить отслеживание кастомных эвентов.

Писать отслеживание модовских ивентов в плагинах - извращение, ибо неизвестно что за дерьмо произойдёт в следующей версии мода.
 
@ensirius говорит именно о куче новых событий, а не об одном общем. Ведь так или иначе, можно обойтись 2-3 кастомными ивентами, общими для всех модов.


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

Конечному юзеру может быть и удобнее, имхо, проще дописывать нужные ограничения в теле самого мода, а не ипаться с баккитом и случать over9000 ивентов.
 
Конечному юзеру может быть и удобнее, имхо, проще дописывать нужные ограничения в теле самого мода, а не ипаться с баккитом и случать over9000 ивентов.
Кому как.
На перекомпиляцию плагина уйдёт пару секунд, в то время как мод собирается оооочень долго, да и не всегда есть готовый воркспейс по рукой.
 
Неумение пользоваться всеми эвентами баккита - вот где проблема из слов сказанных выше.
 
Неумение пользоваться всеми эвентами баккита - вот где проблема из слов сказанных выше.
Баккитовские эвенты вообще не вариант.
Какой эвент я должен бросить для выстрела лазера чтобы не среагировало три тонны других плагинов которые от того что эветы бросает не реальный игрок сходят с катушек?
 
Неумение пользоваться всеми эвентами баккита - вот где проблема из слов сказанных выше.
Вы ничего не понимаете в этом. Моды для модов это по сути то же самое, что делать эвенты для ванильных блоков (например, раздатчика). Только их прикручивают разработчики ядра.
 
Вы ничего не понимаете в этом. Моды для модов это по сути то же самое, что делать эвенты для ванильных блоков (например, раздатчика). Только их прикручивают разработчики ядра.
Я в своих утверждениях более чем уверен. Что бы предмет корректно обрабатывался надо в нужном месте добавить нужное событие из баккита.
 
Я в своих утверждениях более чем уверен. Что бы предмет корректно обрабатывался надо в нужном месте добавить нужное событие из баккита.
Сделай сначала. Тогда будет о чём говорить.
 
Баккитовские эвенты вообще не вариант.
Какой эвент я должен бросить для выстрела лазера чтобы не среагировало три тонны других плагинов которые от того что эветы бросает не реальный игрок сходят с катушек?
Под видом взрыва очевидно же.

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

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

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

и т.д.
Сделай их вызов при ловле нестандартного. В чём проблема?
 
Под видом взрыва очевидно же.

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

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

Исходя из какой логики они будут отменены? Да придется хукнуть кое где, но это сделает вашу работу правильной.

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

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

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

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

Назад
Верх