Class Messages
java.lang.Object
dev.ua.theroer.magicutils.lang.Messages
Global entry point for resolving and sending localized messages.
Three flavours of API:
getRaw(String),get(String),send(Object, String)— direct methods covering 95% of call sites. Accept any sender-like object (Audience / Player / null) and any placeholder shape (Map / varargs key-value pairs / positional args).query(String)— fluent builder for the rare cases that need explicit language pinning, manual escape control, or are otherwise too complex for one call.view(String)— same surface but resolved against a named per-plugin scope.
Rendering rules:
getRaw(String)returns a plain string. Placeholders are substituted but their values are not tag-escaped, so a translation containing<red>{name}</red>will interpret{name}as MiniMessage text on later parsing. Use this when callers control the placeholder values.get(String)produces aComponentvia MiniMessage and always escapes placeholder values, so untrusted user input cannot inject tags.send(Object, String)resolves likeget(String)and dispatches the component to the audience, in the audience's preferred language.
Plugin-specific overrides:
isOverride(String, String)— true when the user has configured a non-default value.resolveOverride(Object, String, String, Object...)— pick the override if one exists, else fall back to the localized translation.
-
Method Summary
Modifier and TypeMethodDescriptionstatic Stringstatic booleanstatic net.kyori.adventure.text.ComponentResolves a key in the recipient's preferred language and parses as MiniMessage.static net.kyori.adventure.text.ComponentResolves a key with placeholders (values escaped before parsing) and returns an adventure component.static net.kyori.adventure.text.ComponentResolves a key and parses the result as MiniMessage.static Stringstatic LanguageManagerstatic LanguageManagergetLanguageManager(String scope) static StringResolves a key in the recipient's preferred language.static StringResolves a key with placeholder substitution.static StringResolves a key against the default language manager.static booleanisOverride(@Nullable String configured, String key) Returns true whenconfiguredrepresents a real override — i.e.static MessageQueryStarts a fluent message resolution against the default manager.static voidregister(String scope, LanguageManager manager) Registers a scoped (per-plugin) language manager.static StringresolveOverride(@Nullable Object recipient, @Nullable String configured, String key, Object... args) Returnsconfigured(with placeholders applied) when it is an override; otherwise falls back to localizingkeyfor the recipient.static voidResolves a key in the recipient's language and sends it as an Adventure component.static voidResolves a key with placeholders (values escaped) and sends the component to the recipient.static voidsetLanguageManager(LanguageManager manager) Sets the default (global) language manager.static voidunregister(String scope) Unregisters a scoped language manager.static MessagesViewview(LanguageManager manager) static MessagesView
-
Method Details
-
setLanguageManager
Sets the default (global) language manager.- Parameters:
manager- language manager ornullto clear
-
getLanguageManager
- Returns:
- the default language manager, or
null
-
register
Registers a scoped (per-plugin) language manager.- Parameters:
scope- scope identifier (typically plugin/mod name)manager- language manager, ornullto unregister
-
unregister
Unregisters a scoped language manager.- Parameters:
scope- scope identifier
-
getLanguageManager
- Parameters:
scope- scope identifier- Returns:
- scoped language manager or
null
-
view
- Parameters:
scope- scope identifier- Returns:
- scoped view for message resolution
-
view
- Parameters:
manager- language manager to bind the view to- Returns:
- view bound directly to the manager
-
getRaw
-
getRaw
-
getRaw
Resolves a key with placeholder substitution.argsaccepts any shape supported byMsgFmt.apply(String, Object...): a singleMap, anIterable, an array, key-value pairs ("name", value, "count", 5), or positional values.- Parameters:
recipient- Audience, platform sender, ornullkey- message keyargs- placeholder values- Returns:
- resolved string with placeholders applied
-
get
Resolves a key and parses the result as MiniMessage.- Parameters:
key- message key- Returns:
- adventure component
-
get
-
get
public static net.kyori.adventure.text.Component get(@Nullable @Nullable Object recipient, String key, Object... args) Resolves a key with placeholders (values escaped before parsing) and returns an adventure component.- Parameters:
recipient- Audience, platform sender, ornullkey- message keyargs- placeholder values- Returns:
- adventure component
-
send
-
send
-
isOverride
Returns true whenconfiguredrepresents a real override — i.e. it is non-blank and differs from the bundled English default forkey.Useful for plugins where users may keep an English default in config without realising it: comparing against the bundled value lets you tell "user kept the default" from "user wants this exact English text even on Ukrainian clients".
- Parameters:
configured- user-configured value (may be null/blank)key- message key the configured value parallels- Returns:
- true if
configuredshould be treated as an override
-
resolveOverride
public static String resolveOverride(@Nullable @Nullable Object recipient, @Nullable @Nullable String configured, String key, Object... args) Returnsconfigured(with placeholders applied) when it is an override; otherwise falls back to localizingkeyfor the recipient.- Parameters:
recipient- Audience, platform sender, ornullconfigured- optional user-configured overridekey- message keyargs- placeholder values- Returns:
- resolved string
-
query
Starts a fluent message resolution against the default manager.- Parameters:
key- message key- Returns:
- builder
-
exists
- Parameters:
key- message key- Returns:
- true if the default manager has an entry for this key
-
currentLanguage
- Returns:
- active language code or
"en"when no manager is set
-
getCurrentLanguage
- Returns:
- active language code (legacy alias for
currentLanguage()).
-