Перейти к основному содержимому

DCEventManager Wiki

Этот аддон позволяет вам управлять ивентами DonateCase
С его помощью вы можете выполнять определенные действия, такие как отправка сообщений и выполнение команд от имени консоли.
Как это работает?
Аддон прослушивает все события, зарегистрированные в DonateCase. Получение событий происходит с помощью рефлексии, а это значит, что при обновлении DonateCase новые события будут автоматически загружаться в DCEventManager, без необходимости обновлять аддон!

Пример config.yml

Debug: false
Package: "com.jodexindustries.donatecase.api.events" # не изменяйте это

Events:
MyEvent:
Event: AnimationStartEvent
Actions:
- "[command] say Анимация запущена!"

MyAnotherEvent:
Event: AnimationEndEvent
Actions:
- "[broadcast] &dАнимация закончилась!"

Ивенты

Список всех доступных событий здесь

Действия

Все действия DonateCase

DCEventManager действия

Вызов метода

Пример - [invoke] setCancelled(true)

Поддержка конкретного кейса

Работает, только если у события есть методы getCaseType или getCaseData

Events:
MyEvent:
Event: AnimationStartEvent # ваш ивент
Case: case # здесь конкретный кейс
Actions:
- "[command] say Анимация запустилась!"

Поддержка конкретного слота кейса

Работает только в том случае, если у события есть метод getSlot

Events:
MyEvent:
Event: CaseGuiClickEvent # ваш ивент
Case: case # здесь конкретный кейс
Slot: 1 # здесь конкретный слот
Actions:
- "[command] say Клик по гюи!"

Заполнители

У DCEventManager есть своя собственная система заполнителей, которая позволяет вам использовать ВСЕ методы, предоставляемых событиями.
Эта система работает с помощью Рефлексии!

Пример заполнителей:

Events:
AddonDisableEvent: # название класса ивента
addon: # айди заполнителя
placeholder: "%addon%" # заменённый плейсхолдер
method: "getAddon#getName" # метод класса
reason: # айди заполнителя
placeholder: "%reason%" # заменённый плейсхолдер
method: "getReason" # метод класса
caused: # айди заполнителя
placeholder: "%caused%" # заменённый плейсхолдер
method: "getCaused#getName" # метод класса

Если вы не разбираетесь в программировании, то это может выглядеть немного запутанно из-за параметра method. Но не разочаровывайтесь, это просто!
Этот параметр используется для определения места, откуда будет взято значение placeholder.

Давайте посмотрим на JavaDocs AddonDisableEvent класса
jd.png

Здесь мы видим, что класс AddonDisableEvent имеет несколько интересных методов, таких как: getAddon, getCaused и getReason.
Думаю, вы уже догадались, что эти методы используются для получения значений placeholder, но что такое #?
Это символ для разделения методов. Например, мы вызываем метод getAddon, который представляет собой объект InternalAddon, имеющий следующие методы: addon.png Конечно, будет немного странно просто отображать информацию о некотором InternalJavaAddon без дополнительных инструкций, но стоит посмотреть, что это за класс, похоже, он представляет собой интерфейс внутреннего аддона, и мы можем извлечь из него некоторую полезную информацию! Давайте узнаем имя этого аддона, похоже, что метод getName как раз подходит нам!
Теперь наш метод выглядит следующим образом: getAddon#getName

Если у вас есть дополнительные вопросы, пожалуйста, свяжитесь с нами в Discord сервере!