Использование API EssentialsX

Baroness's Dev

Разработчик
Пользователь
Привет всем, пишу плагины на 1.12.2. Импортировал EssentialsX как библиотеку и, вроде как, всё отлично работает. Но после полутора часов гугла я так и не нашёл ни одного гайда по этому API.
Мне нужна функция, которая позволит проверить наличие кулдауна на телепортацию.
Буду очень благодарен за помощь.
 

q20w26a

Разработчик
Пользователь
Essentials вроде не предоставлял официального API, поэтому, осмелюсь предположить что придется заниматься реверсом и искать метод самому. А вообще, вот исходники: GitHub.
 

Baroness's Dev

Разработчик
Пользователь
q20w26a, может, есть какие-нибудь идеи, как это можно реализовать? исходники я чекал уже
Авто объединение сообщений:

Нашёл в исходниках, попробую использовать.
Java:
public interface ITeleport {
    /**
     * Used to skip teleportPlayer delay when teleporting someone to a location or player.
     *
     * @param loc      - Where should the player end up
     * @param cooldown - If cooldown should be enforced
     * @param cause    - The reported teleportPlayer cause
     *
     * @throws Exception
     */
    void now(Location loc, boolean cooldown, PlayerTeleportEvent.TeleportCause cause) throws Exception;
 
Последнее редактирование:

q20w26a

Разработчик
Пользователь
Не похоже что с помощью этого можно определить наличие задержки.
 

Baroness's Dev

Разработчик
Пользователь
Такс... У меня не получилось, впрочем, ничего необычного
q20w26a, невозможно сделать перехват поступающих игроку сообщений внутри ивента, ведь так? Это ведь должны быть два разных ивента?
 

q20w26a

Разработчик
Пользователь
Посмотри на это, может найдешь тут что-нибудь.
Авто объединение сообщений:

невозможно сделать перехват поступающих игроку сообщений внутри ивента, ведь так? Это ведь должны быть два разных ивента?
Скорее всего да.
 

Baroness's Dev

Разработчик
Пользователь
Кажется, это система ожидания при телепортации (когда нужно стоять определённое время), таймера на следующий телепорт я не заметил
 

q20w26a

Разработчик
Пользователь
Так, давай сначала, я кажется уже сам путаюсь. Что ты хотел сделать?
 

Baroness's Dev

Разработчик
Пользователь
Так, давай сначала, я кажется уже сам путаюсь. Что ты хотел сделать?
Мне нужна функция, которая позволит проверить наличие кулдауна на телепортацию.
Авто объединение сообщений:

Грубо говоря
YAML:
if (!p.getTeleportCooldown == 0) {
    //code
}
 
Последнее редактирование:

Baroness's Dev

Разработчик
Пользователь
Для ищущих решение: API использовать не удалось, попробуйте перехват приходящих сообщений. Другого решения я пока не вижу.
 

BlackBarcode13

Разработчик
Пользователь
Чтобы не костылить, лучше напиши свой плагин на телепортацию, аля как дополнение к Essentials'у.
Раньше горел внедрить в эссентиалс поддержку JSON, но потом решил, что проще нужное мне просто заменить отдельным плагином.
К сведению, игрок в эссентиалс == User.


P.S: Не забудь запускать плагин до Essentials'a, чтобы овверайднуть его команды.
 

Baroness's Dev

Разработчик
Пользователь
Чтобы не костылить, лучше напиши свой плагин на телепортацию, аля как дополнение к Essentials'у.
Раньше горел внедрить в эссентиалс поддержку JSON, но потом решил, что проще нужное мне просто заменить отдельным плагином.
К сведению, игрок в эссентиалс == User.


P.S: Не забудь запускать плагин до Essentials'a, чтобы овверайднуть его команды.
Переписывать целый плагин трудновато для меня пока что) Не дорос
 

BlackBarcode13

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

Baroness's Dev

Разработчик
Пользователь
mc923, понятия не имею, как написать тп с кулдаунами) Причём, не просто /tpa какое-нибудь, тут ещё и towny в сборке стоит
 

Комнаты в чате

Верх Низ