CoreProtect — 完整教學#
適用版本:CoreProtect CE 23.2 | 平台:Paper / Spigot / Folia 1.21.x
目錄#
安裝與設定#
前置需求#
- Paper / Spigot 1.21.x(或 Folia / Purpur)
- Java 17 或以上
- 如使用 MySQL:已建立的 MySQL 5.7+ 或 MariaDB 10.3+ 資料庫
安裝步驟#
將 jar 放入伺服器根目錄下的 plugins/ 資料夾:
安裝目錄結構:
servers/plugins/CoreProtect-CE-23.2.jar
- 從 Modrinth 下載
CoreProtect-CE-23.2.jar。(wiki) - 將 jar 複製到伺服器的
plugins/目錄。(wiki) - 啟動或重啟伺服器,CoreProtect 會自動生成
plugins/CoreProtect/config.yml。(wiki) - 確認控制台出現以下訊息代表安裝成功:
需人工實測
[CoreProtect] CoreProtect 23.2 by Intelli has been enabled!
[CoreProtect] Using SQLite for data storage.
基礎設定(SQLite,適合大多數情況)#
CoreProtect 預設使用 SQLite,無需額外設定即可運作。開啟 plugins/CoreProtect/config.yml 確認以下設定:(wiki)
MySQL 設定(進階)#
如需使用 MySQL,修改 config.yml:需人工實測
use-mysql: true
mysql:
host: localhost
port: 3306
database: coreprotect
username: your_user
password: your_password
執行 /co reload 套用設定,控制台應顯示 Using MySQL for data storage。需人工實測
基本使用:檢查與查詢#
檢查模式(Inspect Mode)#
檢查模式是最快速了解特定方塊歷史的方法。
啟動檢查模式:
或使用別名:
執行後,手持任意物品(或空手):
- 右鍵點擊方塊 — 查看該位置的方塊放置記錄
- 左鍵攻擊方塊 — 查看該位置的方塊破壞記錄
- 右鍵點擊容器(箱子等) — 查看容器內物品存取記錄
需人工實測
輸出範例:
----- CoreProtect Lookup Results -----
2024/01/15 14:32:10 - Griefer123 broke grass_block.
2024/01/15 14:32:08 - Griefer123 broke dirt.
2024/01/15 14:30:00 - Steve placed dirt.
再次執行 /co i 即可退出檢查模式。(wiki)
搜尋記錄(Lookup)#
/co lookup 讓你在不回滾的情況下搜尋歷史記錄,常用於確認破壞範圍。
指令格式:
範例 1:查詢半徑 10 格內過去 2 小時的所有方塊變更
需人工實測
範例 2:查詢特定玩家的所有動作
(wiki)
翻頁:
搜尋結果以每頁顯示,在聊天框中點擊 [Next Page] 或輸入 /co lookup <頁碼> 瀏覽。需人工實測
時間格式說明#
| 格式 | 意義 |
|---|---|
30s |
30 秒前 |
10m |
10 分鐘前 |
2h |
2 小時前 |
1d |
1 天前 |
1h30m |
1 小時 30 分鐘前 |
2d12h |
2 天 12 小時前 |
回滾操作#
回滾(rollback)是 CoreProtect 的核心功能,可將指定範圍恢復到過去的狀態。
重要提示:回滾前建議先用
/co lookup確認範圍,避免誤操作。
基本回滾流程#
步驟 1:先用 lookup 確認範圍需人工實測
確認結果符合預期後再執行回滾。
步驟 2:執行回滾需人工實測
回滾完成後,CoreProtect 會顯示處理的方塊數量:
步驟 3:確認結果需人工實測
在遊戲中前往受影響區域,目視確認回滾是否正確。
回滾後悔藥:Restore(復原)#
如果回滾後發現範圍不對或誤操作,可以使用 /co restore 撤銷回滾:需人工實測
Restore 會將剛才回滾的動作重新套用,恢復到回滾前的狀態。
僅回滾特定動作類型#
# 只回滾方塊破壞(保留放置)
/co rollback -t 24h -u Griefer123 -a -block
# 只回滾方塊放置(還原放置,適合清除刷物機等)
/co rollback -t 24h -u Griefer123 -a +block
# 回滾容器(箱子)內物品竊取
/co rollback -t 12h -u Thief -a container
需人工實測
進階篩選技巧#
多使用者同時篩選#
以逗號分隔多個玩家名稱:(wiki)
排除特定使用者(-e 參數)#
回滾全部玩家動作但排除特定人:(wiki)
-u #表示所有使用者,-e TrustedAdmin從結果中排除該玩家。
指定特定方塊類型(-b 參數)#
只回滾特定方塊的變更:(wiki)
全圖搜尋(-r #global)#
不限制半徑,搜尋整個世界:需人工實測
注意:全圖搜尋可能非常慢,建議配合
-a縮小範圍。
指定世界(-w 參數)#
搜尋特定世界的記錄:(wiki)
複合條件範例#
# 查詢過去 3 天、下界、半徑 30 格內、TNT 相關的方塊記錄
/co lookup -t 3d -w world_nether -r 30 -a block -b minecraft:tnt
# 回滾 SuspiciousPlayer 過去 12 小時在主世界的所有容器操作
/co rollback -t 12h -u SuspiciousPlayer -a container -r #global -w world
需人工實測
伺服器管理設定#
清除舊日誌(Purge)#
隨著伺服器運行,資料庫會持續增大。建議定期清除超過一定天數的舊日誌。
需人工實測
警告:purge 操作不可逆,被刪除的日誌無法恢復。建議先備份資料庫再執行。
建立定期 Purge 排程#
使用其他插件(如 EssentialsX 的排程功能或 ScriptRunner)在每週固定時間自動執行 purge。或在系統層級用 cron 呼叫 RCON:需人工實測
查看系統狀態#
(wiki)
輸出範例:
[CoreProtect] CoreProtect 23.2 by Intelli
[CoreProtect] ========================================
[CoreProtect] Database: SQLite
[CoreProtect] Database Size: 234 MB
[CoreProtect] Queued Transactions: 0
[CoreProtect] Total Logged Actions: 4,521,832
如果 Queued Transactions 持續偏高(> 1000),代表記錄寫入跟不上,考慮切換至 MySQL 或減少記錄項目。
權限設定建議#
建議使用 LuckPerms 或 PermissionsEx 設定權限。
一般管理員(能查詢與回滾):
超級管理員(額外能 purge 與 reload):
(wiki)
API 整合#
若其他插件(如 GriefPrevention、WorldGuard)需要整合 CoreProtect 日誌,確保設定中 api-enabled: true(預設值)。(wiki)
CoreProtect API 可讓第三方插件程式化查詢日誌,詳情參閱 CoreProtect API 文件。
常見問題#
Q:回滾後世界沒有變化?
A:確認 -r 半徑是否涵蓋受影響區域,或使用 -r #global 再試;也確認 -t 時間設定正確。需人工實測
Q:CoreProtect 讓伺服器 TPS 下降?
A:嘗試在 config.yml 關閉高頻事件記錄(click: false、item: false),並考慮切換至 MySQL。需人工實測
Q:資料庫檔案很大怎麼辦?
A:執行 /co purge -t 30d 清除舊資料,並評估切換至 MySQL 以獲得更好的資料管理能力。需人工實測
Q:能回滾 TNT 爆炸嗎?
A:CoreProtect 記錄方塊破壞,包括爆炸造成的破壞。使用 /co rollback -t <時間> -a block -b minecraft:air -r <半徑> 可還原被炸掉的方塊(需配合 -u # 包含所有來源)。需人工實測