Everything else
Messages and translations
Every line the plugin sends lives in messages/, one file per part of the plugin.
plugins/ChorusCore/
palette.yml
messages/
core.yml refusals, /chorus, and the words other lines borrow
chat.yml /msg /reply /ignore /mail /socialspy
economy.yml /balance /pay /baltop /eco /paylog
homes.yml /home /sethome /delhome /homes /renamehome /homeicon
items.yml the item tools, and the inventory backups
kits.yml /kit /kits /kitedit
menus.yml every word that appears on a screen
players.yml /afk /seen /playtime /whois /list /nick /ptime /pweather
shops.yml chest shops, sign shops, /sell and /worth
spawn.yml /spawn /setspawn
staff.yml /tp /vanish /gamemode /freeze /sudo /lockdown and the rest
teleport.yml /tpa /tpahere /tpaccept /tpdeny /back /tptoggle
utility.yml /heal /feed /fly /god /ping /fix /trash and the portable ones
warps.yml /warp /warps /setwarp /delwarp /warpinfo /warpset
world.yml /world /time /weather /spawnmob /sweep /locateThey are read as one set of keys, so which file a line sits in is a question for whoever is
editing them. A key is a key: home.created means the same thing wherever it is written.
957 lines in English, across those fifteen files. There are no hardcoded strings in the code, which is what makes a full translation possible.
# messages/homes.yml
home:
created: '%prefix%<c:muted>Home <white>%home%</white> saved.'
deleted: '%prefix%<c:muted>Home <white>%home%</white> deleted.'Colours#
Three ways to write them, and all three work in the same line:
| MiniMessage | <gold>, <gradient:#a06bff:#e0c3fc> |
| The old codes | &6, &l |
| Palette names | <c:accent>, closed with </c> — see Colours |
Write && for an & that is not a colour.
Both hex spellings work: &#a1b2c3, and &x&a&1&b&2&c&3 the way the old proxies wrote it. A
colour code clears the formatting before it, exactly as it does in vanilla, so &l&cText
comes out red and not bold.
The full tag list is in the MiniMessage documentation. The ones that come up:
| Tag | Effect |
|---|---|
<red> <gold> <gray> <white> <dark_gray> |
The sixteen named colours |
<#a1b2c3> |
Any hex colour |
<gradient:#a06bff:#e0c3fc> |
A gradient across the text inside it |
<bold> <italic> <underlined> |
Formatting, closed with </bold> |
<newline> |
A line break inside one message |
<hover:show_text:'...'> |
A tooltip |
<click:run_command:'/home'> |
Clickable text |
Text a player writes#
Everything above is about lines you write, in a config file, and those take all of MiniMessage. Text a player types in game does not: it takes colours and formatting, and nothing else.
That applies to /nick, /itemname, /lore, /editsign, and name: and lore: in
/give. For a player who has the permission to use formatting at all, what works is:
| Colour codes | &c, &#ff5555, &x&f&f&5&5&5&5 |
| Colours | <red>, <#ff5555>, <color:...> |
| Formatting | <bold>, <italic>, <underlined>, <strikethrough>, <obfuscated>, and &l &o &n &m &k |
| Gradients | <gradient:...>, <rainbow>, <transition:...> |
| Reset | <reset>, &r |
Anything else — <click:...>, <hover:...>, <insert:...>, <font:...>, <selector:...> —
is not read, and stays in the text exactly as it was typed.
Why it is drawn there: a click tag on a sign runs its command with the permissions of whoever clicks it. Without this rule, a sign a player wrote could run a command for the next admin to walk past.
The prefix#
%prefix% is the prefix line at the top of messages/core.yml.
Any file in the folder may open with a prefix of its own, and %prefix% then means that one
in that file and nowhere else:
# messages/shops.yml
prefix: '<c:accent><bold>Shop</bold></c> <c:muted>| 'That is how one module can announce itself differently without every one of its lines spelling the difference out.
Silencing a line#
Leave it empty and it is not sent at all:
cooldown:
wait: ''That is the way to take a line out. Deleting the key gives you the shipped English one back, since a missing key falls through to the default.
Placeholders#
Each message has its own, written %like_this%. The shipped files show which ones a line
takes; a placeholder that does not belong to that message is left as written.
Values are put in as text, never as formatting. A player whose home is called <red> sees
those five characters, not a colour — and the same goes for &-codes. Nobody can write their
way into looking like somebody else, or into a clickable link.
Item names and lore#
Item names and lore are not quietly italicised the way the game does it by default, and a line of lore that names no colour is drawn grey rather than the purple the game falls back to.
Neither is written into your file. What you type is stored exactly as you typed it, the styling happens when the line is drawn, and an editor screen shows you the plain text back.
This applies to /itemname and /lore too, which take either format from anyone holding
chorus.items.format.
A note on bold#
Bold is for a heading, not for a value. A name that comes out of the data — a player, a home, a warp, an item — is written in white against grey rather than in bold, because a bold word in the middle of a sentence reads as shouting. The shipped messages follow that; yours do not have to.
Changing a message#
- Edit the file in
messages/that holds it. /chorus reload.
Keep the key. Change the value. A key that is not one the plugin knows is ignored.
Changing one line for one command only, rather than everywhere it is used, is a messages
block in that command's own config — see Per-command rules.
Translations#
Other languages are folders inside messages/:
messages/
es/
core.yml
homes.yml
...A translation only writes down the lines it translates, in as many or as few files as it likes. Anything it leaves out comes from English, so a translation is never out of date, only incomplete. See Languages.
Coming from an older version#
A messages.yml, menus.yml or messages_es.yml left in the plugin folder is still read, on
top of the folder, and its lines win. Nothing edited on an older version is lost.
The console says so once at startup. Move what you changed into the folder and delete the old file when you are ready; the plugin does not need it gone.
A prefix set in an old messages.yml is used everywhere, not only for the lines that file
holds.
