CannonRTP (WorldCannon)
CannonRTP 是一個適用於 Minecraft 伺服器的多炮台隨機傳送外掛。專案內部名稱為 WorldCannon,但外掛在 Bukkit 中註冊為 CannonRTP,這是玩家和管理員看到的名稱。
重要命名詳情:
- 外掛名稱:
CannonRTP - 根命令:
/cannonrtp - 別名:
/crtp,/wc - 權限:
cannonrtp.admin,cannonrtp.use - 設定資料夾:
plugins/CannonRTP/
功能介紹
CannonRTP 是一個多炮台隨機降落系統,而不是單一固定發射器。
每個炮台可以:
- 偵測進入觸發半徑的玩家
- 在設定的目標世界中預載入並維護安全降落點佇列
- 拒絕不安全的地形、被堵塞的空間和受保護的土地
- 可選要求每個炮台的額外權限
- 透過預熱、座標預覽、加速、傳送和緩降序列發射玩家
- 可選在炮台位置顯示 FreeMinecraftModels 自訂模型
發射流程
當玩家走進符合條件的炮台觸發半徑時:
- CannonRTP 檢查
cannonrtp.use。 - 檢查炮台的可選
requiredPermission。 - 驗證炮台已啟用、擁有有效設定且已預載入降落點。
- 從該炮台的佇列中消耗一個預載入的安全降落點。
- 發射預熱開始:玩家獲得漂浮效果,看到帶有隨機座標預覽的標題/副標題倒計時。
- 預熱結束後,播放發射音效,施加垂直加速,玩家被傳送到目的地上方 50 個方塊,並施加緩慢下降。
- 當玩家著地時,緩慢下降效果會提前移除。
如果炮台設定了 customModel 且 FreeMinecraftModels 的 fire 模型存在,則使用替代發射動畫,玩家在預熱期間會坐在炮台位置。
降落安全規則
在位置被接受進入預載入佇列之前,當前程式碼會檢查:
- 目標世界是否已載入
- 搜尋中心是否有效
- 位置是否在世界邊界內
- 是否存在最高安全表面(固體、非液體、非空氣)
- 腳部和頭部空間是否可通行
- 降落表面是否不在設定的不安全地面材料清單中
- 腳部和頭部方塊是否不在設定的不安全身體材料清單中
- 所有已啟用的保護外掛整合是否允許該位置
炮台狀態
每個炮台都有一個內部狀態,可透過 /wc status 查看:
| 狀態 | 含義 |
|---|---|
| Charging | 仍在預載入第一批安全位置 |
| Ready | 已有足夠的預載入位置來發射玩家 |
| Maintaining | 已就緒但仍在補充已消耗的位置 |
| Exhausted | 逾時未找到足夠的有效位置 |
| Invalid | 設定錯誤(如目標世界未載入) |
炮台在儲存了至少 chargedLocationsPerCannon 個有效目的地後變為發射就緒狀態。
執行要求
- Minecraft API:
1.21 - Java:
21 - 推薦伺服器軟體:Paper 或當前相容的分支
- 可選依賴:FreeMinecraftModels(用於自訂炮台模型)