Message System
已發布訊息系統生成器
Generate Message System
依訊息鍵值清單產生 messages.yml 設定檔與 MessageManager 類別,支援 MiniMessage / Legacy 格式、PlaceholderAPI 佔位符替換。
messageminimessagelegacybukkitconfigpapi
Generate Message System Skill
目標
依使用者提供的訊息鍵值清單,自動產生:
messages.yml設定檔(含前綴、所有訊息鍵值、繁體中文預設值)MessageManager.java工具類別(讀取、替換佔位符、傳送給玩家)
輸入參數
| 參數 | 說明 | 範例 |
|---|---|---|
message_keys |
訊息鍵值清單 | no-permission, reload-success |
format |
格式化系統 | minimessage(預設)或 legacy |
use_papi |
是否整合 PlaceholderAPI | true / false |
輸出規格
messages.yml
prefix: "<dark_aqua>[MyPlugin]</dark_aqua> "
messages:
no-permission: "<red>你沒有執行此操作的權限。</red>"
player-only: "<yellow>此指令僅限玩家執行。</yellow>"
reload-success: "<green>設定檔已重新載入。</green>"
MessageManager.java(MiniMessage 版)
public class MessageManager {
private static final MiniMessage MM = MiniMessage.miniMessage();
private final JavaPlugin plugin;
private FileConfiguration messages;
private String prefix;
public MessageManager(JavaPlugin plugin) {
this.plugin = plugin;
reload();
}
public void reload() {
File file = new File(plugin.getDataFolder(), "messages.yml");
if (!file.exists()) plugin.saveResource("messages.yml", false);
messages = YamlConfiguration.loadConfiguration(file);
prefix = messages.getString("prefix", "<dark_aqua>[Plugin]</dark_aqua> ");
}
public Component get(String key, Map<String, String> placeholders) {
String raw = messages.getString("messages." + key,
"<red>Missing: " + key + "</red>");
TagResolver.Builder resolver = TagResolver.builder();
placeholders.forEach((k, v) -> resolver.resolver(Placeholder.parsed(k, v)));
return MM.deserialize(prefix, resolver.build())
.append(MM.deserialize(raw, resolver.build()));
}
public void send(CommandSender sender, String key) {
sender.sendMessage(get(key, Map.of()));
}
}
在主類中初始化
private MessageManager messageManager;
@Override
public void onEnable() {
saveResource("messages.yml", false);
this.messageManager = new MessageManager(this);
}