NMS Displayv1.0.0已發布
NMS Boss Bar 操作
NMS Boss Event
透過 NMS ServerBossEvent 操作 Boss Bar 進度、顏色、風格與每人獨立可見性(Paper NMS + Mojang mappings)。
nmsbossbarboss-eventper-playeroverlaymojang-mapped
更新:2026年4月30日GitHub
NMS Boss Event
目的
透過 NMS ServerBossEvent 精確控制 Boss Bar 的進度、顏色、風格(分段線)、可見性,並實現每位玩家獨立的 Boss Bar 內容(Bukkit BossBar API 每個 Bar 對所有玩家相同)。
平台需求
- Paper 1.21 – 1.21.3
- Paperweight userdev 1.7.2+
- Mojang mappings(Paper 1.20.5+ 原生支援)
- Java 21
產生的代碼
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.show(player, BossEvent.BossBarColor.GREEN, BossEvent.BossBarOverlay.PROGRESS);
manager.setProgress(player, 0.5f);
manager.hide(player);
manager.cleanup(); // Plugin disable 時呼叫
執行緒安全
ServerBossEvent.addPlayer()/removePlayer()必須在主執行緒呼叫setProgress()/setName()可在任意執行緒呼叫(封包自動排入 Netty write queue)