NMS · NMS 顯示
NMS Boss Bar 操作
透過 NMS ServerBossEvent 操作 Boss Bar 進度、顏色、風格與每人獨立可見性。
NMS Boss Event
目的
透過 NMS ServerBossEvent 精確控制 Boss Bar 的進度、顏色、風格(分段線)、可見性,並實現每位玩家獨立的 Boss Bar 內容(Bukkit BossBar API 每個 Bar 對所有玩家相同)。
平台需求
- Paper 1.21.11 / 26.2(兩版皆經編譯驗證;版本差異以行尾
// @1.21.11:標註) - Paperweight userdev 2.0.0-beta.24+
- Mojang 官方名稱(Minecraft 26.1 起不再混淆)
- Java 21(1.21.11)/25(26.2)
產生的代碼
NmsBossBar.java(單一 Boss Bar 封裝)
// 建立帶分段的 Boss Bar
NmsBossBar bar = new NmsBossBar(
"§c§lBoss §f— 100%",
BossEvent.BossBarColor.RED,
BossEvent.BossBarOverlay.NOTCHED_10
);
// 顯示給玩家
bar.addPlayer(player);
// 更新進度(0.0 ~ 1.0)
bar.setProgress(0.75f);
// 更新標題
bar.setTitle("§c§lBoss §f— 75%");
BossBarManager.java(多玩家管理)
// 建立每人獨立的 Boss Bar(各自顯示不同進度)
BossBarManager manager = new BossBarManager(plugin);
manager.getOrCreate(player, "§a任務進度", BossEvent.BossBarColor.GREEN, BossEvent.BossBarOverlay.PROGRESS);
manager.update(player, "§a任務進度 50%", 0.5f);
manager.remove(player);
manager.removeAll(); // Plugin disable 時呼叫
執行緒安全
ServerBossEvent.addPlayer()/removePlayer()必須在主執行緒呼叫setProgress()/setName()可在任意執行緒呼叫(封包自動排入 Netty write queue)