Skip to content

Latest commit

 

History

History
108 lines (73 loc) · 3.01 KB

File metadata and controls

108 lines (73 loc) · 3.01 KB

Discord 整合

BlockPilotMC v1.0.5 內建每台 Minecraft 伺服器獨立的 Discord 整合,分為 Minecraft → Discord Webhook 通知 與 Discord Bot 雙向聊天/遠端管理。

Minecraft → Discord Webhook 通知

每台伺服器可獨立設定 Webhook URL 與顯示名稱,支援:

  • 伺服器啟動、完成啟動、停止與異常結果。
  • 玩家加入/離開。
  • Minecraft 玩家聊天。
  • 可選的警告與錯誤摘要。

Webhook URL 會在 API 後端使用 AES-256-GCM 加密保存;一般設定讀取只回傳設定狀態與遮罩,不回傳原始 URL。

Discord Bot 雙向聊天與管理

Discord Developer Portal

  1. 建立 Application 與 Bot。
  2. 啟用 Message Content Intent。
  3. 邀請 Bot 加入目標 Discord 伺服器。
  4. 在目標頻道授予:
    • View Channel
    • Send Messages
    • Read Message History
  5. 若要自動更新頻道主題,再授予 Manage Channels。

BlockPilotMC 設定

可設定:

  • Bot Token。
  • Discord 伺服器 ID。
  • Discord 頻道 ID。
  • Discord → Minecraft 聊天。
  • 遠端管理指令。
  • 頻道主題自動更新週期。
  • 指令前綴,預設為 !bp。

Bot Token 只在 API 後端加密保存,不寫入前端程式或稽核紀錄。

指令偵測

BlockPilotMC 會分析:

  • Minecraft 啟動檔與 JAR。
  • Forge / NeoForge libraries。
  • 已安裝的模組與插件。
  • 執行中伺服器的 help 輸出。
  • spark 是否存在,以提供 TPS / MSPT 查詢能力。

分析結果會建立 Discord 可用指令清單,由管理員決定哪些指令可以從 Discord 執行。

權限模型

管理員權限身分組

可使用已開啟「管理員可用」的指令。

玩家權限身分組

只能使用另外開啟「玩家可用」的指令。

單獨允許使用者

指定 Discord User ID 可取得管理員層級的 Discord 指令權限。

若同一使用者同時符合玩家與管理員權限,以管理員權限為優先。

介面提供:

  • 套用安全建議
  • 清除玩家權限
  • 取消全部指令

方便快速建立較保守的遠端管理權限。

常用指令

預設前綴為 !bp:

!bp status
!bp players
!bp tps
!bp start
!bp stop
!bp restart
!bp backup
!bp help

可用指令仍以該伺服器的指令分析結果與管理員設定為準。

頻道主題

可設定週期性更新 Discord 頻道主題,顯示 Minecraft 伺服器的狀態、核心、玩家資訊與運行時間。Discord Bot 必須具有 Manage Channels。

安全原則

  • Webhook URL 與 Bot Token 只在 API 後端加密保存。
  • 遠端管理預設不應對所有 Discord 使用者開放。
  • 使用身分組 ID 或單獨使用者 ID 建立允許清單。
  • 不提供未受限制的任意主控台 passthrough。
  • 只有 BlockPilotMC 已辨識且管理員允許的指令可從 Discord 執行。
  • Discord 訊息停用自動提及,避免意外觸發 @everyone、@here 或角色提及。
  • 指令執行、拒絕與錯誤結果可寫入稽核紀錄,但 Token 不會記錄。