• Плагины
  • [MC] EasyPayments - Альтернативный способ выдачи товаров

Введение

Сегодня вышло обновление, которое добавило возможность использовать альтернативный способ выдачи товаров. Если раньше вы могли использовать для этого лишь RCON, то теперь вам будет доступен способ выдачи через плагин.

Как это использовать?

Полная документация по установке и использованию плагина доступна здесь.

Как это работает?

Важно! Алгоритм работы был частично изменён в версии 2.0.0, смотрите данный пост.

Каждую минуту или реже (указывается в конфиге) плагин отправляет запрос серверу платформы и получает список последних платежей. Далее для каждого из платежей плагин выполняет указанные команды и сохраняет полученный ответ. Ответы на команды в виде репорта отправляются обратно на сервер, а после чего будут выведены в списке совершённых платежей в вашем личном кабинете.

От чьего имени выполняются команды?

Важно! Данная информация уже не актуальна, смотрите следующий пост.

Над этим вопросом мы с администратором достаточно продолжительное время ломали голову, но в итоге пришли к такому выводу, что для обеспечения поддержки всех версий с 1.8 до 1.17 и следующих (новее) наиболее подходящим вариантом будет использование виртуального игрока как исполнителя.
Конечно, у это игрока есть имя - @EasyPayments, вы сможете увидеть его, например, при редактировании записей пользователей или групп в LuckPerms от его имени, или же если вы просто добавите команду /say <сообщение>. Тем не менее, важно помнить, что для игры это всё равно игрок, хоть и виртуальный, поэтому воздержитесь от использования команд, чувствительных к этому. Не пытайтесь телепортировать кого-то к нему или выполнить ещё какие-либо взаимодействия с ним как с сущностью.

Информация для разработчиков

Важно! На данный момент исходный код открыт, смотрите данный пост.

Если вы уже ознакомились с содержимым JAR файлов плагина, то наверняка задались вопросом "почему всё под обфускацией?", "почему исходный код закрыт?". Да, это действительно так, нам необходимо было закрыть исходный код от лишних глаз. Почему и зачем? К сожалению, мы не можем сказать прямо, т.к. считаем, что данная информация всё равно будет лишней и бесполезной для вас, да и нам не хочется палить все свои фишки, сами понимаете, конкуренция 🙂

DontFollow закрепил(а) дискуссию.
  • Изменено

Обновление до версии 1.1.0 от 28.06.2021.

Что нового?

  • Встречайте SCFA 2.0! Движок получения фидбеков от команд был полностью переписан. Теперь наш виртуальный отправитель команд не игрок, алгоритм теперь использует другой тип отправителей, который считается серверным отправителем (общим типом для консоли и RCON обработчика). Но, поскольку любой отправитель команд должен иметь имя, мы оставили для него @EasyPayments. Механика с permission-level в конфиге осталась прежней и всё ещё поддерживается.
  • Для работы плагина теперь необходимо наличие параметра server-id в config.yml. Это было сделано для фильтрации платежей, относящихся только к данному серверу.
      # Идентификатор вашего сервера, к которому привязан данный плагин
      server-id: 69
  • В плагин теперь обучен проверять обновления на сервере. При наличии новой версии плагина вы получите уведомление в консоли при запуске сервера, где будет отображаться прямая ссылка для скачивания. Проверка выполняется асинхронно, съедает минимум ресурсов и ну никак не влияет на производительность, поэтому мы решили не добавлять возможность отключать её. 😃
  • Переход на SCFA 2.0 исправил баг с обработкой команд LuckPerms, PermissionsEX и других менеджеров прав. Теперь они обрабатываются корректно.

Где скачать?

Ранее мы не упоминали реальные названия модулей нашего плагина, теперь хотим донести эту информацию для вас. Ниже находятся ссылки на каждый из двух модулей. Желательно запомнить их названия и уметь отличать друг от друга, на будущее 🙂

  • Alcor (Алькор) - Модуль, поддерживающий версию игры 1.17 и новее, работает на Java 16 и новее.
  • Sirius (Сириус) - Модуль, поддерживающий версии игры от 1.8 и до 1.16.5, работает на Java 8 и новее.
  • Изменено

Решение проблем

С выходом второй стабильной версии плагина внимание к нему увеличилось, всё больше и больше игроков переходят на такой вариант выдачи товаров вместо RCON. Однако вместе с тем часть этих людей не могут с ходу разобраться в настройке плагина, хотя там всё достаточно просто, ведь для завершения установки нужно всего лишь указать два параметра в конфиге... 😅

Плагин не запустился или не работает

В случае, если вы заметили, что после установки плагина, купленные товары не выдаются на сервере, сразу листайте лог запуска сервера и ищите сообщения, которые плагин вывел при включении. Можете искать по ключевой фразе [EasyPayments] Enabling EasyPayments.

Далее смотрим, есть ли красное сообщение после этой строки. Если есть, то смотрите список ниже, если же плагин успешно включился и вы видите баннер с копирайтом, то листайте этот пост ниже.

  • [EasyPayments] Please, specify your unique shop key in the config.yml
    Причина ошибки: Вы не указали API-ключ вашего магазина в конфиге плагина (config.yml)
    Решение:

    1. Перейдите в ваш магазин в панели управления.
    2. В правом верхнем углу после соответствующей иконки расположен сам API-ключ вашего магазина. Переключите его видимость, используя переключатель справа, а затем скопируйте его от начала и до конца.
      Внимание! Ни в коем случае не передавайте этот ключ третьим лицам! Знающий человек, имея ключ вашего магазина, сможет в любое время получать почти всю информацию о нём, которую вы видите в личном кабинете.
      Важно! В отображаемом поле с ключом он показан не полностью. При копировании отведите курсор справа и скопируйте ключ полностью!
      Личный кабинет с API-ключом
    3. Откройте файл config.yml и вставьте скопированный ключ как значение параметра key.
      Конфигурационный файл плагина
  • [EasyPayments] Please, specify your server ID in the config.yml
    Причина ошибки: Вы не указали идентификатор вашего сервера в конфиге плагина (config.yml)
    Решение:

    1. Перейдите в ваш магазин в панели управления.
    2. Перейдите в список подключённых серверов.
    3. Скопируйте ID сервера, расположенный под его названием.
      Список подключённых серверов
    4. Вставьте скопированный идентификатор как значение параметра server-id в файле config.yml.
      Конфигурационный файл плагина

Ошибки при проверке обновлений (через секунду после запуска плагина)

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

  • Коды ошибки: 10 и 11
    Описание: JAR файл плагина не содержит идентификатора модуля (alcor, sirius).
    Решение: Попробуйте обновить плагин вручную или же просто перекачайте его с сайта.
  • Код ошибки: 12
    Описание: Идентификатор модуля неизвестен, т.е. это ни alcor, ни sirius.
    Решение: Попробуйте обновить плагин вручную или же просто перекачайте его с сайта.

Вы также можете включить logging.debug (режим отладки) в config.yml. Эта опция включит вывод сообщений для отладки в консоль. Вы сможете увидеть содержимое ответов на запросы от EasyDonate API. Это может помочь вам, как более продвинутому пользователю, решить проблему самостоятельно.

Сообщения об ошибках при отправке различных запросов

Такие сообщения могут появляться в консоли в случайный промежуток времени. Если вы переведёте эти фразы с английского, вы поймёте, о чём там говорится. В большинстве случаев, вам достаточно просто проигнорировать такие сообщения, если вы не знаете, в чём может быть причина их появления.

Возможный порядок действий, который может решить проблему появления таких сообщений:

  1. Убедитесь, что плагин и сам сервер имеет доступ к Интернету, а запросы не блокируются вашим Firewall'ом. Помните, что плагин отправляет запросы только на домен easydonate.ru/api!
  2. Убедитесь, что вы не меняли версию плагина самостоятельно, пытаясь игнорировать уведомления о новых версиях таким образом. Используемое API очень чувствительно к версии плагина, поэтому лучше обновить его до актуальной версии и не пытаться обмануть систему. 🙂
  3. В ином случае, вероятно, на стороне платформы сейчас просто проводятся тех. работы и по их оконанию всё снова наладится. Вам стоит удостовериться, что тех. работы действительно проходят сейчас. Вы можете сделать это, открыв официальную страницу сообщества ВКонтакте, в беседе сообщества или же в личных сообщениях этого же сообщества.

месяц спустя
  • Изменено

Обновление до версии 1.1.1 от 01.08.2021.

Что нового?

  • Исправлена работа плагина на ядрах Spigot и форках версии 1.12.2.
  • Небольшие технические изменения.

Где скачать?

  • Alcor - Для версий от 1.17 и новее, работает на Java 16 и новее.
  • Sirius - Для версий от 1.8 и до 1.16.5, работает на Java 8 и новее.
  • Изменено

Обновление до версии 1.1.2 от 03.08.2021.

Что нового?

  • Исходный код проекта теперь открыт и распространяется под лицензией MIT.
  • Исправлена работа плагина на ядрах Spigot и форках версии 1.12.2 (да, снова).
  • Ошибка о подключении к API должна появляться реже.
  • Небольшие технические изменения.

Где скачать?

  • Alcor - Для версий от 1.17 и новее, работает на Java 16 и новее.
  • Sirius - Для версий от 1.8 и до 1.16.5, работает на Java 8 и новее.
месяц спустя

Обновление до версии 1.1.3 от 17.09.2021.

Что нового?

  • Теперь плагин будет отображать полный stacktrace ошибки, если включен вывод сообщений отладки (logging.debug).
  • Небольшие технические изменения.

Где скачать?

  • Alcor - Для версий от 1.17 и новее, работает на Java 16 и новее.
  • Sirius - Для версий от 1.8 и до 1.16.5, работает на Java 8 и новее.
3 месяца спустя

Обновление до версии 1.1.4 от 05.12.2021.
EasyPayments v2.0 не за горами 😃

Что нового?

  • Теперь плагин поддерживает свежую версию игры 1.18.
  • Некоторые технические изменения.
    Полный список изменений доступен здесь.

Где скачать?

  • Alcor - Для версий от 1.17.X и до 1.18.X, работает на Java 16 и новее.
  • Sirius - Для версий от 1.8.X и до 1.16.X, работает на Java 8 и новее.
3 месяца спустя

Обновление до версии 2.0.0 от 23.02.2022.
Начало новой истории...

Что нового?

Это глобальное обновление продукта, потому изменений здесь очень много:

  • Поддержка всех тех функций платформы, которые не были реализованы в плагине ранее.
  • Корзина для покупок ваших игроков, чтобы они могли забрать их в любое время.
  • Существенное уменьшение задержек на выдачу и улучшение производительности.
  • Функция быстрой настройки плагина после установки при помощи /ep setup.
  • Перезагрузка всех компонентов плагина в реальном времени при помощи /ep reload.
  • Локализация и кастомизация всех сообщений, выводимых плагином.

Технические изменения:

  • Слияние двух модулей в один JAR.
  • Переход на API v3.
  • Использование EasyDonate4J SDK.
  • Работа с базами данных при помощи ORMLite Framework.

Где скачать?

  • Merged - Для всех версий от 1.8.X и до 1.18.X.

Обновление до версии 2.0.1 от 25.02.2022.

Что нового?

  • В первой версии глобального обновления была обнаружена существенная недоработка, вызывавшая аварийное выключение сервера всвязи с высоким потреблением вычислительных ресурсов. Эту недоработку мы исправили.
  • Теперь перезагрузка компонентов плагина выполняется асинхронно.
    (Команды /ep reload, /ep setup)
  • Также потокам, запускаемых плагином, теперь задаются имена. Их можно будет заметить при просмотре таймингов сервера или во время профайлинга JVM.

Где скачать?

  • Merged - Для всех версий от 1.8.X и до 1.18.X.
18 дней спустя

Обновление до версии 2.0.2 от 15.03.2022.

Что нового?

  • Добавлена поддержка версии игры 1.18.2.
  • Добавлена обработка ошибки при использовании неподдерживаемой версии плагина.
  • Исправлена обработка некоторых ошибок при работе с EasyPayments API.

Где скачать?

  • Merged - Для всех версий от 1.8.X и до 1.18.X.
7 месяцев спустя

Обновление до версии 2.0.3 от 31.05.2022.

Что нового?

  • Исправлен механизм ожидания ответа на выполненные команды:
    Теперь ответ будет получен через 3 секунды независимо от кол-ва выполненных команд.
  • Улучшена обработка различных ответов от LongPoll API.
  • Добавлена обработка ошибки HTTP 502, обычно наблюдаемой при DDoS-атаке на сервис.
  • Добавлено время ожидания (60 сек.) перед следующим запросом после получения ошибки при предыдущем.

Где скачать?

  • Merged - Для всех версий от 1.8.X и до 1.18.X.

Обновление до версии 2.0.4 от 01.06.2022.

Что нового?

  • Исправлена работа планировщика обработки команд.
  • Исправлено ложное срабатывание таймаута в 60 сек. при выключении плагина (при остановке сервера etc).
  • Некоторые технические изменения в коде планировщика, улучшающие его работу.

Где скачать?

  • Merged - Для всех версий от 1.8.X и до 1.18.X.

Обновление до версии 2.0.5 от 08.06.2022.

Что нового?

  • Добавлена поддержка версии игры 1.19.

Где скачать?

  • Merged - Для всех версий от 1.8.X и до 1.19.X.

Обновление до версии 2.0.6 от 07.07.2022.

Что нового?

  • Улучшена обработка исключений при выполнении команд:
  • Теперь вместо большого stack-trace в консоли будет отображаться сообщение в 2 строки и конечный stack-trace, содержащий информацию об ошибке, полезную для разработчика плагина, в котором и произошла данная ошибка.
  • Изменена выводимая ссылка на документацию по EasyPayments.
  • Исправлена небольшая опечатка в стандартном файле локализации плагина для русского языка.

Где скачать?

  • Merged - Для всех версий от 1.8.X и до 1.19.X.

Обновление до версии 2.0.7 от 17.08.2022.

Что нового?

  • Улучшена обработка неожиданных ошибок при запросе новых платежей.

Где скачать?

  • Merged - Для всех версий от 1.8.X и до 1.19.X.
3 месяца спустя

Обновление до версии 2.0.8 от 31.12.2022.

Что нового?

  • Добавлена поддержка версии игры 1.19.3. (NMS 1_19_R2)
  • Добавлено отображение версии плагина в /ep status.
  • Исправление неожиданных ошибок в консоли.
  • Небольшие технические изменения

Важно!

Необходимо обновить файлы локализации плагина!
Вы можете посмотреть изменения здесь.

Где скачать?

  • Merged - Для всех версий от 1.8.X и до 1.19.X.
3 месяца спустя

Обновление до версии 2.0.9 от 18.03.2023.

Что нового?

  • Добавлена поддержка версии игры 1.19.4. (NMS 1_19_R3)
  • Небольшие технические изменения

Где скачать?

  • Merged - Для всех версий от 1.8.X и до 1.19.X.
3 месяца спустя

Обновление до версии 2.1.0 от 15.06.2023.

Что нового?

  • Добавлена поддержка версии игры 1.20.1. (NMS 1_20_R1)

Где скачать?

  • Universal - Для всех версий от 1.8.X и до 1.20.X.