Flectone LogoFlectonePulse

Замена

Используется для замены триггеров на определённые значения

ping

tps

online

coords

stats

skin

item

url

image

spoiler

bold

italic

underline

obfuscated

strikethrough

Информация

Как сделать свою замену? Например :ip:, которое заменяется на айпи сервера

В message.yml добавь триггер в format.replacement.triggers

triggers:
  server_ip: "(?<!\\\\)(?<!\\S)(?i):ip:(?!\\S)"

В localizations → язык.yml добавь то, на что триггер заменится, в message.format.replacement.values

values:
  server_ip: "<fcolor:2><u><click:copy_to_clipboard:'flectone.net'>flectone.net</click></u>"

В permission.yml добавь право в message.format.replacement.values

values:
  server_ip:
    name: "flectonepulse.module.message.format.replacement.server_ip"
    type: "TRUE"

Перезагрузи FlectonePulse с помощью /flectonepulse reload и напиши в чат :ip:

(?<!\\\\)(?<!\\S) и (?!\\S) нужны для того, чтобы триггер срабатывал только отдельным словом и его можно было экранировать с помощью \\


Локализация

Путь localizations → язык.yml → message.format.replacement
replacement:
  spoiler_symbol: "█"
  values:
    smile: "<click:suggest_command:\":)\"><hover:show_text:\":)\">☺</hover></click>"
    big_smile: "<click:suggest_command:\":D\"><hover:show_text:\":D\">☻</hover></click>"
    sad: "<click:suggest_command:\":(\"><hover:show_text:\":(\">☹</hover></click>"
    ok_hand: "<click:suggest_command:\":ok:\"><hover:show_text:\":ok:\">🖒</hover></click>"
    thumbs_up: "<click:suggest_command:\":+1:\"><hover:show_text:\":+1:\">🖒</hover></click>"
    thumbs_down: "<click:suggest_command:\":-1:\"><hover:show_text:\":-1:\">🖓</hover></click>"
    cool_smile: "<click:suggest_command:\":cool:\"><hover:show_text:\":cool:\">😎</hover></click>"
    cool_glasses: "<click:suggest_command:\"B)\"><hover:show_text:\"B)\">😎</hover></click>"
    clown: "<click:suggest_command:\":clown:\"><hover:show_text:\":clown:\">🤡</hover></click>"
    heart: "<click:suggest_command:\"<3\"><hover:show_text:\"<3\">❤</hover></click>"
    laughing: "<click:suggest_command:\"XD\"><hover:show_text:\"XD\">😆</hover></click>"
    confused: "<click:suggest_command:\"%)\"><hover:show_text:\"%)\">😵</hover></click>"
    happy: "<click:suggest_command:\"=D\"><hover:show_text:\"=D\">😃</hover></click>"
    angry: "<click:suggest_command:\">:(\"><hover:show_text:\">:(\">😡</hover></click>"
    ascii_idk: "<click:suggest_command:\":idk:\"><hover:show_text:\":idk:\"\\_(ツ)_/¯</hover></click>"
    ascii_angry: "<click:suggest_command:\":angry:\"><hover:show_text:\":angry:\">(╯°□°)╯︵ ┻━┻</hover></click>"
    ascii_happy: "<click:suggest_command:\":happy:\"><hover:show_text:\":happy:\">\(^O^)/</hover></click>"
    ping: "<fcolor:2><value>"
    tps: "<fcolor:2><value>"
    online: "<fcolor:2><value>"
    coords: "<fcolor:2><x> <y> <z>"
    stats: "<color:#ff7171><hp>♥</color> <color:#3de0d8><armor>🛡 <color:#e33059><attack>🗡 <color:#4eff52><exp>⏺ <color:#f0a01f><food>🍖"
    skin: "<click:open_url:\"<message_1>\"><hover:show_text:\"<fcolor:2><pixels>\"><fcolor:2><u>👨 Skin</u></hover></click>"
    item: "<fcolor:2>[<message_1>]"
    url: "<click:open_url:\"<message_1>\"><hover:show_text:\"<fcolor:2>Открыть ссылку <br><u><message_1>\"><fcolor:2><u>🗗 Ссылка</u></hover></click>"
    image: "<click:open_url:\"<message_1>\"><hover:show_text:\"<fcolor:2><pixels>\"><fcolor:2><u>🖃 Image</u></hover></click>"
    spoiler: "<hover:show_text:\"<fcolor:2><message_1>\"><fcolor:2><symbols></hover>"
    bold: "<b><message_1></b>"
    italic: "<i><message_1></i>"
    underline: "<u><message_1></u>"
    obfuscated: "<obf><message_1></obf>"
    strikethrough: "<st><message_1></st>"

spoiler_symbol

Символ, который будет заменять каждую букву слов у spoiler

values

Список сообщений, где ключом является название, а значением, что будет показано вместо триггера

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

ПлейсхолдерГде используется
<value>ping, tps, online – само значение
<x>, <y>, <z>coords – координаты игрока
<hp>, <armor>, <attack>, <exp>, <food>stats – статистика игрока
<pixels>skin и image – само изображение, которое собрано из символов
<message_1>Текст, который был найден по триггеру (ссылка, название предмета и т.д.)
<symbols>spoiler – скрытый текст, где каждая буква заменена на spoiler_symbol

Настройка

Путь message.yml → format.replacement
replacement:
  enable: true
  triggers:
    smile: "(?<!\\\\)(?<!\\S):-?\\)(?!\\S)"
    big_smile: "(?<!\\\\)(?<!\\S):-?D(?!\\S)"
    sad: "(?<!\\\\)(?<!\\S):-?\\((?!\\S)"
    ok_hand: "(?<!\\\\)(?<!\\S)(?i):ok:(?!\\S)"
    thumbs_up: "(?<!\\\\)(?<!\\S):\\+1:(?!\\S)"
    thumbs_down: "(?<!\\\\)(?<!\\S):-1:(?!\\S)"
    cool_smile: "(?<!\\\\)(?<!\\S)(?i):cool:(?!\\S)"
    cool_glasses: "(?<!\\\\)(?<!\\S)B-?\\)(?!\\S)"
    clown: "(?<!\\\\)(?<!\\S)(?i):clown:(?!\\S)"
    heart: "(?<!\\\\)(?<!\\S)<3(?!\\S)"
    laughing: "(?<!\\\\)(?<!\\S)(?i)xd(?!\\S)"
    confused: "(?<!\\\\)(?<!\\S)%-?\\)(?!\\S)"
    happy: "(?<!\\\\)(?<!\\S)=D(?!\\S)"
    angry: "(?<!\\\\)(?<!\\S)>:-?\\((?!\\S)"
    ascii_idk: "(?<!\\\\)(?<!\\S)(?i):idk:(?!\\S)"
    ascii_angry: "(?<!\\\\)(?<!\\S)(?i):angry:(?!\\S)"
    ascii_happy: "(?<!\\\\)(?<!\\S)(?i):happy:(?!\\S)"
    ping: "(?<!\\\\)(?<!\\S)%ping%(?!\\S)"
    tps: "(?<!\\\\)(?<!\\S)%tps%(?!\\S)"
    online: "(?<!\\\\)(?<!\\S)%online%(?!\\S)"
    coords: "(?<!\\\\)(?<!\\S)%coords%(?!\\S)"
    stats: "(?<!\\\\)(?<!\\S)%stats%(?!\\S)"
    skin: "(?<!\\\\)(?<!\\S)%skin%(?!\\S)"
    item: "(?<!\\\\)(?<!\\S)%item%(?!\\S)"
    image: "(?<!\\\\{2,})(?<=\\s|^)((?i:https?)://(?:[a-zA-Z0-9-@]{1,63}\\.)*(?i:imgur\\.com|discordapp\\.net|cdn\\.discordapp\\.com)/[\\w\\-./?=&%!#$'()*+,;:=~@]*\\.(?:jpg|jpeg|png|gif|webp|bmp))(?!\\S)"
    url: "(?<!\\\\{2,})(?<=\\s|^)((?i:https?|ftp)://(?:[\\p{L}a-zA-Z0-9-@]{1,63}\\.)+[\\p{L}a-zA-Z]{2,6}(?::\\d{1,5})?(?:/[\\w\\-./?=&%!#$'()*+,;:=~@]*)?)(?!\\S)"
    spoiler: "(?<!\\S)\\|\\|([^\\|\\|\\n]+)\\|\\|(?!\\S)"
    bold: "(?<!\\S)\\*\\*([^\\*\\*\\n]+)\\*\\*(?!\\S)"
    italic: "(?<!\\S)\\*([^\\*\\n]+)\\*(?!\\S)"
    underline: "(?<!\\S)__([^__\\n]+)__(?!\\S)"
    obfuscated: "(?<!\\S)\\?\\?([^\\?\\?\\n]+)\\?\\?(?!\\S)"
    strikethrough: "(?<!\\S)~~([^~~\\n]+)~~(?!\\S)"

enable

Включает или выключает работоспособность модуля

triggers

Список всех доступных триггеров, где ключом является название, а значением сам trigger в формате регулярного выражения

Информация

Замену можно вставить и вручную в любое сообщение с помощью тега <replacement:название>, например <replacement:ping> или <replacement:tps>. Для url, image и spoiler нужно указать второй аргумент, например <replacement:url:'https://flectone.net'>

Предупреждение

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


Права

Путь permission.yml → message.format.replacement
replacement:
  name: "flectonepulse.module.message.format.replacement"
  type: "TRUE"
  values:
    smile:
      name: "flectonepulse.module.message.format.replacement.smile"
      type: "TRUE"
    big_smile:
      name: "flectonepulse.module.message.format.replacement.big_smile"
      type: "TRUE"
    sad:
      name: "flectonepulse.module.message.format.replacement.sad"
      type: "TRUE"
    ok_hand:
      name: "flectonepulse.module.message.format.replacement.ok_hand"
      type: "TRUE"
    thumbs_up:
      name: "flectonepulse.module.message.format.replacement.thumbs_up"
      type: "TRUE"
    thumbs_down:
      name: "flectonepulse.module.message.format.replacement.thumbs_down"
      type: "TRUE"
    cool_smile:
      name: "flectonepulse.module.message.format.replacement.cool_smile"
      type: "TRUE"
    cool_glasses:
      name: "flectonepulse.module.message.format.replacement.cool_glasses"
      type: "TRUE"
    clown:
      name: "flectonepulse.module.message.format.replacement.clown"
      type: "TRUE"
    heart:
      name: "flectonepulse.module.message.format.replacement.heart"
      type: "TRUE"
    laughing:
      name: "flectonepulse.module.message.format.replacement.laughing"
      type: "TRUE"
    confused:
      name: "flectonepulse.module.message.format.replacement.confused"
      type: "TRUE"
    happy:
      name: "flectonepulse.module.message.format.replacement.happy"
      type: "TRUE"
    angry:
      name: "flectonepulse.module.message.format.replacement.angry"
      type: "TRUE"
    ascii_idk:
      name: "flectonepulse.module.message.format.replacement.ascii_idk"
      type: "TRUE"
    ascii_angry:
      name: "flectonepulse.module.message.format.replacement.ascii_angry"
      type: "TRUE"
    ascii_happy:
      name: "flectonepulse.module.message.format.replacement.ascii_happy"
      type: "TRUE"
    ping:
      name: "flectonepulse.module.message.format.replacement.ping"
      type: "TRUE"
    tps:
      name: "flectonepulse.module.message.format.replacement.tps"
      type: "TRUE"
    online:
      name: "flectonepulse.module.message.format.replacement.online"
      type: "TRUE"
    coords:
      name: "flectonepulse.module.message.format.replacement.coords"
      type: "TRUE"
    stats:
      name: "flectonepulse.module.message.format.replacement.stats"
      type: "TRUE"
    skin:
      name: "flectonepulse.module.message.format.replacement.skin"
      type: "TRUE"
    item:
      name: "flectonepulse.module.message.format.replacement.item"
      type: "TRUE"
    url:
      name: "flectonepulse.module.message.format.replacement.url"
      type: "TRUE"
    image:
      name: "flectonepulse.module.message.format.replacement.image"
      type: "TRUE"
    spoiler:
      name: "flectonepulse.module.message.format.replacement.spoiler"
      type: "TRUE"
    bold:
      name: "flectonepulse.module.message.format.replacement.bold"
      type: "TRUE"
    italic:
      name: "flectonepulse.module.message.format.replacement.italic"
      type: "TRUE"
    underline:
      name: "flectonepulse.module.message.format.replacement.underline"
      type: "TRUE"
    obfuscated:
      name: "flectonepulse.module.message.format.replacement.obfuscated"
      type: "TRUE"
    strikethrough:
      name: "flectonepulse.module.message.format.replacement.strikethrough"
      type: "TRUE"

name

Название права

type

Вид права

ВидОбъяснение
TRUEДоступно для любого игрока
FALSEНикому не доступно, должно быть выдано отдельно (например с помощью LuckPerms)
OPДоступно для операторов сервера
NOT_OPДоступно для НЕ операторов сервера

values

Список замен с правами

Последнее изменение 14 августа 2026 г.
Редактировать на GitHub

На этой странице

Авторы страницы