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 Case opened!"
Поддержка конкретного слота кейса
Работает только в случае, если в событии есть метод getSlot
Events:
MyEvent:
Event: CaseGuiClickEvent # ваше событие
Case: case # здесь конкретный кейс
Slot: 1 # здесь конкретный слот
Actions:
- "[command] say Gui clicked!"
Плейсхолдеры
У DCEventManager есть своя собственная система плейсхолдеров, которая позволяет вам использовать ВСЕ методы, предоставляемые событиями.
Эта система работает с использованием рефлексии!
Пример плейсхолдеров:
Events:
AddonDisableEvent: # название класса события
addon: # ID плейсхолдера
placeholder: "%addon%" # заменённый плейсхолдер
method: "getAddon#getName" # метод класса
reason: # ID плейсхолдера
placeholder: "%reason%" # заменённый плейсхолдер
method: "getReason" # метод класса
caused: # ID плейсхолдера
placeholder: "%caused%" # заменённый плейсхолдер
method: "getCaused#getName" # метод класса
Если вы не разбираетесь в программировании, это может выглядеть немного запутанно из-за параметра method
.
Но не переживайте, это просто!
Этот параметр используется для определения места, откуда будет взято значение плейсхолдера.
Давайте посмотрим на JavaDocs AddonDisableEvent класса
Здесь мы видим, что класс AddonDisableEvent имеет несколько интересных методов, таких как: getAddon
, getCaused
и getReason
.
Думаю, вы уже догадались, что эти методы используются для получения значений плейсхолдеров, но что такое #
?
Это символ для разделения методов. Например, мы вызываем метод getAddon, который является объектом InternalAddon, имеющим такие методы:
Конечно, будет немного странно просто отображать информацию о некоторых InternalAddon без дополнительных инструкций, но стоит посмотреть, что это за класс. Похоже, он представляет интерфейс внутреннего аддона, и мы можем извлечь из него полезную информацию! Давайте узнаем имя этого аддона, похоже, метод getName как раз нам подойдёт!
Теперь наш метод выглядит так: getAddon#getName
Если у вас есть дополнительные вопросы, пожалуйста, свяжитесь с нами на Discord сервере!