跳到主要内容

安装与授权

购买与下载​

  1. 打开 资源中心,注册并登录,购买 CloudGuild 云公会(58R,一次购买、永久包更)。
  2. 在资源中心打开 CloudGuild 云公会,下载最新的 CloudGuild-<版本>-簡體授權版.jar。
  3. 授权码在 会员中心 的「我的授权」。
简体授权版

公开下载的是简体授权版:config.yml、messages.yml、menus/*.yml 等文件里的注释与默认文字都是简体中文。 本 Wiki 引用的默认文字取自插件源码(繁体),你的文件里会是对应的简体写法,键名完全相同。

运行环境​

项目要求
服务端Paper / Purpur / Folia 1.20 – 26.x,同一个 jar
Java17 或更新即可运行插件(1.20.5 起的服务端本身需要 Java 21)
前置插件无(数据库连接池 HikariCP 已内置;SQLite / MySQL 驱动由 Paper 提供)
数据库默认 SQLite(单服,不用设置);多个子服要跨服时改用 MySQL / MariaDB,见 跨服设置
可选:Vault + 经济插件建立公会的金币费用、公会银行存钱 / 提领
可选:PlayerPoints建立公会的点券费用(create.points)
可选:PlaceholderAPI变量(公会名称、等级、贡献、排行榜……),自动注册
可选:云界面 CloudUI/cg 改用全屏的公会主页画面,画面文件自动安装,见 云界面公会。云界面本身需要 1.21.11 或 26.x(目前实测 26.3);其他功能在 1.20 上都能使用
不支持Spigot(需要 Paper 系服务端)
没有经济插件时

默认的 create.money 是 10000。服务器没有 Vault 经济插件时,玩家建立公会会被拒绝(提示「伺服器沒有經濟插件,無法收取建立費用」)。 不打算装经济插件的话,把 config.yml 的 create.money 改成 0;公会银行的存钱、提领也需要 Vault。

单服安装​

  1. 把 CloudGuild-<版本>-簡體授權版.jar 放进 plugins/,启动服务器。
  2. 首次启动会生成 plugins/CloudGuild/ 与 token.yml,照下面的 授权 填好授权码后重启。控制台会显示:
[CloudGuild] 資料庫已連線:SQLite data.db
[CloudGuild] 已載入 0 個公會
  1. 进游戏输入 /cg。还没有公会时会打开「公会列表」,看到这个界面就成功了。接着照 快速上手 建立第一个公会。

单服到这里就装好了,数据存在 plugins/CloudGuild/data.db。

授权​

  1. 首次启动会生成 plugins/CloudGuild/token.yml,此时插件处于「未授权模式」:服务器照常开启、公会资料全部保留,但公会的指令、菜单、公会聊天、变量、增益、任务与公会战都暂停。
  2. 登录 会员中心,在「我的授权」复制 CloudGuild 的授权码,填进 token.yml 的 key:,重启服务器。
  3. 首次验证会自动绑定本机(后台会显示本机机器码);换服务器时请先在会员中心自助解绑。
plugins/CloudGuild/token.yml
key: 'XXXX-XXXX-XXXX-XXXX'
  • 授权在后台验证,不会拖慢开服;连不上授权服务器时每 60 秒自动重试,连上后立即生效,不需要重启。
  • 断网时可使用最近一次验证结果离线运行 72 小时。
  • 授权被停用、解绑或过期时,公会功能会暂停并在后台说明原因;公会资料不会丢失。
  • .license-cache 是离线验证用的签名缓存,请勿修改。
  • /cg version 可以查看当前版本、版本类型与授权状态。
  • 多服时每个子服的 token.yml 都要填好授权码。

连不上授权服务器时,后台会写明原因(DNS 解析失败、连线被拒绝、超时、HTTPS 被拦截…)。最常见的是主机商面板禁止对外连线,或本机电脑开了代理但 Java 没有走代理,见 常见问题。

多服安装(MySQL)​

多个子服要共用公会(同一个公会、跨服聊天、跨服据点),每个子服都装云公会并连同一个 MySQL:

  1. 建一个 MySQL 数据库,例如 cloudguild(字符集 utf8mb4),准备好每个子服都连得到的账号。每个子服都照上面的 授权 填好 token.yml。
  2. 每个子服的 plugins/CloudGuild/config.yml 填同样的数据库,sync.server-name 填这个子服在代理端的名称:
database:
type: mysql
host: 192.168.1.10
port: 3306
database: cloudguild
username: cloudguild
password: '你的密码'
table-prefix: 'cg_' # 所有子服要一样

sync:
enabled: auto # 使用 MySQL 时自动开启
server-name: 'survival' # 每个子服不同,要和 BungeeCord / Velocity 里的子服名称一致
interval-ticks: 20
  1. 重启每个子服(数据库与跨服设定 /cg admin reload 不会生效)。控制台会显示:
[CloudGuild] 資料庫已連線:MySQL 192.168.1.10:3306/cloudguild
[CloudGuild] 跨服同步已開啟(子服:survival,每 20 tick 讀取其他子服的變動)
sync.server-name 一定要和代理端一致

server-name 有两个用途:

  • 跨服回据点:据点会记下它在哪个子服,玩家在别的子服输入 /cg home 时,云公会用代理端的 Connect 把玩家送到那个名称的子服。名称和 BungeeCord config.yml / Velocity velocity.toml 里的子服名称不一致,就送不过去。
  • 分辨子服:每个子服用它来认出「这是自己发出的变动」,所以每个子服的名称不能重复。

留空时,云公会会为这个子服自动产生一个代号(auto- 加 8 个字符,例如 auto-3f9a1c2e),存在 plugins/CloudGuild/server-id.txt,之后每次开服沿用;控制台会提示「跨服已開啟但 sync.server-name 是空的」。 这样资料同步照常,但其他子服的成员无法跨服回到这个子服的据点(提示「那個子服沒有設定 sync.server-name,無法跨服傳送」)。

复制插件资料夹开新子服时

如果是把整个 plugins/CloudGuild/ 复制到新子服,记得删掉 server-id.txt(或填好不同的 server-name),否则两个子服会用同一个代号、互相收不到变动。

更多说明(同步了哪些东西、多久同步一次、哪些操作只执行一次)见 跨服设置。

从 PlayerGuild 导入​

云公会可以直接读取 PlayerGuild(handyplus)的数据库,导入:

PlayerGuild导入成云公会的
公会名称、介绍、等级(超过云公会最高等级时取最高等级)、资金、繁荣度、本月繁荣度、建立时间公会名称、介绍、等级、资金、活跃、本月活跃、建立时间
加入方式、PVP 设定加入方式(申请 / 直接加入)、友伤
成员与职位成员:会长 → 会长(每个公会只保留一位,见下方);PlayerGuild 职位编号 2 → 第二高的职位(默认 vice 副会长);编号 3 → 第三高的职位(默认 elite 精英);其他 → default-rank
成员的贡献、累积贡献、本周贡献、捐献、加入时间、击杀、死亡同名的数值
公会主城据点 main
公告公告

PlayerGuild 的资料不会被修改。导入的公会没有标签(tag),之后可以用 /cg tag 设定。

步骤:

  1. 先备份 plugins/CloudGuild/(或 MySQL 数据库)。
  2. 打开 config.yml 的 import.playerguild,告诉云公会去哪里读:
import:
playerguild:
# sqlite = 讀 plugins/PlayerGuild/PlayerGuild.db;mysql = 用下面的連線
type: sqlite
file: plugins/PlayerGuild/PlayerGuild.db
host: 127.0.0.1
port: 3306
database: mc
username: root
password: ''
parameters: 'useSSL=false&allowPublicKeyRetrieval=true&characterEncoding=utf8'
  • PlayerGuild 用 SQLite:type: sqlite,file 是相对于服务器根目录的路径(默认就是 PlayerGuild 的数据库位置)。
  • PlayerGuild 用 MySQL:type: mysql,填 PlayerGuild 用的那个数据库。
  1. 改完 /cg admin reload,然后在控制台或游戏里执行:
cg admin import playerguild
  1. 完成时显示:
匯入完成:公會 12 個、成員 186 位,略過 1 個(名稱重複或沒有成員),修復會長資料 3 個公會
情况处理
云公会里已经有同名公会跳过这个公会(所以重复执行不会导入两次)
玩家已经在云公会的某个公会里跳过这个玩家
一个公会(扣掉跳过的玩家后)没有成员跳过这个公会
一个公会有好几位会长或没有会长自动修复:会长选建立者,其次选累积贡献最高的成员;其他原本是会长的人改为第二高的职位
主城的格式读不懂只跳过据点,公会照常导入
之后想换会长

用 /cg admin setleader <公会> <玩家>,它也会把其他「会长」一起降级。

多服时在哪里导入

先照上面的 多服安装 让所有子服连上同一个 MySQL,然后只在一个子服执行导入。导入完成后其他子服会在下一次刷新(最多 60 秒)看到公会。 导入的据点会沿用 PlayerGuild 记录的子服名称;没有记录时使用执行导入的子服的 sync.server-name。

从 SQLite 搬到 MySQL​

单服用了一段时间、现在要开第二个子服时,用 /cg admin migrate sqlite 把 data.db 的资料完整搬进 MySQL:

  1. 关服前把 plugins/CloudGuild/ 整个备份。
  2. 建好 MySQL 数据库。
  3. 修改 config.yml:database.type 改成 mysql,填好连线资料;database.file 保持原本的 data.db(搬移时从这里读),table-prefix 不要改。
  4. 重启服务器。现在连的是空的 MySQL。
  5. 执行:
cg admin migrate sqlite
  1. 看到「搬移完成:公會 N 個、成員 M 位」就完成了,公会资料会立刻重新载入。之后再照 多服安装 把其他子服接上来。
规则说明
方向参数写的是来源:migrate sqlite = 从 SQLite 搬到目前使用的 MySQL;migrate mysql = 从 MySQL 搬回目前使用的 SQLite
来源的位置同一个 database 段:SQLite 读 database.file,MySQL 读 host / port / database / 账号密码;两边用同一个 table-prefix
目标必须是空的目前的数据库已经有任何公会时会停止(「目前的資料庫已經有公會資料,為了避免覆蓋已停止」)
搬什么全部 19 个表格(公会、成员、银行记录、仓库、任务进度、战争……),在一个事务里完成,失败时整个还原
已经是同一种提示「目前已經在使用這種資料庫」

文件说明​

路径用途
config.yml数据库、跨服、名称规则、建立费用、职位、等级、银行、签到、活跃、据点、友伤、聊天、公告、外交、公会战、仓库、菜单、导入,见 config.yml
messages.yml所有提示文字,见 messages.yml
buffs.yml公会增益,见 公会增益
tasks.yml公会任务,见 公会任务
shop.yml公会商店的商品,见 公会商店
menus/*.yml17 个箱子菜单,见 菜单
data.dbSQLite 数据库(使用 MySQL 时不会用到)
token.yml授权码
server-id.txt没有填 sync.server-name 时自动产生的子服代号

升级​

  1. 关服,备份 plugins/CloudGuild/(使用 MySQL 的话也备份数据库)。
  2. 删掉旧的 jar,放入新的 CloudGuild-<版本>-簡體授權版.jar。
  3. 开服。公会、设定文件与授权码都会保留。
文件新版本新增的项目
config.yml不会写进你现有的文件。没写的项目使用默认值,想调整就自己把键加进去(键名与默认值见 config.yml)
messages.yml缺少的提示文字会自动使用插件内置的默认文字;想改那一句时再把键加进去
menus/*.yml、buffs.yml、tasks.yml、shop.yml你的文件保持不变。缺少的文件会在开服或 /cg admin reload 时重新生成

每个版本改了什么见 更新记录。