Шаблоны
Что за "Шаблоны" в контексте этого плагина?
Шаблон — это специальный конфигурационный файл, позволяющий настраивать отдельные чаты отдельно от основного файла конфигурации.
Вы можете использовать .yml или .json для шаблонов. Второй вариант эксперементален. Если вы используете его, то вы можете встретить баги.
Изменение существующих шаблонов
Для модификации, мы можем использовать любой файл. В этом примере мы используем 1 из внутренних — global.yml
config:
# <prefix> - Prefix from LuckPerms, <suffix> - same, but with suffix
# <nickname> - player nickname. <m> - message
prompt: "<dark_gray>[<green>+</green>]</dark_gray> <prefix><reset><gold><nickname></gold><suffix> <gray> >>> <m><reset>"
cooldown: 1 # Cooldown in seconds.
blacklist:
global: true #if set to false, plugin will read blacklist from this place. Else, it will read from config.yml
# config:
# minimessage: false # Disables able for players for use minimessage. By default, set to false or Minimessage can be used.
# gradients: false # Disables able for players for use gradients. By default, disabled.
# tags: # Disables custom (and not only) tags.
# - newline
# - obfКак вы можете поглядеть, здесь у нас config и blacklist. Каждый в своём порядке.
Внутри config мы можем найти prompt, который есть пример который заполняется при помощи замены на значения. Внутри он использует некоторые префиксы - <prefix>, <suffix> (оба из LuckPerms), <nickname> с ником игрока и <m> сообщением игрока.
Для примера мы можем попробовать поменять это на что-то типо этого
config:
# <prefix> - Prefix from LuckPerms, <suffix> - same, but with suffix
# <nickname> - player nickname. <m> - message
prompt: "<dark_gray>[<green>GLOBAL</green>]</dark_gray> >>> <m><reset> - <prefix><reset><gold><nickname></gold><suffix>"
cooldown: 1 # Cooldown in seconds.
# ... other sections ...Мы изменили порядок, и внутри игры мы наблюдаем это:
Почему? Потому что вам требуется перезагрузить плагин перед тем как увидеть изменения. Мы можем для этого использовать /lc reload (требует права l-chat.reload)
И после, мы видим это! 
Теперь, мы изменим чёрный список для этого же чата.
# ... other sections ...
blacklist:
global: true #if set to false, plugin will read blacklist from this place. Else, it will read from config.yml
# config:
# minimessage: false # Disables able for players for use minimessage. By default, set to false or Minimessage can be used.
# gradients: false # Disables able for players for use gradients. By default, disabled.
# tags: # Disables custom (and not only) tags.
# - newline
# - obfКак мы можем увидеть, секция config закомментирована и тут мы используем, что определён в config.yml.
Нам нужно сделать это:
# ... other sections ...
blacklist:
global: false #if set to false, plugin will read blacklist from this place. Else, it will read from config.yml
config:
minimessage: false # Disables able for players for use minimessage. By default, set to false or Minimessage can be used.
gradients: false # Disables able for players for use gradients. By default, disabled.
tags: # Disables custom (and not only) tags.
- newline
- obfТеперь, перезагрузим плагин и проверим работу hover тега в глобальном и, для примера, локальном.
Когда мы попытаемся написать в локальный чат этот тег без разрешения "l-chat.full-format-use", мы увидим
В то же время, если мы напишем в глобальном чате тот же текст:
Но, если мы попробуем использовать <obf>...
Теперь давайте вернём всё обратно.:
# ... other sections ...
blacklist:
global: true #if set to false, plugin will read blacklist from this place. Else, it will read from config.yml
# config:
# minimessage: false # Disables able for players for use minimessage. By default, set to false or Minimessage can be used.
# gradients: false # Disables able for players for use gradients. By default, disabled.
# tags: # Disables custom (and not only) tags.
# - newline
# - obfСоздаём свой собственный шаблон чата
В этой секции мы...
YML шаблон чата
В первую очередь, нам нужно знать структуру YML шаблона для чата.
#example-chat.yml
config:
prompt: "[My chat] <prefix><nickname><suffix> -> <m><reset>"
cooldown: 1
blacklist:
global: trueЭто минимальный шаблон чата. Давайте разберёмся в нём.
config— Корень базового чата. В него включается пример сообщения и время "перезарядки" чата.prompt— Текст, который будет использован как шаблон для сообщения.cooldown— Время для перезарядки чата. Если не указано - используется время изconfig.yml
blacklist— Корень чёрного списка для тегов (и не только) у чатаglobal— Логическое значение, которое говорит плагину "Йо, я использую глобальный чёрный списоок а не свой". Если поставлено на true - чат будет использовать чёрный список изconfig.yml. Если установлено на false - чат будет использовать свой собственный
Теперь нам надо зарегистрировать его внутри config.yml
#... other sections ...
chats:
my-chat:
template: "example-chat.yml"
prefix: ["#", "_", "--"]
radius: -1Теперь, разложим всё по полочкам.
chats— Корень для всех зарегистрированых чатов. Уберёте его - плагин бадабум и капут (плагин сломается, "бадабум и капут" - фишка перевода. Не переводи её а придумай своё или оставь "плагин сломается").my-chat— Имя чата внутри плагина. Игроки его не смогут увидеть никак.template— Путь к шаблону вашего чата.prefix— Префикс для сообщения, который игрок должен будет написать чтобы написать в этот чат. Поддерживает псевдонимыradius— Радиус в блоках, игроки что в радиусе увидят сообщение. Еслиradiusустановлен на -1 — все на сервере увидят его.
Теперь перезагрузим плагин.
в моём случае тут 6 чатов, не 4, потому что я уже .json эксперимент и использую внутренние чаты
И теперь напишем в наш чат
Но что насчёт большего стиля? Давайте изменим example-chat.yml
config:
prompt: "<gray>[<red>My chat</red>]</gray> <prefix><gold><nickname></gold><suffix> <blue>-></blue> <m><reset>"
cooldown: 1
blacklist:
global: trueТеперь, пример "<gray>[<red>My chat</red>]</gray> <prefix><gold><nickname></gold><suffix> <blue>-></blue> <m><reset>". Это значит что [] в начале будет серым, My chat внутри них будет красным, имя игрока будет золотым а -> будет синим. Давайте попробуем это. Перезагрузите плагин и напишите сообщение 
Вы можете изменить чёрный список как хотите. Тут пример.
blacklist:
global: false #if set to false, plugin will read blacklist from this place. Else, it will read from config.yml
config:
minimessage: false # Disables able for players for use minimessage. By default, set to false or Minimessage can be used.
gradients: false # Disables able for players for use gradients. By default, disabled.
tags: # Disables custom (and not only) tags.
- newline
- obfJSON шаблон чата
Как первый шаг, нам нужно включить поддержку JSON чатов config.yml
options:
#...
experiments:
jsonForChats: true # <--- ЗДЕСЬ. Если у вас тут стоит false - ставьте true.
databasesForMute: false
# ... Other sections ...Теперь, мы можем начать делать JSON шаблоны.
В первую очередь, нам нужно знать структуру Json шаблона для чата.
{
"config": {
"prompt": "[My chat] <prefix><nickname><suffix> -> <m><reset>",
"cooldown": 1
},
"blacklist": {
"global": true
}
}Это минимальный шаблон чата. Давайте разберёмся в нём.
- "config" — Корень базового чата. В него включается пример сообщения и время "перезарядки" чата.
- "prompt" — Текст, который будет использован как шаблон для сообщения.
- "cooldown" — Время для перезарядки чата. Если не указано - используется время из
config.yml
- "blacklist" — Корень чёрного списка для тегов (и не только) у чата
- "global" — Логическое значение, которое говорит плагину "Йо, я использую глобальный чёрный списоок а не свой". Если поставлено на true - чат будет использовать чёрный список из
config.yml. Если установлено на false - чат будет использовать свой собственный
- "global" — Логическое значение, которое говорит плагину "Йо, я использую глобальный чёрный списоок а не свой". Если поставлено на true - чат будет использовать чёрный список из
Теперь, нам нужно зарегистрировать его внутри config.yml
#... other sections ...
chats:
my-chat:
template: "example-chat.json"
prefix: ["#", "_", "--"]
radius: -1Теперь, разложим всё по полочкам.
chats— Корень для всех зарегистрированых чатов. Уберёте его - плагин бадабум и капут (плагин сломается, "бадабум и капут" - фишка перевода. Не переводи её а придумай своё или оставь "плагин сломается").my-chat— Имя чата внутри плагина. Игроки его не смогут увидеть никак.template— Путь к шаблону вашего чата.prefix— Префикс для сообщения, который игрок должен будет написать чтобы написать в этот чат. Поддерживает псевдонимыradius— Радиус в блоках, игроки что в радиусе увидят сообщение. Еслиradiusустановлен на -1 — все на сервере увидят его.
Теперь, перезагрузим плагин.
В моём случае тут 6 чатов, так как я использую внутренние чаты
И теперь мы попробуем написать в него.
Ну а теперь прибавим стиля. Давайте изменим example-chat.json
{
"config": {
"prompt": "<gray>[<red>My chat</red>]</gray> <prefix><gold><nickname></gold><suffix> <blue>-></blue> <m><reset>",
"cooldown": 1
},
"blacklist": {
"global": true
}
}Теперь, пример "<gray>[<red>My chat</red>]</gray> <prefix><gold><nickname></gold><suffix> <blue>-></blue> <m><reset>". Это значит что [] в начале будет серым, My chat внутри них будет красным, имя игрока будет золотым а -> будет синим. Давайте попробуем это. Перезагрузите плагин и напишите сообщение 
Вы можете изменить чёрный список как хотите. Тут пример.
"blacklist": {
"global": false,
"config": {
"minimessage": true,
"gradients": false,
"tags": [
"newline", "obf", "b", "i"
]
}
}