切换

切换

在一个世界里玩多个角色!可选择加入、可定制的玩家档案,适用于热座多人游戏、实况游玩、多元系统、角色扮演服务器,或者纯粹为了好玩!

基础库

模组预览 面向热座多人游戏、冒险地图和多元系统的服务端玩家档案。
在 (neo)forge 上需要 Connector 和 FFAPI。

Switchy 允许玩家创建并切换玩家档案,这些档案会保存其部分玩家数据。

这既是数据驱动的,也是玩家可自定义的。这里有一个使用了 Styled Nicknames 和 Fabric Tailor(+SCH)的档案:
组件
内置(通过数据)支持 Lampblack Pronouns、Trinkets/Accessories、Pehkui(宽度/高度)和 Origins。

你甚至可以流畅地使用其他档案的显示名称聊天,就像 PluralKit 一样:
聊天标签
这与行为良好的聊天桥接工具完全兼容,例如我们的 cantilever fork!

使用

免责声明:所有操纵玩家数据的模组都存在存档损坏风险!
请始终备份你的世界,尤其是在更新模组时。

只需运行 /switchy 并按照提示操作! 这涵盖了重命名、切换组件和创建新档案。

之后,你可以通过 /switch <名称> 或在档案列表中点击 <switch> 自由切换档案。
切换到某个档案会将组件数据恢复到该档案上次使用时的状态。
因此,例如要更改某个档案的 fabric tailor 皮肤,请先切换到该档案,设置皮肤,然后切换出去。

你可以使用 /switchy say 以特定档案的身份发送聊天消息。
使用 /switchy edit <名称> tag <前缀>文本<后缀> 根据模式匹配常规聊天消息。
显示名称与样式化昵称/聊天略有不同,因此只需调整它们的配置以匹配即可。

档案是按世界保存的,因此通过运行 /switchy export 来获取你的名称/皮肤数据并保存到 .json 文件可以加快速度。
要导入,请上传文件(例如到 tmpfiles.org)并将链接粘贴到 /switchy import all <url> 中。
你也可以从 PK 导入(并从 / 导出到 Utter)- 使用 /switchy import <成员/群组> 来过滤导入。

兼容性

注意:如果 Switchy 导致你的 1.20 整合包崩溃,请将 config/switchy.toml 中的 fastSingleplayerReconnect 设置为 false

为了与新模组兼容,组件定义如下:

// data/minecraft/switchy_components/inventory/ender_chest.json (minecraft:inventory/ender_chest)
{
  "enabled": true, // 是否加载该组件。请使用此选项而不是删除默认文件,因为它们会重新生成。
  "codec": "inventory", // 使用哪个编解码器(来自 SwitchyComponentTypes 注册表)来反序列化数据。默认为 "nbt"(直通)
  "path": "EnderItems", // 指向 player.dat 中要加载/修改部分的 NBT 路径
  "preview": "inventory", // 在聊天中使用哪个文本预览器(来自 SwitchyComponentTypes 注册表)。null = toString(),对于长数据使用 "trunc"。以 $ 开头可使用 NBT 路径用于直通组件。
  "prefix": "👁 ", // 添加到文本预览的前缀,以便一目了然
  "emptyChecker": "inventory", // 使用哪个空检查器(来自 SwitchyComponentTypes 注册表)来防止因珍贵数据而删除档案。以 $ 开头可使用 NBT 路径用于直通组件。
  "group": "inventory", // 具有匹配组 ID 的组件将被预览和切换,如同一个组件一样
  "default": [], // 默认值。JSON 序列化。设置为 "$copy" 以从上一个复制值。设置为 null 或省略以将初始值从玩家数据中删除该键。
  "hidden": false // 在档案列表中隐藏组件预览(仍显示在组件列表中)
}

欢迎将组件(以及无依赖的预览器等)PR 到主模组中 - 请参阅现有示例。

切换玩家 NBT 之外的数据需要附加组件。API 待定 - 有兴趣的附加组件开发者可以访问问题页面。

结语

如果你是一个多元系统(或多元系统的朋友)并且欣赏我们的工作,请考虑阅读并分享 sys.guide,我们的多元性手册。

Switchy 是我们的第一个原创 Minecraft 模组,制作于模组开发活动 ModFest: Singularity 期间。
自从制作它以来,Minecraft 模组社区给予我们友谊、指导、
无尽的帮助、自我表达的渠道,并坚定了我们将软件视为艺术的热情。
所有参与其中的人 - 你们应该知道你们是谁 - 谢谢。