伺服器版本1.21.x · paper
CoreProtect — 設定檔說明
設定檔位於 plugins/CoreProtect/config.yml,首次啟動後自動產生。修改後執行 /co reload 或重啟伺服器生效。
完整設定範例
config-version: 3
# ── 基本設定 ────────────────────────────────────────────────────
use-mysql: false
table-prefix: co_
verbose: true
check-updates: true
api-enabled: true
language: en
# ── SQLite 設定(use-mysql: false 時使用) ────────────────────────
# 資料庫檔案自動建立於 plugins/CoreProtect/database.db
# ── MySQL / MariaDB 設定(use-mysql: true 時使用) ────────────────
mysql:
host: localhost
port: 3306
database: coreprotect
username: root
password: ""
usessl: false
# ── 記錄範圍設定 ────────────────────────────────────────────────
log-actions:
block: true
chat: true
command: true
container: true
click: true
kill: true
sign: true
item: true
session: true
username: true
設定項目詳解
基本設定
| 設定項 |
預設值 |
說明 |
config-version |
3 |
設定檔格式版本,請勿手動修改 |
use-mysql |
false |
false 使用 SQLite;true 使用 MySQL/MariaDB |
table-prefix |
co_ |
資料表前綴,多個 CoreProtect 實例共用同一資料庫時用於區隔 |
verbose |
true |
啟動時在控制台顯示詳細資訊 |
check-updates |
true |
自動檢查並提示新版本 |
api-enabled |
true |
啟用 CoreProtect API,讓其他插件整合使用 |
language |
en |
介面語言代碼 |
MySQL 設定
| 設定項 |
說明 |
mysql.host |
MySQL 伺服器位址(例如 db.example.com 或 localhost) |
mysql.port |
MySQL 埠號,預設 3306 |
mysql.database |
資料庫名稱,需事先建立(CREATE DATABASE coreprotect;) |
mysql.username |
資料庫使用者名稱 |
mysql.password |
資料庫密碼(建議使用非 root 帳號) |
mysql.usessl |
是否啟用 SSL 連線(生產環境建議 true) |
記錄範圍設定
log-actions 下的每個子項目均可設為 true(記錄)或 false(不記錄):
| 子項目 |
說明 |
block |
方塊放置與破壞 |
chat |
玩家聊天訊息 |
command |
玩家執行的指令 |
container |
箱子、桶、漏斗等容器的物品移動 |
click |
右鍵互動事件(按鈕、拉桿、門、物品展示框等) |
kill |
生物與玩家的擊殺事件 |
sign |
告示牌文字的放置與編輯 |
item |
物品丟棄與撿取 |
session |
玩家登入與登出 |
username |
玩家更換遊戲名稱的記錄 |
SQLite vs MySQL 選擇建議
| 情境 |
建議 |
| 小型伺服器(< 20 人同時上線) |
SQLite(零設定,開箱即用) |
| 中大型伺服器、BungeeCord/Velocity 群組 |
MySQL / MariaDB(更佳的並發效能) |
| Folia 多執行緒伺服器 |
MySQL / MariaDB(強烈建議) |
| 需要多伺服器共享日誌 |
MySQL / MariaDB(設定相同 host 與 database) |
效能調校建議
- MySQL 連接池:預設連接數已針對大多數情境最佳化,無需手動調整。
log-actions:若伺服器 TPS 偏低,可考慮關閉 click 與 item 記錄(這兩類事件最頻繁)。
- 定期 purge:建議每週或每月執行
/co purge -t 30d 清理超過 30 天的舊日誌,維持資料庫效能。
- 磁碟空間:SQLite 模式下,高流量伺服器每月可能產生數 GB 日誌,請確認磁碟空間充裕。
資料庫備份
- SQLite:直接備份
plugins/CoreProtect/database.db 即可。
- MySQL:使用
mysqldump 定期備份,例如:
mysqldump -u root -p coreprotect > coreprotect_backup_$(date +%Y%m%d).sql
注意:回滾操作會直接修改世界與資料庫,建議執行重大回滾前先備份。