feat: add paper plugin
This commit is contained in:
@@ -8,6 +8,9 @@ repositories {
|
||||
|
||||
dependencies {
|
||||
implementation("com.google.code.gson:gson:2.10.1")
|
||||
|
||||
implementation("net.kyori:adventure-api:4.25.0")
|
||||
implementation("net.kyori:adventure-text-minimessage:4.25.0")
|
||||
}
|
||||
|
||||
java {
|
||||
|
||||
@@ -0,0 +1,64 @@
|
||||
package online.mineroo.common;
|
||||
|
||||
import net.kyori.adventure.text.Component;
|
||||
import net.kyori.adventure.text.minimessage.MiniMessage;
|
||||
import net.kyori.adventure.text.minimessage.tag.resolver.Placeholder;
|
||||
import net.kyori.adventure.text.minimessage.tag.resolver.TagResolver;
|
||||
|
||||
import java.util.Locale;
|
||||
import java.util.ResourceBundle;
|
||||
|
||||
public class MessageManager {
|
||||
|
||||
private ResourceBundle bundle;
|
||||
private final MiniMessage miniMessage;
|
||||
|
||||
public MessageManager() {
|
||||
this.miniMessage = MiniMessage.miniMessage();
|
||||
reload();
|
||||
}
|
||||
|
||||
public void reload() {
|
||||
String lang = "zh-CN";
|
||||
|
||||
Locale locale;
|
||||
if (lang.contains("-")) {
|
||||
String[] parts = lang.split("-");
|
||||
locale = Locale.of(parts[0], parts[1]);
|
||||
} else {
|
||||
locale = Locale.of(lang);
|
||||
}
|
||||
|
||||
try {
|
||||
this.bundle = ResourceBundle.getBundle("i18n.messages", locale);
|
||||
} catch (Exception e) {
|
||||
this.bundle = ResourceBundle.getBundle("i18n.messages", Locale.ROOT);
|
||||
}
|
||||
}
|
||||
|
||||
public Component get(String key) {
|
||||
String raw = getString(key);
|
||||
return miniMessage.deserialize(raw);
|
||||
}
|
||||
|
||||
public Component get(String key, String... placeholders) {
|
||||
String raw = getString(key);
|
||||
|
||||
TagResolver.Builder builder = TagResolver.builder();
|
||||
for (int i = 0; i < placeholders.length; i += 2) {
|
||||
if (i + 1 < placeholders.length) {
|
||||
builder.resolver(Placeholder.parsed(placeholders[i], placeholders[i + 1]));
|
||||
}
|
||||
}
|
||||
|
||||
return miniMessage.deserialize(raw, builder.build());
|
||||
}
|
||||
|
||||
private String getString(String key) {
|
||||
try {
|
||||
return bundle.getString(key);
|
||||
} catch (Exception e) {
|
||||
return "<red>Missing key: " + key;
|
||||
}
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user