LPMetaPlus - Донатные валюты через LuckPerms

Платно Плагин LPMetaPlus - Донатные валюты через LuckPerms 1.2

Нет прав для приобретения ("199.00" ₽)
Поддерживаемые версии
  1. 1.16
  2. 1.17
  3. 1.18
  4. 1.19
  5. 1.20
  6. 1.21
Ядра и Прокси
  1. Spigot
  2. Paper
Минимальная версия Java
8
Если посмотреть на все доступные плагины на донатную валюту, то мы поймем, что наилучшей плагин найти сложно (я, лично, не нашел). Возможно, для обычного пользователя первый попавшийся и подойдет, но с части кодовой базы - он будет не лучшим, это связано либо с производительностью либо с багами/дюпами/отками.

1737473170155.png


И тогда я подумал, а почему бы не использовать для хранения донатной валюты плагин You must be logged in to see this link.. Да, этот плагин, обычно, используется для создания привилегий и выдачи разных прав игрокам, но в нем уже давно есть You must be logged in to see this link. которая идеально подходит для хранения донатной валюты и не только.

Вот плюсы которые я вынес:
  1. Надежность. LuckPerms зарекомендовал себя как самый лучший плагин на права, его используют не только на СНГ серверах, но и на серверах по всему миру - это один из самых надежных, если не самый надежный плагин.

  2. Интуитивность и удобство. Что нужно в первую очередь хранить и беречь администрации сервера? - Привилегии, ведь игроки буду очень не рады если, вдруг, они потеряют то, за что заплатили свои кровные и донатные валюты не будут сбрасываться после вайпа как и привилегии. Бережем базу данных с привилегиями и заодно с ней донатную валюту.

  3. Производительность. LuckPerms также имеет, может и, не лучшую производительность, но он точно достаточно стабилен, чтобы им пользовалось столько серверов. В случае донатных валют ситуация будет аналогична, с учетом, что я полностью учел проблемые места в плагине.

  4. Легковесность. Это всего лишь один небольшой плагин вместо одного среднего у которого будет своя база данных и которая будет потреблять так или иначе ресурсы сервера. Могло быть две, будет одна — меньше нагрузки и меньше заморачиваться.

  5. Поддержка API. Скорее является плюсом для разработчиков, чем для владельцев серверов. Если обычно другие плагины на донатную валюту, особенно, самописные не имеют своего API, то в нашем случае мы имеем, мою, более удобную реализацию API и, конечно, от LuckPerms как более продвинутую.
Замечу, что этот плагин будет взаимодействовать со всеми функциями в LuckPerms, к примеру, You must be logged in to see this link. и история выдачи/трат игрокам валюты будут работать, что очень полезно.

Поддерживает выдачу мета-данной оффлайн-игрокам по нику. Все операции полностью выполняются асинхронно и не нагружают основной поток сервера. Поддерживает ядро Folia.

Конфигурация:
YAML:
types:
  FLOWERS:
    display_name: '&eЦветочки'
    default_value: 0
    symbol: ❀
    # https://luckperms.net/wiki/Context
    default_contexts:
      world: spawn
    command:
      enabled: false
      message: ''
      alias: []
  RUBIES:
    display_name: '&cРубины'
    default_value: 0
    symbol: ◆
    command:
      enabled: true
      permission: lpmetaplus.command.rubies
      message: 'Ваш баланс: &c%balance% %symbol%'
      alias:
      - ruby
      - рубины
  RUBLES:
    display_name: '&aРубли'
    default_value: 0
    symbol: ₽
    command:
      enabled: true
      message: 'Ваш баланс: &a%balance% %symbol%'
      alias:
      - ruble
      - рубли

Форматирование чисел
Вы можете настроить форматирование чисел почти как-угодно, кастомизация достаточно обширна и позволит сделать форматирование похожим на то, как у вас это работает в вашем плагине на экономику.

Timeline 1.gif


Конфигурация:
YAML:
# Форматирование чисел донатной валюты.
formatting:
  # Итоговый вывод отформатированного числа.
  # %s - является значением валюты.
  # %c - является символов валюты.
  output: '%s %c'
  # Разделитель числа валюты.
  # Если указать пустым, то отключено.
  separator: ','
  # Форматирование числа компактным методом.
  # К примеру: "1.4M ◆" или "1.5K ◆"
  compact:
    # Включить ли компактность?
    enabled: true
    # Длина числа после раздителя.
    # Если указано 0, то отключено.
    magnitude: 1
    # Отображение суффиксов.
    suffixes:
      THOUSAND: K
      MILLION: M
      BILLION: B
Эмуляция PlayerPoints
К сожалению, большинство плагинов совместимы и работают с API конкретно плагина You must be logged in to see this link., по этому, я подумал, почему бы не, как бы, эмулировать методы из класса PlayerPointsAPI, но, при этом, они будут на самом деле выполнять методы из, моего, класса LPMetaPlusAPI.

1738136907896.png


Таким образом, любой плагин который использует/требует плагин PlayerPoints будет корректно работать, не требуя в зависимостях LPMetaPlus. Не волнуйтесь, ничего сложного здесь нет.

Все, что нам нужно, это лишь закинуть плагин FakePlayerPoints.jar в папку с плагинами и готово! С высокой долею вероятности все плагины для эмуляции будут работать стабильно.

Ссылка на фейковый плагин PlayerPoints для эмуляции:
You must be logged in to see this link.
Работа эмуляции на примере плагина You must be logged in to see this link. (он не поддерживает LPMetaPlus, но поддерживает PlayerPoints, благодаря эмуляции, он будет работать без каких-либо трудностей):
EconomyShopGUI.gif


Эмуляция не уменьшает производительность, даже наоборот, иногда моя реализация методов может работать быстрее и лучше, чем оригинальные.

Если возникнут проблемы с эмуляцией в какой-либо из плагинов, то можете написать мне об этом.
История выдачи/трат валюты
Намеренно было реализовано правильное форматирование логов для истории выдачи/трат через LPMetaPlus, чтобы наглядно было видно, где вы сами командой от LuckPerms изменили мета-данную игроку, а где через плагин LPMetaPlus.

history.jpg

Тихий режим для команд
Хотите, чтобы в консоли не было лишних сообщений о выдачи донатной валюты после покупки? Тогда просто добавьте в конце команды флаг -silent, к примеру, полная команда будет выглядеть так:
/meta give RUBIES 100 RE4ERKA -silent

silent.gif

Зависимости
LuckPerms
Исходный код
https://github.com/RE4ERKA/LPMetaPlus
Команды и права
Команды:
/lpmetaplus set
<тип> <количество> <ник> (-silent)
/lpmetaplus give <тип> <количество> <ник> (-silent)
/lpmetaplus take <тип> <количество> <ник> (-silent)
/lpmetaplus reset <тип> <ник> (-silent)
/lpmetaplus get <тип> <ник>
/lpmetaplus migrate <плагин> <тип базы-данных>
/lpmetaplus reload
/lpmetaplus help

Права:

lpmetaplus.command.set
lpmetaplus.command.give
lpmetaplus.command.take
lpmetaplus.command.reset
lpmetaplus.command.get
lpmetaplus.command.migrate
lpmetaplus.command.reload

Заполнители:
%meta_<type>%
%meta_<type>_formatted%
%meta_<type>_display_name%
%meta_<type>_symbol%
%meta_<type>_with_symbol%
Автор
RE4ERKA
Просмотры
1 625
Первый выпуск
Обновление
Оценка
5.00 звёзд 1 оценок

Другие ресурсы пользователя RE4ERKA

Поделиться ресурсом

Последние обновления

  1. Добавлена эмуляция плагина PlayerPoints.

    Благодаря Эмуляции, плагины, которые работают только через плагин PlayerPoints - станут...
  2. Добавлена миграция из плагина PlayerPoints!

    Добавлена команда для миграции из плагина PlayerPoints. Поддержирживает миграцию из базы-данных...

Последние рецензии

Отличный плагин, никаких проблем с плагинами, использующими PlayerPoints не было, так как есть эмуляция его. Советую к покупке
Назад
Сверху Снизу