Messages & Languages¶
All player-facing text lives in plugins/AdvancedDuels/langs/. There is no messages.yml.
Selecting a language¶
lang: lang_EN
Available files: lang_EN, lang_DE, lang_ES, lang_FR, lang_PL, lang_RU, lang_CZ. Restart (or /duels reload) after changing.
If your selected file is outdated compared to the jar, the console warns you — and any keys you are missing are merged in automatically with a backup, so updating never deletes your edits.
Editing messages¶
- Open
plugins/AdvancedDuels/langs/lang_<XX>.ymland edit values. Keys must stay exactly as they are. - Placeholders like
%player%,%kit%,%arena%,%bet_amount%are replaced at runtime — never delete or rename them. {PREFIX}is defined once at the top underSTRINGS:and reused everywhere. Change it in one place to rebrand every message.- Colors use
&codes by default. Setuse-minimessages: trueinconfig.ymlto use MiniMessage formatting instead.
Never rename keys or placeholders
Renaming a key (e.g. spectate: → watch:) or a placeholder (e.g. %kit% → %set%) silently breaks that message — the plugin logs Failed to load message and sends nothing for it.
Adding a new language¶
- Copy
langs/lang_EN.ymltolangs/lang_MY.yml. - Translate the values only.
- Set
lang: lang_MYinconfig.ymland restart.
MiniMessage¶
With use-minimessages: true, messages support MiniMessage tags (<red>, <bold>, gradients, ...). The lang_minimessages.yml file shipped in the jar shows the same messages in MiniMessage style as a reference.
PlaceholderAPI fallback texts¶
These five small texts at the bottom of config.yml are used when data is unavailable:
| Key | Shown when |
|---|---|
user-not-found |
Placeholder requested for a player with no loaded data |
not-in-match |
Placeholder needs a match but the player has none (none) |
duration-format |
Match duration format (mm:ss) |
no-kit |
Duel uses own inventory instead of a kit (none) |
no-opponent |
Opponent placeholder with no opponent (No opponent) |