Replacement
Used to replace triggers with specific values












How to make your own replacement? For example :ip:, which is replaced with the server address
In message.yml add the trigger to format.replacement.triggers
triggers:
server_ip: "(?<!\\\\)(?<!\\S)(?i):ip:(?!\\S)"In localizations → language.yml add what the trigger is replaced with to message.format.replacement.values
values:
server_ip: "<fcolor:2><u><click:copy_to_clipboard:'flectone.net'>flectone.net</click></u>"In permission.yml add a permission to message.format.replacement.values
values:
server_ip:
name: "flectonepulse.module.message.format.replacement.server_ip"
type: "TRUE"Reload FlectonePulse with /flectonepulse reload and write :ip: in chat
(?<!\\\\)(?<!\\S) and (?!\\S) are needed so that the trigger only works as a separate word and can be escaped with \\
Localization
Pathlocalizations → language.yml → message.format.replacement
replacement:
spoiler_symbol: "-"
values:
ping: "<fcolor:2><value>"
tps: "<fcolor:2><value>"
online: "<fcolor:2><value>"
coords: "<fcolor:2><x> <y> <z>"
stats: "<color:#ff7171><hp>H</color> <color:#3de0d8><armor>A <color:#e33059><attack>D <color:#4eff52><exp>E <color:#f0a01f><food>F"
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>Open url <br><u><message_1>\"><fcolor:2><u>Url</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
The symbol that will replace each letter of the words in a spoiler
values
A list of messages where the key is the name and the value is what will be shown instead of the trigger
Inside the values you can use placeholders that depend on the replacement
| Placeholder | Where it is used |
|---|---|
<value> | ping, tps, online – the value itself |
<x>, <y>, <z> | coords – the player's coordinates |
<hp>, <armor>, <attack>, <exp>, <food> | stats – the player's statistics |
<pixels> | skin and image – the image itself, built out of symbols |
<message_1> | The text found by the trigger (a link, an item name and so on) |
<symbols> | spoiler – the hidden text where every letter is replaced with spoiler_symbol |
Setting
Pathmessage.yml → format.replacement
replacement:
enable: true
triggers:
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
Enables or disables the functionality of the module
triggers
A replacement can also be inserted manually into any message with the <replacement:name> tag, for example <replacement:ping> or <replacement:tps>. For url, image and spoiler a second argument is required, for example <replacement:url:'https://flectone.net'>
A list of all available triggers, where the key is the name and the value is the trigger itself in regular expression format
If you add a new trigger, you must also add it to the localization file to define what it will be replaced with.
Permissions
Pathpermission.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
Permission name
type
Permission type
| Type | Explanation |
|---|---|
TRUE | Available to any player |
FALSE | Available to no one, must be granted separately (e.g., using LuckPerms) |
OP | Available to server operators |
NOT_OP | Available to NON-operators of the server |
values
List of replacements with permissions