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)