跳到主要内容

从其他插件转换

你原本用的是怎么做
DecentHolograms,或旧全息插件什么都不用做:第一次安装时会自动搬入。
CMI、HolographicDisplays、FutureHolograms、GHolo、Holograms用 /clh convert 转换。

第一次安装时自动搬入​

云全息第一次启动、plugins/CloudHologram/ 文件夹还不存在的时候,会在 plugins/ 里找旧的全息插件资料,复制过来。

怎么判断哪个是旧资料​

插件会看 plugins/ 底下的每一个文件夹(不看名称),符合下面两个条件的才算:

  • 里面有 holograms/ 文件夹,而且 holograms/ 第一层至少有一个 .yml;
  • 里面有 lang.yml。

符合的文件夹有好几个时,有 examples/ 文件夹的优先,其次选看板最多的那一个。只会从一个文件夹复制。

会复制什么​

来源复制到说明
holograms/plugins/CloudHologram/holograms/全部看板,包含子文件夹
animations/plugins/CloudHologram/animations/自定义动画
displays/plugins/CloudHologram/displays/Display 实体
config.ymlplugins/CloudHologram/config-old.yml只是另存一份供对照,不会套用
lang.yml不复制云全息使用自己的中文提示
  • 旧文件夹完全不会被修改或删除。
  • 复制成功时控制台会显示:
[CloudHologram] 已从 plugins/DecentHolograms 复制看板、动画与 Display(原文件夹保留不动)。确认没问题后可以删除旧的全息插件 jar。
  • 复制失败时会显示 复制旧看板失败:…,可以手动把 holograms 文件夹复制到 plugins/CloudHologram。
  • 旧的 config.yml 里有你改过的设定(例如伤害显示、点击冷却),请对照 config-old.yml 自己搬到新的 config.yml,见 config.yml。
已经启动过云全息,才想到要搬旧看板?

自动搬入只在第一次启动时执行。之后请手动:关服 → 把旧插件的 holograms/(需要的话还有 animations/、displays/)复制到 plugins/CloudHologram/ → 开服,或开着服复制后 /clh validate、/clh reload。

从 DecentHolograms 换过来​

云全息的看板文件格式和 DecentHolograms 相同,换过来不需要转换。

  1. 关服,备份 plugins/DecentHolograms/。
  2. 把 CloudHologram-<版本>-簡體授權版.jar 放进 plugins/(资源中心登录免费领取,见 安装与获取)。
  3. 删除 DecentHolograms 的 jar。两个不能同时安装。
  4. 开服,确认控制台有「已从 plugins/DecentHolograms 复制看板…」。
  5. 打开 plugins/CloudHologram/token.yml 填入授权码,重启。
  6. 在游戏里检查(见下方「转换后检查清单」)。

需要知道的事:

  • /dh 指令仍然可以用,/dh create、/dh l add 等习惯写法都不用改。权限也沿用 dh.*,新增的 cloudhologram.admin 包含 dh.admin。见 权限。
  • 依赖 DecentHolograms 的插件不需要改,见 开发者 API。
  • 看板文件被云全息的指令修改后,会改写成更好读的格式(actions: 变成 clicks:)。之后如果想换回 DecentHolograms,那些看板的文字还在,但点击动作会失效,display: 背景设定也会被忽略。换回去之前请备份。详见 看板文件。

/clh convert​

从其他全息插件的资料文件转换看板。

项目内容
用法/clh convert <插件> [文件]
权限dh.command.convert
控制台可以
参数必填说明
<插件>是要转换的插件,写法见下表(不分大小写)。
[文件]否资料文件的路径,从服务器根目录(放 server.jar 的文件夹)算起。不写就读下表的默认位置。文件名必须和下表一样(holograms.yml、database.yml、h.data),只有文件夹可以不同;路径里不能有空格。
插件可以写成读取的文件支持程度
CMICMIplugins/CMI/Saves/holograms.yml(找不到时用 plugins/CMI/holograms.yml)部分
HolographicDisplaysHolographicDisplays、hdplugins/HolographicDisplays/database.yml完整
FutureHologramsFutureHolograms、fh、fhologramsplugins/FutureHolograms/holograms.yml部分
GHoloGHolo、ghplugins/GHolo/data/h.data完整
HologramsHologramsplugins/Holograms/holograms.yml部分

「部分」的插件转换时会提示 注意:… 的支持有限!。转换完成后会显示总数与成功 / 跳过 / 失败的数量:

[CloudHologram] 正在从 HolographicDisplays 转换看板……
[CloudHologram] 已转换 8 个看板,耗时 35 毫秒!
[CloudHologram] - 成功 7 个
[CloudHologram] - 跳过 1 个
[CloudHologram] - 失败 0 个

例子

/clh convert hd # 从 HolographicDisplays 转换
/clh convert CMI # 从 CMI 转换
/clh convert hd old_server/plugins/HolographicDisplays/database.yml # 读旧服务器复制过来的文件
  • [文件] 指到的文件不存在、或文件名不对时,这次转换算失败,控制台会提示需要的文件名(例如 Invalid file! Need 'database.yml')。

共同规则​

  • 只转换位置与每一行的文字(以及 CMI、FutureHolograms 的分页)。原插件的点击指令、权限、显示距离、行距、动画等设定都不会转换,转换后请用云全息的功能重新设定。
  • 转换出来的看板会马上存进 holograms/ 并显示,不需要重载。
  • 和现有看板同名的会跳过(计入「跳过」),控制台显示 already exists, skipping。
  • 看板所在的世界必须已经载入,否则该看板计为「失败」(控制台显示 Invalid location)。
  • 不会修改或删除原插件的文件,可以重复执行(已经转换过的会因为同名而跳过)。
  • 有分页的看板,每一页都会加上「左键上一页、右键下一页」。

各插件的转换细节​

HolographicDisplays

  • 支持 2.x 的 location: 写法与 3.x 的 position: 写法。
  • {papi: 变量} 会转成 %变量%。
  • ICON: 物品 会转成 #ICON: 物品;{empty} 会转成空白行。
  • HolographicDisplays 的其他内置变量(例如 {online})不会转换,请换成对应的 PlaceholderAPI 变量。

GHolo

  • 读取 h.data 里 H 区块下的每个看板(位置 l、内容 c)。
  • [x]、[X] 转成 █,[|] 转成 ⎹。
  • ICON:、ENTITY: 开头的行会加上 #,变成云全息的物品 / 实体行。
  • GHolo 的渐变写法 [#AAAAAA 文字 #BBBBBB] 会转成 <#AAAAAA>文字</#BBBBBB>。只有中间是一个英文单词(只含英文字母、数字、_,不含空格和中文)的渐变才会被转换,其他的请手动改成同样的 <#AAAAAA>文字</#BBBBBB> 写法。

CMI(部分支持)

  • 读取每个看板的 Loc 与 Lines;遇到 !nextpage! 就分成下一页,每一页保留自己的内容。
  • ICON: 开头的行会加上 #。
  • 名称以 #>、#< 结尾的看板(CMI 自动产生的翻页按钮)会跳过。
  • 每一个转换出来的看板都会加上「左键上一页、右键下一页」,即使只有一页。

FutureHolograms(部分支持)

  • 读取每个看板的 location,其下除了 default、refresh、cooldown、refreshRate、location 以外、有 lines 的子区块,各变成一页。
  • 位置无效的看板计为失败(控制台的提示文字写成 Skipping auto-generated …,不用理会这个字面)。

Holograms(部分支持)

  • 读取 holograms 区块下每个看板的 location(以 ; 分隔)与 lines。
  • ITEM: 开头的行会转成 #ICON:。

转换后检查清单​

  1. /clh list:看板数量对不对。
  2. /clh validate:格式全部通过,也会列出位置写错、名称不合规则的看板,见 /clh validate。
  3. 看板名称:原插件允许的名称可能有中文、空格或特殊符号,这种看板虽然这次转换成功,但下次重启时会被跳过(文件名不符合规则,/clh validate 会提示「文件名只能用英文字母、数字、_、-,这个文件不会被载入」)。请立刻用 /clh hologram rename <旧名称> <新名称> 改成英文、数字、_、-。
  4. 走到几个看板旁边看:
    • 颜色有没有正确显示(Spigot 服务器不支持 MiniMessage,见 颜色与格式)。
    • 行距是否合适,需要时用 /clh line height 调整。
    • 物品 / 头颅行是否正确,写法见 行类型。
  5. 重新设定点击动作、权限、显示范围(原插件的这些设定不会转换)。见 点击动作、看板指令。
  6. 确认没问题后再移除原插件。依赖原插件的其他插件(例如依赖 HolographicDisplays 的插件)不会因此改用云全息,需要那些插件本身支持 DecentHolograms。