Skip to content

Шаблоны

Что за "Шаблоны" в контексте этого плагина?

Шаблон — это специальный конфигурационный файл, позволяющий настраивать отдельные чаты отдельно от основного файла конфигурации.
Вы можете использовать .yml или .json для шаблонов. Второй вариант эксперементален. Если вы используете его, то вы можете встретить баги.

Изменение существующих шаблонов

Для модификации, мы можем использовать любой файл. В этом примере мы используем 1 из внутренних — global.yml

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> сообщением игрока.
Для примера мы можем попробовать поменять это на что-то типо этого

yml
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 ...

Мы изменили порядок, и внутри игры мы наблюдаем это: IMAGE - BEFORE RELOAD Почему? Потому что вам требуется перезагрузить плагин перед тем как увидеть изменения. Мы можем для этого использовать /lc reload (требует права l-chat.reload)
И после, мы видим это! IMAGE - RELOAD COMMAND AND NEW GLOBAL MESSAGE

Теперь, мы изменим чёрный список для этого же чата.

yml
# ... 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.
Нам нужно сделать это:

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", мы увидим IMAGE - Not enough rights В то же время, если мы напишем в глобальном чате тот же текст:
IMAGE - Hover text Но, если мы попробуем использовать <obf>... IMAGE - obf not work Теперь давайте вернём всё обратно.:

yml
# ... 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/.json формате
  • Добавим его в конфиг плагина.

YML шаблон чата

В первую очередь, нам нужно знать структуру 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

yml
#... other sections ...
chats:
  my-chat:
    template: "example-chat.yml"
    prefix: ["#", "_", "--"]
    radius: -1

Теперь, разложим всё по полочкам.

  • chats — Корень для всех зарегистрированых чатов. Уберёте его - плагин бадабум и капут (плагин сломается, "бадабум и капут" - фишка перевода. Не переводи её а придумай своё или оставь "плагин сломается").
  • my-chat — Имя чата внутри плагина. Игроки его не смогут увидеть никак.
  • template — Путь к шаблону вашего чата.
  • prefix — Префикс для сообщения, который игрок должен будет написать чтобы написать в этот чат. Поддерживает псевдонимы
  • radius — Радиус в блоках, игроки что в радиусе увидят сообщение. Если radius установлен на -1 — все на сервере увидят его.

Теперь перезагрузим плагин. IMAGE - 6 chatsв моём случае тут 6 чатов, не 4, потому что я уже .json эксперимент и использую внутренние чаты

И теперь напишем в наш чат IMAGE - my chat 1 Но что насчёт большего стиля? Давайте изменим example-chat.yml

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 внутри них будет красным, имя игрока будет золотым а -> будет синим. Давайте попробуем это. Перезагрузите плагин и напишите сообщение IMAGE - my chat 2

Вы можете изменить чёрный список как хотите. Тут пример.

yml
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

JSON шаблон чата

Как первый шаг, нам нужно включить поддержку JSON чатов config.yml

yml
options:
  #...
  experiments:
    jsonForChats: true # <--- ЗДЕСЬ. Если у вас тут стоит false - ставьте true.
    databasesForMute: false

# ... Other sections ...

Теперь, мы можем начать делать JSON шаблоны.
В первую очередь, нам нужно знать структуру 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 - чат будет использовать свой собственный

Теперь, нам нужно зарегистрировать его внутри config.yml

yml
#... other sections ...
chats:
  my-chat:
    template: "example-chat.json"
    prefix: ["#", "_", "--"]
    radius: -1

Теперь, разложим всё по полочкам.

  • chats — Корень для всех зарегистрированых чатов. Уберёте его - плагин бадабум и капут (плагин сломается, "бадабум и капут" - фишка перевода. Не переводи её а придумай своё или оставь "плагин сломается").
  • my-chat — Имя чата внутри плагина. Игроки его не смогут увидеть никак.
  • template — Путь к шаблону вашего чата.
  • prefix — Префикс для сообщения, который игрок должен будет написать чтобы написать в этот чат. Поддерживает псевдонимы
  • radius — Радиус в блоках, игроки что в радиусе увидят сообщение. Если radius установлен на -1 — все на сервере увидят его.

Теперь, перезагрузим плагин. IMAGE - 6 chatsВ моём случае тут 6 чатов, так как я использую внутренние чаты

И теперь мы попробуем написать в него. IMAGE - my chat 1 Ну а теперь прибавим стиля. Давайте изменим example-chat.json

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 внутри них будет красным, имя игрока будет золотым а -> будет синим. Давайте попробуем это. Перезагрузите плагин и напишите сообщение IMAGE - my chat 2

Вы можете изменить чёрный список как хотите. Тут пример.

json
  "blacklist": {
    "global": false,
    "config": {
      "minimessage": true,
      "gradients": false,
      "tags": [
        "newline", "obf", "b", "i"
      ]
    }
  }

Выпущено по лицензии MIT. Создано LazyCato0o. Создано с помощью VitePress