跳轉至
伺服器版本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.comlocalhost
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(設定相同 hostdatabase

效能調校建議#

  • MySQL 連接池:預設連接數已針對大多數情境最佳化,無需手動調整。
  • log-actions:若伺服器 TPS 偏低,可考慮關閉 clickitem 記錄(這兩類事件最頻繁)。
  • 定期 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

注意:回滾操作會直接修改世界與資料庫,建議執行重大回滾前先備份。