feat: add paper plugin

This commit is contained in:
2025-12-11 00:34:34 -08:00
parent 3153b8d5e7
commit 528bf73365
18 changed files with 344 additions and 57 deletions

View File

@@ -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 {

View File

@@ -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;
}
}
}