- Поддерживаемые версии
- 1.16
- 1.17
- 1.18
- 1.19
- 1.20
- 1.21
- Ядра и Прокси
- Spigot
- Paper
- Минимальная версия Java
- 8
Если посмотреть на все доступные плагины на донатную валюту, то мы поймем, что наилучшей плагин найти сложно (я, лично, не нашел). Возможно, для обычного пользователя первый попавшийся и подойдет, но с части кодовой базы - он будет не лучшим, это связано либо с производительностью либо с багами/дюпами/отками.
И тогда я подумал, а почему бы не использовать для хранения донатной валюты плагин You must be logged in to see this link.. Да, этот плагин, обычно, используется для создания привилегий и выдачи разных прав игрокам, но в нем уже давно есть You must be logged in to see this link. которая идеально подходит для хранения донатной валюты и не только.
Вот плюсы которые я вынес:
Поддерживает выдачу мета-данной оффлайн-игрокам по нику. Все операции полностью выполняются асинхронно и не нагружают основной поток сервера. Поддерживает ядро Folia.
Конфигурация:
Форматирование чисел
Вы можете настроить форматирование чисел почти как-угодно, кастомизация достаточно обширна и позволит сделать форматирование похожим на то, как у вас это работает в вашем плагине на экономику.
Конфигурация:
Таким образом, любой плагин который использует/требует плагин 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, благодаря эмуляции, он будет работать без каких-либо трудностей):
Эмуляция не уменьшает производительность, даже наоборот, иногда моя реализация методов может работать быстрее и лучше, чем оригинальные.
Если возникнут проблемы с эмуляцией в какой-либо из плагинов, то можете написать мне об этом.
/meta give RUBIES 100 RE4ERKA -silent
И тогда я подумал, а почему бы не использовать для хранения донатной валюты плагин You must be logged in to see this link.. Да, этот плагин, обычно, используется для создания привилегий и выдачи разных прав игрокам, но в нем уже давно есть You must be logged in to see this link. которая идеально подходит для хранения донатной валюты и не только.
Вот плюсы которые я вынес:
- Надежность. LuckPerms зарекомендовал себя как самый лучший плагин на права, его используют не только на СНГ серверах, но и на серверах по всему миру - это один из самых надежных, если не самый надежный плагин.
- Интуитивность и удобство. Что нужно в первую очередь хранить и беречь администрации сервера? - Привилегии, ведь игроки буду очень не рады если, вдруг, они потеряют то, за что заплатили свои кровные и донатные валюты не будут сбрасываться после вайпа как и привилегии. Бережем базу данных с привилегиями и заодно с ней донатную валюту.
- Производительность. LuckPerms также имеет, может и, не лучшую производительность, но он точно достаточно стабилен, чтобы им пользовалось столько серверов. В случае донатных валют ситуация будет аналогична, с учетом, что я полностью учел проблемые места в плагине.
- Легковесность. Это всего лишь один небольшой плагин вместо одного среднего у которого будет своя база данных и которая будет потреблять так или иначе ресурсы сервера. Могло быть две, будет одна — меньше нагрузки и меньше заморачиваться.
- Поддержка API. Скорее является плюсом для разработчиков, чем для владельцев серверов. Если обычно другие плагины на донатную валюту, особенно, самописные не имеют своего API, то в нашем случае мы имеем, мою, более удобную реализацию API и, конечно, от LuckPerms как более продвинутую.
Поддерживает выдачу мета-данной оффлайн-игрокам по нику. Все операции полностью выполняются асинхронно и не нагружают основной поток сервера. Поддерживает ядро 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
- рубли
Форматирование чисел
Конфигурация:
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.
Таким образом, любой плагин который использует/требует плагин 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, благодаря эмуляции, он будет работать без каких-либо трудностей):
Эмуляция не уменьшает производительность, даже наоборот, иногда моя реализация методов может работать быстрее и лучше, чем оригинальные.
Если возникнут проблемы с эмуляцией в какой-либо из плагинов, то можете написать мне об этом.
История выдачи/трат валюты
Намеренно было реализовано правильное форматирование логов для истории выдачи/трат через LPMetaPlus, чтобы наглядно было видно, где вы сами командой от LuckPerms изменили мета-данную игроку, а где через плагин LPMetaPlus.
Тихий режим для команд
Хотите, чтобы в консоли не было лишних сообщений о выдачи донатной валюты после покупки? Тогда просто добавьте в конце команды флаг -silent, к примеру, полная команда будет выглядеть так:
/meta give RUBIES 100 RE4ERKA -silent
- Зависимости
- 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%