Skip to content

About

服务器玩法核心

Topics

Resources

Stars

1 star

Watchers

1 watching

Forks

Repository files navigation

YouzaiWorldCore — 悠哉世界核心模组

Banner

Organization Minecraft Version Mod Loader License Download Latest Build

简体中文 | English

📖 项目概述

YouzaiWorldCore 是悠哉世界(Youzai World)Minecraft 多人服务器的核心玩法模组,基于 Fabric 框架开发,深度集成 LuckPerms 权限系统与 Placeholder API。模组为服务器提供完整的基础设施,涵盖账户认证、GUI 菜单、YZUI 界面系统(物品栏 / HUD / 配方书全面重绘)、自定义物品与方块、坐姿交互、维度池、传送锚点与传送卷轴、魔力系统、AFK 挂机检测、隐身管理、冒险等级与属性成长、附魔等级语言补丁、拾取显示、世界增强(带电苦力怕 / 末影龙掉鞘翅 / 末地传送门 / 监守者战利品 / 切石机伤害 / 试炼宝库无限领奖等)、宠物系统、物品高亮与边框、邮件信箱、自定附魔(12 个)、饰品槽集成与 YZUI 饰品交互、音乐唱片、Meme 画作、老吴贴贴彩蛋、Technoblade 纪念皇冠、配置导入导出、新手教程、聊天框位置优化等 40 余项核心能力。

目标用户群体

用户类型 说明
服务器管理员 通过命令和菜单管理系统,配置维度池、账户策略、宠物备份、邮件公告、事件开关等
生存玩家 使用悠哉系列工具、成就系统、传送锚点、坐姿交互、魔力法杖、宠物与属性成长、YZUI 界面与饰品槽进行游戏
模组开发者 了解模组架构、扩展功能或贡献代码

版本说明:本模组面向 Minecraft Java 26.2。26.1 起 Mojang 采用新的命名/源码规则,游戏 jar 已去除混淆,可直接反编译参考最新实现。


✨ 功能介绍

1. 账户认证系统

为离线模式服务器提供完整的密码认证,通过 Mixin 拦截实现未认证行为的全面限制。

  • 密码安全:Api 服务端使用 PBKDF2-HMAC-SHA256 加盐哈希,模组不保存或验证密码;5 次登录尝试上限
  • 登录冷却/锁定:失败 5 次后触发,默认冷却 300 秒(5 分钟);支持永久锁定、限时冷却、永不锁定三种模式,管理员可通过命令解锁
  • 连接认证:玩家每次加入服务器都必须重新输入密码;登录后的短期令牌仅用于当前连接校验,断线即撤销
  • 正版 UUID 登录:服务器 online-mode=false 时,安装本模组的正版客户端会在登录阶段使用 Mojang 会话挑战完成验证;验证成功后玩家实体、账户数据、世界存档和其他按 UUID 保存的数据均使用 Mojang 分配的 UUID。离线客户端、未安装客户端模组或 Mojang 服务不可用时继续使用离线 UUID;服务器 online-mode=true 时沿用原版在线认证,不重复发起本模组查询
  • UUID 绑定规则:正版验证成功后,Api 账户会固定为 Mojang UUID;已绑定正版 UUID 的账户名不会允许其他离线 UUID 登录,以避免账户数据在两种 UUID 之间来回漂移。旧离线 UUID 关联的外观、邮件引用、个人配置和世界数据不会自动迁移,请管理员在切换前自行备份并处理
  • 位置保存/恢复:登出时保存位置 → 传送至末地虚空;登录后精确保留位置恢复
  • 登录大厅:未认证玩家被限制在 youzaiworldcore:login_hall 自定义维度,Mixin 阻止移动、交互、攻击、聊天
  • 登录/注册 GUI:未认证玩家进入登录大厅时客户端自动弹出注册/登录界面(RegisterScreen / LoginScreen,用户名只读预填,支持 Enter 登入与断开连接),服务端经 OpenAuthScreenPayload 推送;Api 启用“注册需邮箱验证”后会自动进入 RegistrationEmailScreen,完成验证码发送、重发倒计时与校验注册;已绑定邮箱的账户可从登录页进入 PasswordResetScreen,验证绑定邮箱后重置密码
  • 暂停菜单账户管理:暂停菜单右侧玩家模型下方提供“账户管理”入口;AccountManagementScreen 可更改密码、通过“当前密码 + 新邮箱验证码”换绑唯一邮箱,或经二次确认永久注销账户。敏感字段通过专用数据包发送且由服务端登录令牌再次鉴权,不进入聊天命令
  • 隐身联动:隐身状态下禁止执行登出、注销、改密等敏感操作
  • 账户注销联动:账户注销/删除时同时清空其邮件信箱(MailManager.onAccountDeleted)
  • 自定义皮肤与披风:离线账户可从 yzwc/client/config/cosmetic_module/ 上传 skin.png(宽模型)、skin_slim.png(细模型)和 64×32 的 cloak.png;模组校验后上传到 Api 服务端保存并同步给其他在线玩家,不在 Minecraft 服务端保留文件回退;正版账户通过 Mojang 会话挑战核验后自动使用其正版皮肤与披风,并忽略本地外观文件上传

2. GUI 菜单系统

Windows 10 开始菜单风格的磁贴布局,支持页面切换与动画过渡。

菜单 ID 名称 说明
main 主菜单 功能总入口:切换世界、活动、等级、教程、邮件、设置等
switch_world 切换世界 11 个世界按钮,前 7 个集成维度池系统
settings 设置 音乐/音效开关、PVP/友军伤害、难度选择(客户端)
about_me 关于我 3D 玩家模型渲染、ID、加入/游玩时间

快捷键:Shift + F 打开主菜单。

称号系统

  • 玩家管理:主菜单「称号」按钮打开称号管理页,可查看已拥有称号、分页选择佩戴或卸下;列表会随窗口高度自动调整每页数量
  • 注册默认称号:新开服后首次完成注册的账户自动获得并佩戴「萌新求饶」;已有账户不回填,管理员回收后也不会因普通账户更新而重新发放
  • 管理员称号:LuckPerms 节点 youzaiworldcore.admin.junior / .middle / .senior 分别对应初级、中级、高级管理员称号,只授予玩家命中的最高一级;未安装 LuckPerms 时,原版管理员权限等级玩家获得全部三级管理员称号。称号仅为外观,不会反向授予任何命令权限
  • 显示位置:样式化聊天关闭时显示在聊天发送者名称右侧;开启时可在聊天模板中使用 ${title} 自定义位置;Tab 玩家列表显示在 AFK 标记与玩家名左侧;玩家实体名称牌下方使用独立渲染状态显示,不创建或修改原版记分板目标
  • 文字与贴图:称号定义支持文字、贴图字体字符及文字 + 贴图组合;内置贴图通过 youzaiworldcore:title 位图字体加载,服务器可通过强制资源包确保客户端资源一致
  • Api 权威数据:称号目录、玩家授权来源与当前佩戴状态保存在 Api 服务端 SQLite;Minecraft 服务端通过 HMAC 接口在登录、注册完成、手动刷新和每 60 秒周期同步。后台「玩家称号」页可创建/编辑/启停称号、手动给予或回收,以及修改玩家佩戴状态;注册、手动、权限三种授权来源相互独立

3. 标题界面改造

通过 TitleScreenMixin 对 Minecraft 主菜单进行了全面改造:左侧面板自定义按钮(加入服务器 play.mcyzw.top / 选项 / 退出游戏)、右侧公告 + 更新信息块(标题/版本/时间/内容/下载/忽略按钮,含淡入动画)、渐变背景(GradientBackgroundUtil)、Mojang Logo 替换为自定义资源,以及开发者模式下的测试页按钮。「加入服务器」在检测到强制更新时拦截并弹出 ForcedUpdateScreen。

4. 窗口定制化

  • 自定义窗口图标:运行时通过 Java ImageIO 加载 jar_icon.png 替换任务栏与标题栏图标
  • 自定义窗口标题:WindowTitleMixin 拦截 Window.setTitle(),标题替换为 Youzai World Server · Wanderer v<版本> | [Minecraft JAVA 26.2]
  • 退出确认:MinecraftQuitMixin 劫持窗口关闭事件,点击标题屏「退出游戏」或窗口 X / Alt+F4 时弹出确认对话框(QuitConfirmationScreen),确认后才真正退出
  • 原地重生:死亡界面将原版重生按钮拆分为左右两半;配置允许的维度可消耗原版经验等级在死亡坐标复活,保留物品栏、不消耗守护之心并获得 10 秒抗性 V。费用按账户累计成功次数计算:floor(log2(本次累计次数 + 1)) + 5,首次为 6 级。配置位于 yzwc/server/config/global_settings.json 的 respawn_module 分节,默认仅对 survival_world_pool 维度池开启

5. 悠哉系列工具与物品

一套全新的矿物与工具系列,等级对标钻石工具(耐久 1800,挖掘速度 8.0,附魔等级 10)。

物品 特殊效果
悠哉铲 / 悠哉镐 潜行挖掘连锁前方 6 个同类方块
悠哉锄 潜行使用耕 3×3 区域
悠哉剑 4% 概率触发暴击,伤害翻倍
悠哉斧 跳劈对 3 格范围内敌人造成 50% 横扫伤害
守护之心 携带时死亡不掉落物品(Mixin 实现),每次消耗 1 个;剩余 10/5/3/2/1 时警告
凭虚法杖 右键切换飞行,每秒消耗 1 点耐久(最大 600),每 5 秒消耗饥饿值;耗尽自动关闭
烈焰法杖 蓄力发射火焰激光,消耗 10 魔力
天星法杖 召唤陨石攻击,10 方块半径,消耗 60 魔力
传送石 右键打开传送列表(与传送锚点共用 GUI),传送消耗经验/耐久
原石 / 甜甜玛德琳 Genshin 主题材料(primogem / sweet_madame),收录于「悠哉世界 → 材料」分组
《云·原神》音乐唱片 Epic 稀有度,47 秒宣传曲,基于 MC 26.2 JUKEBOX_PLAYABLE 数据组件 + JukeboxSong datapack 注册表实现
Meme 画作(×12) 12 张自定义画作(meme_01–meme_12),Uncommon 稀有度,收录于「悠哉世界 → 画作」分组

6. 自定义方块

方块 特性
悠哉矿 / 深层悠哉矿 主世界生成,掉落经验 2–5,需钻石镐
悠哉原矿块 / 悠哉块 矿物存储方块
分解台 GUI 分解物品为原材料
飞行信标 9.56 方块半径内提供飞行,激活时发光(亮度 12)
传送锚点 激活后右键打开传送列表,支持命名/排序/删除/复制坐标(亮度 15)

7. 坐姿交互系统

右键点击楼梯(StairBlock)或台阶(SlabBlock)即可坐下,无需命令或特殊物品。

  • 触发条件:主手为空 + 右键楼梯/台阶(无需潜行)
  • 实现方式:创建不可见、无碰撞箱的 SeatEntity 作为载具 → 玩家骑乘(startRiding)
  • Y 轴定位:楼梯下半部分/台阶下半部分 → 坐高 +0.5;楼梯上半部分/台阶上半部分/双层台阶 → 坐高 +1.0
  • 离开座位:原版潜行下马机制(removeVehicle)
  • 实体自毁:无乘客时自动销毁

8. 魔力系统

全新的魔力值系统,为特殊法杖提供能量。

  • 最大魔力:100
  • 自动恢复:每 20 tick(1 秒)恢复 1 点
  • 客户端 HUD:ManaHudRenderer 渲染魔力条
  • 网络同步:每 5 tick 通过 ManaSyncPayload 向客户端同步
  • 消耗途径:烈焰法杖(10 魔力/次)、天星法杖(60 魔力/次)

9. 传送锚点系统

基于方块的玩家自主传送网络,右键交互即可命名、保存和远程传送。

  • 方块:tp_anchor,激活后发光(亮度 15),由 TeleportAnchorBlockEntity 管理激活者集合
  • 激活流程:右键未激活锚点 → TeleportAnchorNameScreen 命名界面(最多 32 字符)→ 粒子效果 + 音效
  • 传送流程:右键已激活锚点 → TeleportAnchorScreen 列表(显示维度池标签、维度、坐标)→ 选择目标 → 传送
  • 消耗与冷却:同维度 1 级经验 / 跨维度 2 级经验(创造免费);3 秒全局冷却
  • 维度池隔离:锚点激活时记录所在维度池(poolId),跨池传送进行归属校验
  • 编辑功能:重命名、上移/下移排序、删除、一键复制坐标到剪贴板
  • 数据持久化:基于 SavedData,服务端重启不丢失
  • 渲染:TeleportAnchorBlockEntityRenderer 通过 RenderState + 程序化自定义几何体(queue.submitCustomGeometry)绘制逐玩家纹理,无外部模型文件
  • 村庄结构注入:VillageStructureInjector 替换 5 种原版村庄(平原/沙漠/热带草原/雪原/针叶林)的 town_centers 模板池,注入带传送锚点的自定义集会点结构(基于原版 Jigsaw / 模板池 API)
  • 命令支持:/yzwc teleport_anchor list [player] 列出传送点(含可点击传送链接)

10. 维度池系统

多世界服务器的独立状态池系统——不同池之间玩家拥有独立的背包、生命、效果和游戏模式。

  • 7 个预定义池:生存世界(含 overworld/nether/end)、主城、玩法、创造、建筑、指令区、教程世界
  • 池切换流程:检查目标池 → 保存当前状态到源池 → 清空背包 + 移除效果 → 加载目标池历史状态 → 传送 → 强制游戏模式
  • 默认出生点:每个池可配置玩家死亡后首次传送回的降落坐标
  • 跨池传送:支持维度传送门、命令传送、复活事件等多种触发
  • 数据存储:池配置在 yzwc/server/config/global_settings.json 的 dimensional_inventories_module.pools,玩家状态 <world_name>/data/yzwc/data/dimensional_inventories_module/<pool-id>/<uuid>.json

11. 隐身系统

创造模式下的欺骗性隐身,从其他玩家的 Tab 列表和视野中完全消失。

  • 命令:/yzwc function invisibility <true/false>(需 OP 4 或对应权限;客户端命令,经 InvisibilityPayload 转发)
  • 行为:伪装退服消息 → Tab 列表移除 → 视野中移除实体 → 显示白色 Boss 栏"隐身中"
  • 8 个 Mixin:抑制隐身玩家产生的粒子、音效、方块事件、容器动画(箱子/木桶/末影箱/潜影盒/饰纹陶罐)
  • Tick 检查:每 10 tick 检测是否退出创造模式,自动强制关闭

12. 冒险等级与属性系统

基于玩家行为的经验等级系统,并提供可分配的属性成长,二者共享同一成长框架。

  • 冒险等级(经验)
    • 经验获取途径:挖掘 50 方块(+25)、放置 50 方块(+25)、死亡(+10)、守护之心保护(+50)、不死图腾触发(+500)、完成进度(+50)
    • 升级公式:C = 200 + 20 × log₁₀(2n)²⁰(n 为当前等级,n ≥ 1;低等级 n≤5 时 C≈200–220,之后随 log₁₀(2n)²⁰ 幂律快速增长,n=10 约 4000,高等级触及 Int 上限)
    • 网络同步:LevelExpSyncPayload(S→C)同步经验值
  • 属性系统
    • 升级获得的属性点可通过 /yzwc 属性菜单(GUI 元素)分配,映射到 10 项原版属性:MAX_HEALTH、MOVEMENT_SPEED、JUMP_STRENGTH、LUCK、ATTACK_DAMAGE、BLOCK_BREAK_SPEED 等
    • 客户端 HUD:AdventureLevelHudRenderer 渲染等级与属性
    • 网络同步:AttributeSyncPayload(S→C)同步属性数据;AttributeUpgradePayload(C→S)请求加点
    • 存储:yzwc/server/data/skill_module/data.json 的 levels 与 attributes 两块(按玩家 UUID 持久化)

13. 占位符系统

集成 Placeholder API,注册 %luckperms_*% 命名空间,提供 32 个占位符(11 个静态 + 21 个动态参数型):prefix、suffix、meta、meta_all、prefix_element、suffix_element、context、groups、inherited_groups、primary_group_name、has_permission、inherits_permission、check_permission、in_group、inherits_group、on_track、has_groups_on_track、highest_group_by_weight、lowest_group_by_weight、highest_inherited_group_by_weight、lowest_inherited_group_by_weight、highest_group_weight、current_group_on_track、next_group_on_track、previous_group_on_track、first_group_on_tracks、last_group_on_tracks、expiry_time、inherited_expiry_time、group_expiry_time、inherited_group_expiry_time 等。

14. 权限系统

基于 LuckPerms 的细粒度权限控制,自动回退至原版 OP 等级检查。模组内所有命令与功能均通过 luckperms/LuckPermsHelper 统一鉴权,提供 20+ 个独立权限节点,含 account.mgr.*、command.*、mail.*、* 通配符。

15. 创造模式标签页

本模组的物品统一收录于 「悠哉世界」一个创造标签页(youzaiworldcore:youzai_world),内部按七类折叠展示:

分组 内容
方块 悠哉矿物、功能方块、红石装置及全部大字牌
工具与武器 5 个悠哉系列工具 + 3 个法杖
材料 原矿、锭、粒、原石、甜甜玛德琳
实用物品 守护之心、隐形展示框、传送石、传送/返回卷轴、墨囊、音乐唱片
画作 12 张自定义 Meme 画作(meme_01–meme_12)
工具包 9 个预设潜影盒,保留名称、颜色和完整内容
附魔书 遍历 ModEnchantments.ALL,保留每种附魔的全部等级

七类分组从标签页的物品清单自动生成,已有客户端配置无需重置。为 youzaiworldcore:youzai_world 新增的自定义规则优先生效,剩余物品再按内置分类分组;关闭分组后,全部物品仍在这一个标签页中平铺显示。

创造物品分组

参考 Inventory Item Groups 实现可折叠分组,同时支持原版和 YZUI 创造物品栏。默认提供 102 条可编辑原版规则,另有上述 7 个悠哉世界内置分类及 4 条精妙背包兼容规则。点击带 + / − 的组头展开或收起,也可悬停后按回车或空格操作;展开后点击具体物品取用。

精妙背包(Sophisticated Backpacks)的 sophisticatedbackpacks:main 分栏按 背包、升级背包、堆叠升级、堆叠升级转换 分组。普通背包保留各染色变体,堆叠升级排除 _conversion,转换类单独匹配;已有配置无需重置,自定义规则优先。

展开与收起带约 200 毫秒的缩放和轻微位移过渡,组头略微放大、加减标记旋转切换;连续点击可从当前进度反向播放。收起中的成员只用于展示,动画结束后再移除并更新滚动范围。

在 YouzaiWorldCore 设置 → 视觉 → 创造物品分组 中可启用或停用、切换原序 / 物品 ID 排序、开启每秒轮播预览,以及新增、编辑、删除、调整规则优先级。规则支持标签页 ID、精确物品 ID、包含片段和排除片段。配置写入 yzwc/client/global_settings.json 的 inventory_item_groups_module;仅影响本机显示,保留药水、附魔书等全部组件变体,搜索、快捷栏预设和真实背包不折叠。详见 功能分析与配置说明。

16. 预设物品系统

创造模式「悠哉世界 → 工具包」分组中的九大预设潜影盒(PresetItems.createPreset01–createPreset09):

预设 颜色 内容
毕业套装 红色 满配下界合金装备、全附魔工具/武器、消耗品
毕业套补充 橙色 实用工具、建筑材料、额外防具
不死图腾 黄色 27 个不死图腾
炸药包 灰色 27 组 × 64 TNT
烟花火箭 粉红色 27 组烟花火箭
重锤套装 淡蓝色 3 把不同附魔配置的重锤(Mace)
附魔之瓶 黄绿色 27 组 × 64 附魔之瓶
末影珍珠 绿色 27 组 × 64 末影珍珠
七彩箭矢 淡灰色 普通箭 / 光灵箭 / 各类药水箭组合

17. 成就系统

两大进度分支,共 31 个成就(data/youzaiworldcore/advancement/):

  • 悠哉世界(youzaiworld/,21 个):获取悠哉系列材料(have_raw_yz / have_yz_ore / have_yz_ingot / have_yz_block)、制作工具(have_yz_series_tool / have_yz_series_all_tools)、使用分解台 / 飞行信标 / 守护之心 / 凭虚法杖(used_* / have_*)、发现传送锚点与传送网络(discover_teleport_anchor / teleport_network / village_teleport_network)、探索云原神遗迹与远古遗迹(discover_cloud_genshin_ruins / ancient_ruins)、完成全部新手教程(complete_the_tutorials)
  • 趣味小挑战(fun_little_challenge/,10 个):cake_is_a_lie(蛋糕是谎言)、foodie(美食家)、get_emerald_blocks(绿宝石块)、like_cows_and_pigs(像牛和猪)、max_luck(最大幸运)、stuck_in_cobweb(蜘蛛网)、tested_stonecutter(我成了建材——站在切石机上死亡)、way_home(回家之路)、wearing_copper_armor(铜盔甲)

18. 调试与配置

18.1 文件存放布局(服务端)

从本版本起,服务端所有配置 / 数据 / 备份 / 缓存文件统一收拢到游戏根目录下的 yzwc/server/, 需要随存档走的内容则放在 <world_name>/data/yzwc/。路径一律由 config/ModPaths 解析, 模块内不再手写散装路径。

<游戏根目录>/yzwc/server/
├── config/
│   ├── global_settings.json                # 全局配置(与世界无关),按功能模块分节
│   └── user_settings/
│       └── <玩家UUID>.json                 # 玩家个人配置(注册时创建,注销时删除)
├── data/
│   └── <模块名>/data.json                  # 各模块数据文件
├── backup/
│   └── <模块名>/*.zip                      # 各模块备份压缩包
└── temp/
    └── <模块名>/                           # 各模块缓存 / 临时文件(每次开服清空)

<存档目录>/data/yzwc/
├── config/ · data/<模块名>/ · backup/<模块名>/ · temp/<模块名>/

JSON 结构约定:所有配置文件都是「先按功能模块分类,再写该模块的配置项」:

{
  "pet_module": {
    "auto_backup_enabled": true,
    "backup_interval_seconds": 600
  },
  "afk_module": {
    "enabled": true,
    "threshold_seconds": 300
  }
}

新开服自动生成:首次启动(文件不存在)时会直接写出一份包含全部模块默认值的完整 global_settings.json,以及各模块数据文件,并建好 config/ data/ backup/ temp/ 四层目录骨架 —— 不需要先跑一遍服务器才知道有哪些配置项。 玩家个人配置文件在账户注册时创建,同样带上全部个人设置的默认值。

错误处理:不做配置迁移或容错回退。一旦读到结构 / 类型非法的配置:

  1. 把出错文件改名隔离为 <原文件名>.error(已存在则追加时间戳,绝不覆盖旧的隔离文件);
  2. 在原路径重新生成一份默认配置,给管理员一个正确格式的参照;
  3. 控制台打印「文件 / 位置 / 原因 / 隔离到哪 / 已重建哪个」;
  4. 直接崩溃退出,由管理员对照 .error 把改动搬回新文件后再启动。

若第 1 步改名失败(文件被占用等),则跳过第 2 步,绝不覆盖现场。

18.2 配置一览

配置 存放位置 内容
模组核心 yzwc/server/config/global_settings.json → core_module dev_mode_enabled、log_to_file(双开关控制 DebugLogger)
Api 网桥 global_settings.json → api_module Api 地址(生产环境为 https://api.mcyzw.top)、HMAC 共享密钥、请求超时(默认 10 秒)
账户与认证 Api 服务端 SQLite game_accounts / game_sessions 玩家代号、密码哈希、UUID、会话、登录冷却;模组仅保留运行期非凭据缓存
自定义外观 Api 服务端 SQLite game_cosmetics 皮肤和披风二进制数据;Minecraft 服务端不保存 PNG 文件
邮件数据 Api 服务端 SQLite game_mails / game_mail_refs 邮件正文(含附件)与每玩家收件箱引用;Minecraft 服务端不再保存邮件文件
玩家个人配置 yzwc/server/config/user_settings/<UUID>.json double_doors_module、function_module(7 个个人功能开关:梯子延展/作物经验/工具信息/方块动画/合成音效/物品闪光/伤害跳字)
客户端外部设置 config/youzaiworldcore/client_external_settings.json(客户端,未迁移) devModeEnabled、logLevel(0-3)、yzuiEnabled(YZUI 界面总开关)、调试地址/端口
DebugLogger util/DebugLogger 四级日志(OFF/BASIC/DETAILED/DEBUG),entering/exiting/branch/stateChange/exception 追踪
更新检查设置 global_settings.json → update_module enabled(开关更新检查,UpdateCheckerConfig)
试炼宝库设置 global_settings.json → trial_vault_module enabled(无限领奖开关,TrialVaultConfig,默认 true)
邮件设置 global_settings.json → mail_module 过期策略、权限节点/等级、附件上限、过期清理与未读刷新间隔
宠物设置 global_settings.json → pet_module 宠物备份间隔、保留份数、自动备份开关
AFK 设置 global_settings.json → afk_module 检测阈值、前缀/广播/无敌/自动踢出等
老吴贴贴设置 global_settings.json → laowu_meme_module 全局开关、冷却时间等
全局事件开关 global_settings.json → event_module 死亡音效 / 唱片机循环 / 幼年僵尸削弱 / 凋零头颅 / 三叉戟虚空保护 / 作物经验
带电苦力怕 global_settings.json → charged_creeper_module enabled、chance
末地传送门 global_settings.json → end_portal_module 精准采集要求 / 直接入背包 / 龙蛋提示
原地重生 global_settings.json → respawn_module 启用的维度池与独立维度列表
维度池 global_settings.json → dimensional_inventories_module pools 池定义列表
冒险等级/属性 yzwc/server/data/skill_module/data.json levels / attributes 两块,按玩家 UUID 持久化
宠物备份 yzwc/server/backup/pet_module/pet_backup_<时间戳>.zip 定时备份压缩包(内含同名 .json)
玩家统计数据 <world_name>/data/yzwc/data/status_module/data.json + Api game_player_stats 本地按月重置并保留待上传批次;首次上传完整快照,之后仅上传变化玩家和统计字段;Api 服务端按游戏 UUID 累计保存,不因本地月度重置而清零
维度池玩家状态 <world_name>/data/yzwc/data/dimensional_inventories_module/<池>/<uuid>.json 各池内玩家的独立背包与状态

19. 附魔等级语言补丁系统

对 Minecraft 语言文件(含原版、资源包与模组)中附魔等级与药水效力的渲染进行补丁的能力型系统,让高等级附魔以更直观的形式(如中文数字)展示。

  • API(EnchantmentLevelLangPatch):registerPatch 通用键谓词补丁;registerEnchantmentPatch / registerPotionPatch 注册附魔等级 / 药水效力专用渲染钩子;intToRoman 提供整数到罗马数字转换(1–3998,查表实现)
  • 中文数字补丁(ChineseExchange):将等级数字渲染为简体中文(一二三…)或大写中文(壹贰叁…),配套 NumResultCacheMap 缓存与 ValueTableHolder 数值表优化性能
  • 配置切换:EnchantmentLevelLangPatchConfig.setCurrentEnchantmentHooks / setCurrentPotionHooks 选择启用哪个补丁;IndependentLangPatchRegistry 以命名空间键(NamespacedKey)管理注册项
  • 客户端接入:EnchantmentLevelLangPatchMixin 将补丁注入语言加载流程
  • 用途:使中文玩家以「十级」「一百级」等中文数字阅读高等级附魔,避免罗马数字冗长难读

20. 拾取显示与伤害跳字系统

客户端即时反馈:拾取物品与经验时显示获得条目,实体受伤时在受击位置显示实际伤害跳字。

  • 处理链路:AddEntriesHandler 接收拾取事件并加入队列 → PendingPickupQueue 维护待显示条目 → DrawEntriesHandler 逐帧绘制
  • 条目类型:DisplayEntry 抽象基类,具体实现 ItemDisplayEntry(物品,含数量/堆叠信息)、ExperienceDisplayEntry(经验值)与 SubtitleDisplayEntry(字幕文本 + 方向指示,由 SubtitleCaptureHandler 捕获原版字幕事件后与拾取提示共享渲染区域)
  • 客户端接入:PickUpNotifyMixin 拦截拾取通知驱动显示;ClientNetworking 处理客户端网络相关逻辑
  • 伤害跳字:DamageNumberLivingEntityMixin 比较 LivingEntity#hurtServer 前后的生命值与吸收生命值,得到护甲、附魔、抗性和护盾结算后的实际损失;服务端经 DamageNumberPayload(S→C)同步受击位置,客户端 DamageNumberRenderer 使用 26.2 提交式世界渲染管线绘制上浮、横移并淡出的红色数字
  • 个人开关:/yzwc function damage_numbers [true|false] 控制自己是否接收伤害跳字,省略参数时查询;新玩家默认开启,状态按 UUID 持久化至 yzwc/server/config/user_settings/<UUID>.json 的 function_module 分节
  • 可见性与性能:仅向已开启且正在追踪目标的玩家同步;隐身目标不会向无关旁观者暴露位置。客户端最多保留 256 条跳字,并只渲染 64 格内的数字

21. 世界增强功能

一组原生集成、不依赖外部库的"世界微调"增强(灵感来自社区经典玩法),覆盖生物行为、掉落归集、末地机制、试炼密室与农业自动化:

  • 天然带电苦力怕(Naturally Charged Creepers):苦力怕进入服务端世界时,以可配置概率(chance,默认 0.1 / 10%)标记为带电状态。通过 Mixin 暴露的 DATA_IS_POWERED 实体数据写入,确保客户端闪电光环正确同步;数据标签去重避免区块重载重复判定。配置在 global_settings.json 的 charged_creeper_module 分节(enabled 默认 true、chance 默认 0.1,超出 [0,1] 直接报错退出)。命令:/yzwc event naturally_charged_creepers enable [true|false] / settings chance [double]
  • 紫颂果就近掉落(Chorus Fruit Drops Nearby):破坏紫颂植物后,其掉落的紫颂果会被就近传送至最近被破坏的紫颂植物位置(水平距离 < 20 格、2 秒时间窗内),避免果实散落满地
  • 末影龙鞘翅掉落(Dragon Drops Elytra):末影龙被击杀时额外掉落一个鞘翅并广播提示;击杀归属优先级:直接玩家 → 弹射物发射者(弓/弩/三叉戟)→ 30 格半径内最近玩家
  • 末地传送门增强:① 末地传送门框可被精准采集镐破坏并掉落(含已嵌末影之眼),同时清除激活的传送门方块;② 末影龙被击杀时向附近玩家额外给予一个龙蛋;③ 新增合成配方 craftable_end_portal(末影之眼 + 龙蛋 + 末地石 → 12 个末地传送门框)。配置在 global_settings.json 的 end_portal_module 分节,三项开关(精准采集要求 / 直接入背包 / 龙蛋提示)
  • 监守者战利品(Warden Loot):玩家击杀监守者时直接发放 300 经验,并掉落 bundle 战利品(含尖啸催生体、下界合金碎片/钻石/金锭等随机池、远古城市风格物品、附魔书——50% 迅捷潜行 I–III / 50% 灵魂疾行 I–III,受抢夺附魔加成)。由 WardenDeathHandler(ServerLivingEntityEvents.AFTER_DEATH)实现,取代脆弱的数据包 tick 扫描
  • 切石机伤害(Stonecutter Damage):站在切石机方块上会受到持续伤害——首次站上立即造成 1 颗心伤害,之后每 1.5 秒(30 tick)一次,直至离开;死亡显示自定义消息"尝试用身体测试切石机的锋利度",并授予「我成了建材」成就。创造/旁观模式免疫。由 StonecutterDamageHandler(分时扫描 + 独立计时器,性能优先)实现
  • 试炼宝库无限领奖(Trial Vault)★新增:移除试炼宝库「每玩家仅可领奖一次」的限制,同一玩家可对同一宝库反复插钥匙领奖。由 VaultServerDataMixin 精确注入 VaultServerData#hasRewardedPlayer(恒返回 false)与 #addToRewardedPlayers(取消写入)实现,而非通配 Redirect。配置在 global_settings.json 的 trial_vault_module 分节(enabled 默认 true)。命令:/yzwc event trial_vault enable [true|false]。参考 trial-chamber-time-removal 设计思路,原生重写、无前置依赖
  • 骨粉催熟甘蔗(Bone Meal Sugar Cane)★新增:手持骨粉右键甘蔗可将其催熟一格(上限 3 格高);同时注册发射器行为(BoneMealSugarCaneDispenserBehavior),发射器装骨粉亦可催熟正对的甘蔗,便于自动化农场
  • 混凝土粉末遇水固化(Concrete Powder Solidify)★新增:混凝土粉末以掉落物实体形式落入水中时自动固化为对应颜色的混凝土物品实体(原版仅方块形态固化)。ConcretePowderSolidifyHandler 每 20 tick(1 秒)扫描一次以控制性能,颜色映射表在初始化时由注册表构建
  • 幼年僵尸削弱(Baby Zombie Weakening)★新增:降低幼年僵尸的生成速度与最大生命值,ZombieFinalizeSpawnMixin 在实体生成时削减属性
  • 唱片机循环(Jukebox Loop)★新增:唱片机播放完毕后自动循环当前唱片,而非弹出唱片。JukeboxLoopMixin 在 JukeboxBlockEntity tick 中注入循环逻辑
  • 合成音效(Craft Sound)★新增:从合成结果槽取出成品时播放对应物品的合成音效,替代原版静默取出。ResultSlotOnTakeMixin 在物品被取走时注入音效
  • Meme 画作掉落(Painting Drop)★新增:破坏本模组自定义 Meme 画作时掉落对应的画作物品(原版画作破坏后不掉落物品)。MemePaintingDropMixin 在画作实体被破坏时注入掉落逻辑
  • 跳过实验性警告(Experimental Warning Skip)★新增:创建世界时自动跳过"实验性玩法"警告弹窗,提升开发/测试效率。ExperimentalWarningSkipMixin 拦截对应屏幕
  • 铁锭修复铁砧(Anvil Repair)★新增:潜行手持铁锭右键铁砧,消耗 1 个铁锭将铁砧按「严重破损 → 损坏 → 正常」逐级修复,保持朝向。由 AnvilRepairHandler(UseBlockCallback)实现
  • 死亡音效(Death Sound)★新增:玩家死亡时在原版音效之外叠加播放随机全局音效,从 10 种变体(玩家死亡 / 通用死亡 / 末影龙死亡 / 雷声 / 钟声 / 监守者死亡 / 传送门等)中随机。由 DeathSoundHandler(ServerLivingEntityEvents.AFTER_DEATH)实现,可在 event_module 中开关

22. AFK 挂机检测系统

服务端每 20 tick 检查玩家活动,默认无操作 300 秒进入 AFK。状态只在本次连接中保存,掉线即清理。

  • 检测模式:BOTH 默认优先采用客户端输入,超过 100 tick 没有心跳时回退位置/视角采样;SERVER 只用服务端采样;CLIENT 无心跳时不自动判定。聊天与命令在所有模式中都算活动。
  • 一致的恢复规则:进入与退出使用同一检测通道。客户端通道有效时,流水、矿车等被动移动不会反复触发挂机/返回;无客户端通道时,服务端仍无法区分主动与被动移动。
  • 输入判定:只记录新的按键按下、鼠标点击/滚轮和世界内实际鼠标移动;长按重复、按键释放、界面内悬停、聊天框未发送的文字及鼠标重新捕获不算活动。打开物品栏/聊天框、截图、切换视角按当前键位绑定排除。
  • 手动切换:/yzwc afk 发送前先同步输入序号,切换后旧心跳和回车释放不会立即取消 AFK。新的有效操作仍可恢复,无固定等待期。退出后重新开始完整的空闲计时。
  • 显示:prefix 为 Tab 与头顶共用文本(默认 "[AFK] ",最多 64 字符,不允许换行);tab_prefix_enabled 和 nametag_prefix_enabled 分别控制两处显示,均默认开启。状态变化、加入服务器和配置重载时同步。
  • 无敌:invulnerable_enabled 默认关闭。开启后直接拦截 AFK 玩家的伤害(包括饥饿、虚空与 /kill 的伤害),不添加、删除或覆盖原有抗性药水;退出或关闭配置后立即失效。
  • 踢出与广播:broadcast_enabled 默认开启;auto_kick_seconds 默认 0(关闭),从进入 AFK开始计时。例如阈值 300 秒、踢出 900 秒,正常 20 TPS 下约在最后活动后 20 分钟踢出。正数须不小于检测阈值;低 TPS 时按服务端 tick 延长实际等待时间。
  • 命令(服务端):
    • /yzwc afk —— 手动切换自身 AFK,默认所有人可用。
    • /yzwc afk status —— 查询自身;status <player> 和 list 需要管理权限。
    • /yzwc afk settings <key> <value> —— 管理员运行时修改并保存;/yzwc reload 同样会重载 AFK 配置并同步在线状态。
  • 配置:yzwc/server/config/global_settings.json → afk_module,字段包含 enabled、detect_mode、threshold_seconds、tab_prefix_enabled、nametag_prefix_enabled、prefix、broadcast_enabled、invulnerable_enabled、auto_kick_seconds、manual_toggle_enabled。命令接受这些完整键名,也保留 threshold、tab_prefix、nametag_prefix、broadcast、invulnerable、auto_kick、manual_toggle 简写。prefix 命令的剩余文本按原样保存,不额外添加引号。
  • 更新与检测边界:两端应同时更新,以使用带输入序号的 afk_heartbeat_v2 和带名字牌前缀的 afk_state_v2;发送前会检查对端通道支持。客户端活动仍属于自报信号,本功能不提供反作弊保证。
  • 回归检查:python3 tools/verify_afk.py --java-home <JDK25路径> 在临时目录执行状态机、配置及输入过滤检查;联机验证步骤见 AFK 验证说明。

23. 传送卷轴系统 ★新增

一次性消耗品,右键蓄力 5 秒后打开传送列表(与传送锚点共用 GUI),传送成功后整张销毁。

  • 物品:warp_scroll(传送卷轴)、return_scroll(返回卷轴),stacksTo(16)
  • 蓄力中断:蓄力期间受到伤害中断,由 TeleportStoneChargeHandler 统一处理
  • 传送卷轴(Warp Scroll):右键蓄力 5 秒 → 打开传送列表(与传送石共用 GUI)→ 选择目标传送 → 消耗 1 张 + 120 秒物品冷却,免 XP/耐久
  • 返回卷轴(Return Scroll):右键蓄力 5 秒 → 自动寻找当前维度最近已激活锚点并传送 → 消耗 1 张 + 60 秒冷却;无可用锚点时动作栏提示但不消耗
  • 冷却机制:通过 ServerPlayerGameModeCooldownMixin 实现物品级冷却,与末影珍珠共用冷却框架

24. 魔力台 ★新增

装饰性方块(magic_table),作为服务器大厅/功能区的视觉点缀。

  • 外观:四面自定义贴图,自发光 2 级(RenderShape.MODEL)
  • 属性:硬度 5.0,爆炸抗性 1200(对齐原版附魔台),需用镐挖掘
  • 用途:纯装饰,无可交互 GUI;收录于创造标签页的「悠哉世界 → 方块」分组

25. 老吴贴贴彩蛋系统 ★新增

服务器娱乐彩蛋——两只猫在特定条件下触发贴贴动画、音效与全服粒子特效。

  • 触发条件:两只已驯服的猫(其中一只精确命名为「老吴」)在 6 格内,且有随机冷却(默认 180 秒,可配置)
  • 效果:Geo 骨骼动画、三首内置音效(laowu2.ogg / qiliang.ogg / zhanhou.ogg)随机播放、全服粒子广播;右键任一只可提前释放配对(恢复 AI + 进入冷却)
  • 实现:LaowuMemeHandler 每 10 tick 扫描 + 客户端 Geo 模型渲染;服务端选曲确保全体玩家同听(避免各播各的)
  • 命令:/yzwc event laowu enable [true|false] / settings cd [seconds](全局开关与冷却)
  • 配置:yzwc/server/config/global_settings.json → laowu_meme_module(LaowuMemeConfig);客户端音频启用状态存于 yzwc/client/global_settings.json → laowu_meme_module.disabled_sounds

26. 双开门系统

仅支持「同材质木门 / 栅栏门」点击双开的精简实现,按玩家独立开关。

  • 触发方式:徒手右键门 / 栅栏门,DoorBlockMixin / FenceGateBlockMixin 在 useWithoutItem 完成原版开关后调用 DoubleDoorsHandler.onDoorClick;潜行时禁用双开,仅保留原版单开
  • 配对规则:在 3×3 水平范围内搜索相邻、同类型(同为 DoorBlock 或同为 FenceGateBlock)、显示名(材质)相同的配对门,统一同步为被点击门的开合状态;不做递归(仅相邻双开)
  • 支持范围:木门(含双层)、栅栏门(自动对齐朝向);铁门等无法徒手开启的方块、活板门、红石触发、村民 AI、连锁开门均不在范围内
  • 玩家独立开关:/yzwc function double_doors [true|false](客户端命令)控制自身,缺省(不带参数)查询自身状态,新玩家默认开启
  • 数据持久化:yzwc/server/config/user_settings/<UUID>.json 的 double_doors_module 分节,仅保存被指令显式设置过的玩家(DoubleDoorsState,未设置者回退默认启用)
  • 客户端转发架构:/yzwc 根命令已在客户端注册(用于 /yzwc settings 及转发型子命令),故双开门、隐身等命令在客户端仅做解析与转发,权威状态由服务端通过 DoubleDoorsTogglePayload / InvisibilityPayload(C→S)承载

27. 宠物系统

基于原版狼(Wolf)的驯养追踪与管理系统,将已驯服的狼登记为"宠物"并提供长效的归属、信任与行为管理。

  • 核心数据结构:PetEntry 记录内部名称(internalName)、显示名、行为模式、主人 UUID、信任玩家集合、驯服时间、实体 UUID;全局注册表 PetGlobalState 持久化所有宠物
  • 行为模式:hunting(狩猎)/ companionship(陪伴)/ attack(攻击)/ guard(守卫)——经 /yzwc pet set <内部名> mode 切换
  • 信任系统:主人可将其他玩家加入信任列表,被信任者可以查看列表、高亮宠物;trust add/remove/list <玩家>
  • 归属操作:rename(重命名)、transfer <新主人>(转让所有权,原主人自动进入信任列表)、release_life [force](放生,需二次确认)
  • 快速定位:highlight <内部名> 对目标狼施加 5 秒发光效果,便于在群体中定位
  • 管理员运维:admin restore(从最新备份恢复)、admin backup_list(列出备份)、admin backup_interval <秒>(设置定时备份间隔,60–3600 秒)
  • 持久化:配置在 global_settings.json → pet_module;定时备份为 yzwc/server/backup/pet_module/pet_backup_<时间戳>.zip(压缩包内是同名 .json)
  • 命令架构:/yzwc pet 为客户端命令,客户端将参数经 PetCommandPayload(C→S)整体转发,服务端 PetCommand 持有完整 Brigadier 命令树与权限校验

28. 物品高亮系统

纯客户端功能,为手持或指定物品提供描边高亮,便于在背包 / 世界中快速定位目标物品(不影响服务端逻辑)。

  • 控制方式
    • 键位:F10 切换高亮(key.youzaiworldcore.highlight.toggle),B 切换比较模式(key.youzaiworldcore.highlight.comparator)
    • 命令:/yzwc settings highlight_item
      • toggle —— 开/关高亮
      • color <名称 | custom r g b a> —— 预设颜色或自定义 RGBA(r/g/b 0–255,a 0.0–1.0)
      • mode <比较器> —— 选择触发高亮的物品匹配规则
    • 设置界面:客户端设置中提供「启用高亮 / 比较模式 / 提示偏好」选项
  • 比较模式(Comparators):item_only(仅物品)、item_and_amount(物品+数量)、item_and_nbt(物品+NBT)、item_and_nbt_and_amount(物品+NBT+数量)、name_only(仅名称)、name_and_amount(名称+数量)、namespace(命名空间)
  • 提示偏好(Notification):none(默认)/ toast(吐司)/ chat(聊天)/ overlay(覆盖层)
  • 实现:highlightitem 包(HighlightItemClient / HighLightCommands / Configurator / Colors / ItemComparator),通过客户端 Mixin 在渲染层注入描边;键位与命令即时生效

29. 统计系统(Status)

读取原版统计系统(Stats)的玩家行为数据,持久化保存并定期上传到 Api 服务端。

  • 入口:status/StatsManager;本地最新副本位于 <world_name>/data/yzwc/data/status_module/data.json,损坏文件备份到 <world_name>/data/yzwc/backup/status_module/。每月首次 tick 自动重置原版 stats 文件、在线玩家统计和模组缓存;重置前快照以批次形式落盘并上传,Api 端通过批次编号幂等地累加到云端总量。平时每 6 小时仅增量上传变化字段;按游戏 UUID 与 game_accounts 绑定。后台页面可通过 MCSM 触发一次立即上传。
  • 指标:共 77 项,涵盖在线与世界时间、距死亡/休息时间、潜行、跳跃/死亡/击杀、造成/承受/盾牌格挡/吸收/抵抗伤害、步行/潜行/疾跑/水面与水下行走/攀爬/飞行/游泳/鞘翅/矿车/船/猪/快乐恶魂/马/炽足兽/鹦鹉螺/坠落距离、钓鱼、村民交谈与交易、丢弃、睡觉、附魔、炼药锅、盔甲/旗帜/潜影盒清洗、酿造台/信标/工作站与容器交互、音符盒与唱片、袭击触发与胜利、靶子命中、繁殖、敲钟、吃蛋糕,以及原版红石相关物品使用量汇总
  • 命令(服务端):
    • /yzwc status <player> list —— 查看该玩家各项统计(权限 youzaiworldcore.command.status.query)
    • /yzwc status upload —— 触发一次统计上传(仅服务器后台终端可执行,供 MCSM 使用)
  • 权限:status.query(默认 OP 4)

30. 邮件系统(Mailbox)

单向的管理员 → 玩家服务器信箱 / 公告箱(非玩家间私聊),由管理员经 GUI 发布,玩家在信箱(Shift+F → 邮件)中查收、领取奖励。

  • 数据由 Api 服务端权威保存:邮件正文与每玩家收件箱存在 Api 的 SQLite(game_mails / game_mail_refs), Minecraft 服务端不再保存任何邮件文件。客户端仍走原有数据包,由 Minecraft 服务端在判权限后转调 /api/game/mail/*(HMAC 签名),拉取和发布都以 Api 的数据为准;接收范围解析(需 LuckPerms)与奖励发放留在模组侧。 所有 Api 调用都是异步的,结果回到服务端主线程后才推送 S2C 数据包。
  • 后台也可发布公告 / 通知:Api 管理页 /mail(服内邮件)能查看全部邮件与逐收件人状态,并发布公告与通知 (奖励邮件、编辑、撤回仍只在游戏内)。发布成功后后台通过 MCSM 向选中的运行中实例发送 yzwc mail pull <mailId>,模组主动拉取单封正文、在线收件人引用与未读数,并用现有 S2C 增量包即时更新客户端。 mail_module.unread_refresh_interval_ticks(默认 3000 tick ≈ 2.5 分钟,0 关闭)保留为面板通知失败或网络抖动时的兜底校准。
  • 定位:发送方仅管理员(OP / LuckPerms youzaiworldcore.mail 节点);接收方二选一——全体成员 / 指定玩家(从账户系统已注册名单中勾选)
  • 邮件类型:公告(ANNOUNCEMENT)、通知(NOTICE)、奖励(REWARD)
  • 奖励载体(REWARD 类型):物品(最多 10 个槽位,从管理员物品栏复制为模板,不消耗原物)、命令(以控制台执行,支持 %player% / %uuid% 占位符)、原版经验值、原版等级、本项目冒险经验值、本项目冒险等级(四项可同时选择)
  • 过期策略:可选 1 天 / 7 天 / 30 天(默认)/ 永久;过期未星标自动清理(服务端每次启动时亦会清理「已过期且无任何玩家星标」的邮件),已星标保留文本但禁用领取
  • GUI
    • 界面适配:三个邮件界面均以 960×540 GUI 单位为设计基准等比缩放并居中,任意分辨率 / 界面尺寸下排版一致
    • 玩家信箱(MailScreen):筛选(全部/未读/已收藏)、详情、领取/星标/删除;右上角「发布邮件」「已发送邮件」按钮仅权限持有者可见,另有「返回」(回主菜单)与「关闭」按钮;主菜单进入带过渡动画
    • 发布/编辑页(MailComposeScreen):接收范围二选一(指定玩家经「选取玩家」弹窗勾选,支持搜索)+ 类型 + 主题 + 正文 + 附件(≤10 物品槽,显示稀有度边框,经「从物品栏选取」按钮挑选)+ 过期下拉;编辑已发送邮件亦复用此界面(MailSentScreen[编辑] → 预填 → MailAdminEditPayload)
    • 已发送页(MailSentScreen):已过期邮件不再提供「编辑」「撤回」入口
    • 操作反馈:领取 / 撤回 / 权限不足等结果在界面顶部以浮动提示条显示(界面未打开时回落到聊天栏)
  • 命令(客户端命令,解析后转发;服务端统一鉴权)
    • /yzwc mail send_mail —— 打开发布邮件 GUI
    • /yzwc mail sent —— 打开已发送邮件管理列表
    • /yzwc mail recall <mailId> —— 撤回已发送邮件(Api 删除正文与全部收件箱引用 + 在线推送移除)
    • /yzwc mail purge [player|all] —— 清理过期邮件
    • /yzwc mail list [player] —— 查看指定玩家信箱
    • yzwc mail pull <mailId> —— 服务端控制台拉取后台新邮件(Api 后台通过 MCSM 自动执行)
  • 权限:youzaiworldcore.mail(默认 OP 4);未装 LuckPerms 时以 mail_permission_level 回退
  • 存储:邮件正文与每玩家收件箱引用在 Api 服务端 SQLite(game_mails / game_mail_refs),本地只留设置 global_settings.json → mail_module;跨世界一致,绑定账户系统(离线账户同样入索引,登录可见)
  • 网络:共 18 个专用数据包(C2S mail_compose_open / mail_open / mail_sent_list_request / mail_recall / mail_purge / mail_list_request / mail_fetch / mail_action / mail_admin_send / mail_admin_edit / mail_player_list_request;S2C open_mail_compose / mail_list / mail_sent_list / mail_update / mail_op_result / mail_unread_count / mail_player_list)

31. 自定义附魔

模组注册 12 个数据驱动附魔(定义于 data/youzaiworldcore/enchantment/ JSON,由 ModEnchantments 注册 ResourceKey),含 2 个原创附魔与 10 个来自 Raiyon's More Enchantments 的移植附魔(原生重写,无外部依赖)。

原创附魔

  • 阳光修复(Sun Repair,sun_repair):「在阳光下修复工具」。由 SunRepairHandler 每 5–10 秒随机间隔检查在线玩家,对处于阳光下(有天空光照、非雨/雷、非夜晚、头顶无遮挡)且带此附魔的损坏物品每 tick 恢复 1 点耐久;覆盖手持、盔甲栏与整个物品栏
  • 乐魂涡轮加速器(Spirit Turbo Booster,spirit_turbo):「附魔在挽具上以提升乐魂移动速度」。由 HappyGhastTurboHandler 每 20 tick 检查所有乐魂(Happy Ghast),若其挽具带此附魔,则为其 FLYING_SPEED 属性每级追加 +20% 飞行速度

移植附魔(Raiyon's More Enchantments)

附魔 ID 适用物品 效果
生命汲取(Leeching) leeching 武器 击杀目标回复生命值
毒雾(Poison Puff) poison_puff 三叉戟 攻击时释放毒雾效果(post_attack → apply_mob_effect 中毒 60 秒×级)
火焰弹(Fire Charge) fire_charge 弩 弩射出火焰弹(projectile_spawned → ignite 100 tick)
音爆弹(Sonic Charge) sonic_charge 弩 弩射出监守者音爆(damage → add,基础 10 +2/级,Java 侧附加后坐力)
懦弱(Cowardice) cowardice 护腿 满血时提升移动速度(Java 侧实现)
风弹(Wind Charge) wind_charge 胸甲/鞘翅 鞘翅滑翔时持续加速(Java 侧实现,速度上限 1.5 blocks/tick)
尖刺(Spikes) spikes 盾牌 反弹攻击者伤害(post_attack → damage_entity,3 伤害/级,40%+30%/级 概率)
弹跳(Bounce) bounce 盾牌 格挡时弹飞攻击者(Java 侧实现)
熔炼(Smelting) smelting 工具 挖掘方块时自动熔炼掉落物(Java 侧实现)
陨星重击(Meteor Smash) meteor_smash 重锤 重锤砸地时召唤陨石(Java 侧实现,3 格 AoE 点燃 10 秒)

以上 10 个移植附魔源自 Raiyon's More Enchantments,本项目参考其设计理念并原生重写,无外部依赖。

32. 铁砧使用次数显示

客户端提示增强(anviluses 包)。在物品悬浮提示中显示该物品经过铁砧加工的次数与剩余可维修次数:

  • 已使用铁砧:依据 DataComponents.REPAIR_COST 反推(floor(log2(repairCost+1)))
  • 预计剩余可修:递推模拟原版 calculateIncreasedRepairCost 规则,直到下次维修费用达到「过于昂贵」上限(40 级);为 0 时提示「已无法再被铁砧维修」
  • 灵感来自 Anvil Uses(Z1proW),参考 26.2 原版 AnvilMenu 反编译实现,独立重写、无外部依赖

33. 物品边框系统

客户端视觉增强(itemborder 包,参考 ItemBorders 设计理念)。为物品槽位绘制稀有度渐变色边框,纯原生 26.2 API(GuiGraphicsExtractor 管线 + ItemStack.getRarity),无外部依赖:

  • 行为:基于硬编码常量(总开关、快捷栏绘制、直角、完整四边、辉光增强、稀有度自动着色均默认开启);普通(白色)稀有度物品默认不绘制
  • 预设稀有度分配:内置约 60 项分配——UNCOMMON(黄)18 项、RARE(青)19 项、EPIC(亮紫)22 项(含悠哉锭/系列工具/守护之心等本模组物品)
  • 所有配置为硬编码常量,无可修改配置文件

34. Trinkets 饰品槽集成

通过 data/trinkets/ 数据包为 Trinkets 模组声明 4 个自定义饰品槽(Trinkets 为硬依赖),让特定物品可装备至饰品栏而非主物品栏:

槽位(slots) 物品 说明
chest/elytra 鞘翅(Elytra) 胸饰槽装备鞘翅
chest/backpack 背包(Backpack) 胸饰槽装备背包
offhand/totem 不死图腾(Totem of Undying) 副手槽装备不死图腾
offhand/heart 守护之心(Heart of Guardianship) 副手槽装备守护之心

每个槽位含自定义图标与 trinkets:default 校验器,order 控制排序。

YZUI 饰品交互 ★新增:YZUI 物品栏(生存 / 创造)不使用 Trinkets 注入的原生槽位,而是实现了一套悬停指示器交互——鼠标悬停在可装备槽位上时,在其旁弹出对应饰品槽指示器,点击即可装卸:

  • 服务端权威:所有操作经 C→S 数据包 trinket_interact(TrinketInteractPayload)提交,服务端通过 Trinkets API 修改权威数据后由 Trinkets 网络层同步回客户端并持久化
  • 四种操作:ACTION_PLACE(光标→槽,0)、ACTION_TAKE(槽→光标,1)、ACTION_SWAP(互换,2)、ACTION_QUICK_MOVE(Shift+左键,槽→主物品栏 0–35,3)
  • 光标校验:数据包携带客户端当前鼠标物品(cursor)。生存模式只信任服务端 containerMenu.getCarried(),创造模式才使用客户端生成的虚拟光标物品;槽位状态、堆叠上限与校验器始终以服务端为准
  • 本地预览:客户端在收到服务端确认前先行本地预览,消除交互延迟感
  • 原生槽位屏蔽:SurvivalTrinketSlotYzuiMixin 在 YZUI 屏幕下强制 Trinkets 的 SurvivalTrinketSlot#isActive() 返回 false,避免其注入槽位在装备位两侧渲染出"无用格子"并与 YZUI 指示器坐标重叠误触;YZUI 关闭时不拦截,Trinkets 原生物品栏行为不受影响(该 Mixin 以 targets = "eu.pb4.trinkets.impl.slots.SurvivalTrinketSlot" 字符串声明,适配 Trinkets 4.1.0-rc.1 的实现包结构)

35. 配置导入/导出

客户端设置中新增「导出/导入配置」侧栏(YZUI)。基于 26.2 Headless 限制(AWT/文件对话框不可用),采用自动路径 + 备份策略,不依赖外部文件选择器:

  • 导出:将 config/ 目录(Fabric 与模组通用配置)、options.txt(原版游戏设置)、yzwc/client/global_settings.json(YouzaiWorldCore 客户端配置)三者打包为 ZIP 并保存到本地(PC 端手动选择路径;Android 端自动存入 config_backups,保留最近 5 份)
  • 导入:从 ZIP 还原上述三项配置,要求客户端重启生效(自动备份当前配置至游戏根目录的时间戳备份文件以防失败回滚)
  • 入口:screen.youzaiworldcore.settings.sidebar_config_io;ConfigIOManager 在客户端启动时自愈检测上次导入中断遗留的孤立 config_bak_* / options_bak_* / yzwc_client_bak_* 备份并恢复
  • ⚠️ 范围仅限客户端配置:服务端配置(yzwc/server/ 与世界数据目录)不在本功能的打包范围内(本功能面向客户端玩家备份自己的界面/操作设置)

36. 更新检查系统(Update Checker)

异步检测模组新版本,提示在线更新或强制更新。

  • 入口:update/UpdateChecker(客户端与服务端共用);运行时从 https://mcyzw.top/yzwc/version.json 拉取版本信息,基于 SemanticVersion 比较
  • 配置:global_settings.json → update_module(UpdateCheckerConfig,可开关检查)
  • 命令(服务端):/yzwc update [check] —— 触发一次即时检查并反馈结果(普通/强制更新提示 + 可点击下载链接),权限 youzaiworldcore.command.update(OP 4)
  • 客户端:client/update/ClientUpdateState + client/screen/ForcedUpdateScreen 提供强制更新界面

37. YZUI 界面系统 ★新增

纯客户端的整体界面重绘方案,将原版物品栏、HUD、配方书与上下文栏统一替换为 YZUI 风格(半透明白色圆角面板 + 圆角填充条)。由全局开关控制:客户端设置「视觉」分栏中的「启用 YZUI」复选框(screen.youzaiworldcore.settings.toggle_yzui),持久化于 client_external_settings.json 的 yzuiEnabled 字段(默认开启)。关闭后全部回退原版渲染,便于资源包接管。

37.1 物品栏屏幕

InventoryScreenSwitchMixin 拦截 Gui#setScreen,在 YZUI 开启时将原版屏幕替换为自定义实现(InventoryScreen → 按游戏模式分流;CreativeModeInventoryScreen → YZUI 创造屏):

  • YzuInventoryScreen(生存物品栏):沿用原版 InventoryMenu 固定槽位坐标,仅外观改为 YZUI 圆角风格——半透明白色圆角面板、圆角槽位背景(悬浮高亮)、褐色副手槽底色;配方书打开时于左侧渲染 YZUI 风格配方书面板,切换按钮置于副手槽上方
  • YzuCreativeInventoryScreen(创造物品栏):完全自绘的创造屏(356×168),使用原版创造搜索标签中的完整物品变体,含分类标签页(每页配色独立)、搜索框(跨会话记忆上次搜索文本)、9×7 物品网格 + 右侧滚动条,以及右栏的玩家 3D 模型、装备 2×2 与副手槽、3×9 生存物品栏、底部快捷栏
  • Mouse Tweaks 手势:生存物品栏及创造屏右侧背包支持右键持物拖拽逐个分发、左键取物后拖拽收集同类、Shift+左键拖拽连续快速移动(持物时只移动同类),以及在主背包与快捷栏之间滚轮逐个推出/拉入
  • 创造模式原版操作:左侧物品网格支持 Q / Ctrl+Q 丢弃、F 放入副手、1–9 放入快捷栏、选取方块键克隆;右侧真实背包通过创造模式槽位同步协议执行,避免装备与快捷移动产生幽灵物品

37.2 HUD 组件

HealthBarMixin 取消原版 Hud#extractPlayerHealth / extractFood / extractArmor / extractAirBubbles 四项渲染,改由 client/hud/ 下的自定义渲染器绘制长条状进度条;HotbarMixin 取消原版 extractItemHotbar,改由 HotbarRenderer 绘制 YZUI 热键栏(184×24 圆角面板 + 9 个 18×18 圆角槽位 + 数字键编号 + 平滑动画选中高亮框 + 褐色副手槽 + 攻击冷却指示器,滚轮方向经 ScrollHotbarInputMixin 传入支持跨边界包装动画):

渲染器 替换对象 特性
HealthBarRenderer 爱心血条 85×5 长条 + 「当前/最大」文字;手持食物时右侧闪烁预估恢复量叠加层;伤害吸收金色叠加;中毒(紫色垂直条纹)/ 凋零(灰黑水平条纹)状态条纹指示
FoodBarRenderer 鸡腿饥饿值 长条化,配合 FoodDataExhaustionAccessor 读取消耗度
ArmorBarRenderer 盔甲图标 长条化
OxygenBarRenderer 氧气气泡 长条化

ScoreboardSidebarMixin 在「使用 YZUI」或「显示 YZHUD」任一开启时接管原版侧边栏记分板,将其替换为半透明白色圆角面板,同时保留原版的目标选择、隐藏条目过滤、分数排序、队伍颜色/前后缀和数字格式;两个开关都关闭时完全保留原版记分板,其位置也固定为原版布局不可更改,YZHUD 自定义页面中的记分板随之置灰锁定、不可选中或拖拽。YZHUD 自定义页面可分别拖拽物品栏、装备栏、状态效果和记分板四个组件,并通过统一滑块实时调整透明度;位置以 -1..1 的归一化位移保存,记分板会按当帧实际宽高重新换算位置,内容变化后仍保持在屏幕范围内。

InventoryHudMixin 还会在左下角绘制物品栏、装备与状态效果面板。三个面板以 1920×1080、界面尺寸 3 对应的 640×360 GUI 坐标为设计基准,根据当前 GUI 宽高的较小缩放比统一缩放,使面板、槽位、物品、图标、文字与间距在不同分辨率、窗口大小和界面尺寸下保持一致比例。状态效果面板位于装备栏右侧、物品栏上方,仅在玩家拥有状态效果时显示;面板底边固定并随效果数量向上增长,按获得顺序自下而上列出效果图标、名称、罗马数字等级与剩余时间,最后 10 秒对应的完整行或简略单元格闪烁,并替代原版右上角效果图标。面板最多占用 13 行;超过 13 个效果后,从最底行开始依次压缩为 2、3、4 个简略单元格,填满 4 个后才继续压缩上一行;简略行内新效果在左、旧效果在右。简略单元格省略名称与等级,只在图标右下角叠加剩余时间;最多显示最新 52 个效果,保证新获得的效果优先可见。

装备栏面板底部依次显示箭矢总数(普通箭、药水箭与光灵箭)、烟花火箭总数(合并所有飞行时间与烟花效果组件)以及背包和快捷栏空位数。

三个面板均带有连续动画反馈:物品进入空槽时淡入闪烁,离开槽位时淡出缩小;物品或指示器数量增加时图标与文字同步弹性闪烁;装备和道具的剩余耐久不高于 10% 时逐渐增强摇晃。状态效果新获得时拉伸淡入,移除时收缩淡出,因新增、移除或行压缩产生的位置与宽度变化会平滑滑动。额外反馈包括数量增加的绿色高光、耐久修复的青色脉冲,以及低耐久时的红色呼吸警告。

37.3 上下文栏与配方书

  • ContextualBarMixin:对经验条(ExperienceBar)、定位条(LocatorBar)、跳跃条(JumpableVehicleBar)取消原版精灵表背景,替换为 YZUI 圆角填充条(宽度与原版 ContextualBar#WIDTH = 182 一致),同时保留 LocatorBar 的航点指示器渲染;经验数值文字居中显示于血条与饥饿条区域内
  • 配方书重绘:RecipeBookBackgroundMixin(以 @Redirect 替换背景 blit 而非 ci.cancel(),避免连带取消 Tab/搜索框/网格渲染)、RecipeBookLayoutMixin(搜索框左移、过滤按钮加宽)、RecipeBookTabButtonMixin、RecipeButtonMixin
  • 按钮样式:CycleButtonYzuiMixin(过滤按钮:选中态绿色勾 recipe_filter_craftable.png / 未选中态红色叉 recipe_filter_all.png)、ImageButtonYzuiMixin(配方书显隐按钮 recipe_book_show.png / recipe_book_hide.png);两者均限定在 YZUI 开关开启且当前屏幕为 YZUI 自定义屏幕时生效

38. 隐形物品展示框 ★新增

两个自定义物品,放置后展示框实体为隐形状态(仅展示其中的物品),适合装饰与展示墙:

物品 合成配方
隐形物品展示框(invisible_item_frame) 物品展示框 + 幻翼膜(无序合成)
隐形发光物品展示框(invisible_glow_item_frame) 发光物品展示框 + 幻翼膜(无序合成)

由 InvisibleItemFrameItem / InvisibleGlowItemFrameItem 重写 useOn,自行完成放置位置校验、附着面计算与实体生成,并在生成后设置隐形标记;收录于创造标签页的「悠哉世界 → 实用物品」分组。

39. Technoblade 纪念皇冠 ★新增

彩蛋功能:将猪命名为 Technoblade 后,其头顶会渲染一顶皇冠(成年 / 幼年两套模型与纹理)。

  • 实现:TechnoCrownFeatureRenderer 作为 RenderLayer 由 PigRendererMixin 在 PigRenderer 构造末尾挂载;PigRenderStateMixin + RenderCrownDuck 访问器每帧根据自定义名称计算皇冠可见性
  • 纹理:assets/minecraft/textures/entity/pig/technocrown_adult.png / technocrown_baby.png
  • 改编自 thecolonel63 的 technomodel(MIT 许可)

40. 音乐唱片系统 ★新增

基于 MC 26.2 全新的 JUKEBOX_PLAYABLE DataComponent + JukeboxSong datapack registry 系统实现的音乐唱片物品。

  • 唱片:music_disc_cloud_genshin(《云·原神》宣传曲),Epic 稀有度,时长约 47 秒
  • 实现:物品通过 Item.Properties.jukeboxPlayable(ResourceKey<JukeboxSong>) 注入播放能力;JukeboxSong 定义于 data/youzaiworldcore/jukebox_song/cloud_genshin.json;对应的 SoundEvent(youzaiworldcore:cloud_genshin)由 ModSoundEvents 在模组初始化时注册到 BuiltInRegistries.SOUND_EVENT
  • 收录:位于创造标签页的「悠哉世界 → 实用物品」分组

41. Meme 画作系统 ★新增

12 张自定义画作,收录于统一创造标签页(youzaiworldcore:youzai_world)中的「画作」分组。

  • 画作:meme_01–meme_12,Uncommon 稀有度,每张 1×1 至 4×4 不等
  • 注册:通过 PaintingVariant 在 data/youzaiworldcore/painting_variant/ 下定义,纹理位于 assets/youzaiworldcore/textures/painting/
  • 掉落:破坏自定义画作时掉落对应物品(原版画作破坏不掉落),由 MemePaintingDropMixin 实现

42. 工具信息覆盖(Tool HUD Overlay)★新增

客户端 HUD 增强(client/hud/ToolInfoOverlay)。每 10 tick(0.5s)在动作栏显示一行工具信息,随手持状态自动刷新:

  • 时钟:游戏时间 + 天数
  • 指南针:8 方向方位指示
  • 追溯指针:上次死亡坐标 + 维度

由 FunctionToggleClientState 的 tool_info_overlay 个人开关控制(默认开启,服务端权威经 FunctionToggleSyncPayload 同步)。

43. 单玩家功能开关系统 ★新增

为偏好功能提供服务端权威的个人开关,状态由 FunctionToggleManager 按 UUID 持久化至 yzwc/server/config/user_settings/<UUID>.json 的 function_module 分节,共 7 个键(默认全开):ladder_extend_downward(潜行放梯子向下延展)、crop_xp_drop(作物经验)、tool_info_overlay(工具信息 HUD)、block_animation(方块环境粒子)、crafting_sound(合成音效)、item_sparkle(掉落物电火花)、damage_numbers(伤害跳字)。客户端渲染类开关经 FunctionToggleSyncPayload(S→C)同步;伤害跳字直接在服务端按接收玩家过滤,关闭者不再收到 DamageNumberPayload。命令 /yzwc function <key> [true|false](缺省查询),damage_numbers 为自助开关,其余需 function.set(OP 4)。


44. 悠哉地图(YZMAP)

参考 Conflux Map 的功能说明独立实现游戏内地图,不引入其代码、资源或依赖。

  • 小地图与全屏地图:圆形、方形、圆角边框,旋转、缩放、拖动、区块网格、坐标与群系信息。小地图以 960×540 GUI 单位为设计基准等比缩放到当前界面尺寸,占屏比例不随「界面尺寸」设置变化(size 即该基准下的边长,设置页会同时显示实际显示尺寸)。
  • 全屏地图布局:底图铺满窗口;左侧提供放大、缩小、缩放滑杆与返回自身,左下提供设置、绘图、路径点、玩家和雷达入口,右侧仅在玩家当前区块与地图中心区块一致时显示本人已探索的地下层,按钮直接显示对应的 Y 值;离开该区块或浏览其他维度时隐藏,右下显示坐标、图层、维度与群系,并可展开维度列表。玩家头像带朝向标记;选择工具下左键路径点打开右侧详情覆盖面板,右键空白处打开新建面板。绘图面板保留画笔、直线、矩形、椭圆、文字及撤销/重做;Esc 先收起面板,再关闭地图。
  • 玩家共享面板:左侧「位置共享」面板提供可见玩家、共享名单、收到申请、黑名单四个带数量的分页,支持名称/UUID 搜索、头像与在线状态、定位/跟踪,以及独立的在线玩家选择列表。顶部明确选择「仅共享名单」或「所有人(黑名单除外)」;开放模式下移出名单不会停止共享,需使用拉黑。操作等待服务端确认,展示成功、拒绝或超时结果,列表刷新保留搜索与焦点;窄窗口使用紧凑卡片。名单与模式存于服务端地图 SQLite 的玩家作用域,请求仅在本次开服有效;服务端按接收者过滤位置,原位置共享总开关仍有效,地图图标显示开关不影响此管理列表。
  • 路径点覆盖列表:路径点按钮、U 和 /yzwc map waypoints 均打开地图内覆盖列表,保留维度分类筛选、搜索、创建时间、坐标及固定选中操作区;分类新增/移动也在覆盖层内完成,定位及打开详情复用原地图。普通点详情支持分享坐标、分类编辑及点击铅笔后编辑私人描述,以勾选保存;底部提供追踪。
  • 地图右侧面板:维度按服务器维度池分组,以双列按钮切换,◆ 标识玩家当前所在维度。路径点支持侧栏内新建、重命名、坐标复制、分类选择、新建分类与“创建并追踪”;私人描述支持多行输入,按存档保存在客户端地图 SQLite 的私人描述记录,不会公开。锚点可另存为私人路径点、通过原锚点协议重命名/取消激活记录,以及传送或导航;传送费用与维度限制仍沿用锚点规则。面板内可滚动,未覆盖的地图继续拖动缩放。地图会话包新增维度池信息,客户端与服务端须同时更新。
  • 地图快捷设置:左侧半屏设置直接覆盖在当前地图上,不切换页面;未覆盖的地图仍可拖动和缩放;提供标记图标/文字总开关、路径点、共享位置玩家、锚点、友好/敌对/已驯服生物及其他实体开关。关闭标记图标时同时隐藏标记文字与地图点击区域;重新开启后按文字开关恢复。文字位置用下拉框选择图标上下左右,支持定位高亮及按存档记住上次地图中心与缩放。底部“更多设置”保留完整设置页;小窗口可滚动。
  • 路径点管理:左侧分组树与右侧路径点卡片始终同页显示,窄窗口也保留两栏。维度父节点与分类子节点使用连续竖线、分叉和末项折角连接;点击箭头展开/收起,点击名称筛选右侧列表,两栏独立滚动。卡片显示名称、XYZ、分类和创建时间,选中后在固定操作区定位、导航或打开详情;更多操作保留传送、复制坐标、聊天分享、排序、显隐及编辑/删除。支持搜索、空分类和对当前筛选结果批量分组/显隐。删除需在面板内再次确认,公共修改等待服务端确认;本人已激活锚点继续按原权限管理。
  • 探索层记录:依据玩家实际进入的地下区块记录现有八格高度分段,不根据服务端批量采样或浏览选择解锁。记录按服务器存档保存于客户端地图 SQLite 的 explored 表,每 10 秒合并写盘并在切服/断线前保存;最多保留 65536 条区块层记录。空分类同样随存档保存。旧数据不会从缓存自动补记探索历史。路径点快照包增加了独立的本人锚点列表,客户端与服务端需一起更新。
  • 主题适配:跟随 YZUI 明暗主题和视觉风格;小地图接入 YZHUD 拖拽布局与透明度,默认位置可避让 YZUI 记分板。
  • 地图图层:地表、自动洞穴、固定高度、顶层/下界顶板,以及群系和服务端区块加载状态叠加。自动洞穴判定累计玩家头顶上方的有效遮挡:不超过 4 格视为地表,达到 5 格才切换地下;空气、树叶、玻璃和地表水不计数,间隔不重置累计值。所有维度及地下探索记录采用同一判定。
  • 路径点与导航:私人/公共点、搜索与分组、死亡记录、主世界/下界 1:8 坐标投影、世界内距离标签与边缘方向提示。
  • 雷达与绘图:全屏「雷达」以纹理图标网格列出全部已启用的生物种类,支持名称/注册 ID 搜索,附近没有的种类也可选择。选中后在玩家模拟距离内持续查找该种类的全部生物,仅将与玩家处于同一实际图层的生物在全屏地图与小地图同时高亮;地表与地下分开,地下还需处于同一 8 格高度段,雷达页不显示已找到的生物数量。小地图视口外的同层目标显示边缘方向提示,可取消定位或查看整片范围。配套服务端查询现有实体索引,补充原版客户端跟踪范围外的位置;查询范围取客户端设置与服务端模拟距离的较小值,不加载或生成区块。普通生物标记同样使用从模型头部及实际纹理提取的小图标,兼容资源包;非立方体模型使用原版 GUI 纹理渲染。玩家头像与实体类别开关继续可用;绘图保留画笔、直线、矩形、椭圆、文字、移动/改色/删除及撤销/重做。
  • 画笔管理器:工具、我的绘图、显示设置三个页签,六种工具配图标与色板,可输入自定义十六进制颜色。绘图列表支持名称/类型/维度搜索、当前或全部维度筛选、图形缩略预览、命名、定位拖动、改色及删除;撤销/重做按钮按实际历史启用。两个管理器均沿用页面渐变和鼠标遮挡,数据仍存于原 SQLite。
  • 坐标分享:保留复制坐标和聊天草稿分享;移除移动轨迹、所有地图数据导入导出(包括本模组格式)及 PNG 导出。
  • 服务端共享:已探索地形随存档保存,提供公共点、可关闭的玩家位置共享和已加载区块中发现的结构标记;所有公共修改校验认证、所有权与权限,地图传送默认关闭。

默认快捷键:M 地图、H 小地图开关、N 建点、U 路径点、J 路径点显隐、Y 图层、[/] 缩放、, 设置、F9 刷新,均可在控制设置中重绑。

客户端显示、布局、私人记录与地形使用 yzwc/client/map_module/map.db;服务端配置使用 yzwc/server/data/map_module/map.db,世界地形、公共点及上传进度使用 <world>/data/yzwc/data/map_module/map.db。直接新建 SQLite,不迁移旧 JSON/gzip;客户端不再按容量淘汰旧瓦片。全屏固定高度的地表回落行为保留。Minecraft 服务端后台读取已有及修改后的区块文件生成地表、顶板和每 8 格地下切片,不从玩家客户端获取上传数据,也不加载或生成未知区块。默认每 48 小时按修订号增量上传 API(upload_interval_minutes 可调),首次约 60 秒后尝试,可用 /yzwc map upload 手动触发。历史已保存区域会逐步回填。完整配置和验收步骤见 悠哉地图说明。


📜 指令树

所有指令以 /yzwc 为根命令。标注 (客户端命令) 的子命令仅做参数解析与转发,权威逻辑由服务端数据包接收器执行。

/yzwc
├── map [settings|waypoints|add|refresh]  # 本机地图入口
│   ├── shared [list|add <名称>|delete <UUID>|lock <UUID>|unlock <UUID>]
│   ├── position <show|hide>
│   ├── stats
│   └── upload  # 管理员手动上传后台地图
│
├── teleport_world <targets> <dimension> [x] [y] [z] [yRot] [xRot]
│   ├── 权限:youzaiworldcore.command.teleport_world(OP 4)
│   └── 示例:/yzwc teleport_world @p minecraft:overworld 0 64 0
│
├── open_menu <menu_name> [target]
│   ├── 权限:youzaiworldcore.command.open_menu(OP 4)
│   ├── 可选菜单:main / switch_world / settings / about_me
│   └── 示例:/yzwc open_menu main
│
├── world_pool
│   ├── 权限:youzaiworldcore.command.world_pool(OP 4)
│   ├── teleport <targets> <pool_id>     → 传送到指定维度池
│   └── list                             → 列出所有维度池
│
├── teleport_anchor list [player]
│   ├── 权限:youzaiworldcore.command.teleport_anchor(OP 4)
│   └── 列出传送锚点(含可点击传送链接)
│
├── event
│   ├── naturally_charged_creepers
│   │   ├── enable [true|false]           → 开启/关闭天然带电苦力怕(缺省查询)
│   │   └── settings chance [double]      → 设置带电概率 0.0~1.0(缺省查询)
│   ├── trial_vault
│   │   └── enable [true|false]           → 开启/关闭试炼宝库无限领奖(缺省查询)
│   ├── laowu
│   │   ├── enable [true|false]           → 开启/关闭老吴贴贴全局开关(缺省查询)
│   │   └── settings cd [seconds]         → 设置/查询老吴贴贴冷却时间(≥60s)
│   ├── death_sound enable [true|false]       → 死亡音效(缺省查询)
│   ├── jukebox_loop enable [true|false]      → 唱片机循环(缺省查询)
│   ├── baby_zombie_weak enable [true|false]  → 幼年僵尸弱化(缺省查询)
│   ├── wither_skull_drop enable [true|false] → 凋零头颅必定掉落(缺省查询)
│   ├── trident_void_protect enable [true|false] → 三叉戟虚空保护(缺省查询)
│   ├── crop_xp_drop enable [true|false]      → 作物经验掉落(缺省查询)
│   └── 权限:.query(所有人)/ .set(OP 4)
│
├── pet <args...>                         ← (客户端命令,整体转发至服务端)
│   ├── list                                          → 列出自己的宠物与受信任宠物
│   ├── set <内部名> rename <新显示名>                 → 重命名(主人)
│   ├── set <内部名> mode <hunting|companionship|attack|guard> → 切换行为模式
│   ├── set <内部名> trust add|remove <玩家> | trust list → 信任管理
│   ├── set <内部名> release_life [force]              → 放生(需二次确认)
│   ├── set <内部名> transfer <新主人>                 → 转让所有权
│   ├── highlight <内部名>                            → 高亮定位(发光 5 秒)
│   └── admin restore | backup_list | backup_interval <秒> → 管理员备份/恢复
│
├── mail <args...>                         ← (客户端命令,整体转发至服务端)
│   ├── send_mail                                    → 打开发布邮件 GUI(需邮件权限)
│   ├── sent                                        → 打开已发送邮件管理列表
│   ├── recall <mailId>                             → 撤回已发送邮件
│   ├── purge [player|all]                          → 清理过期邮件
│   ├── list [player]                               → 查看指定玩家信箱
│   └── pull <mailId>                               → 服务端控制台从 Api 拉取后台新邮件(MCSM 自动执行)
│
├── function invisibility <true/false>    ← (客户端命令)
│   ├── 权限:youzaiworldcore.command.function.invisibility(OP 4)
│   └── 限制:必须在创造模式
│
├── function double_doors <true|false>    ← (客户端命令)
│   ├── 权限:youzaiworldcore.command.function.double_doors(玩家自身,所有人可执行)
│   └── 缺省查询自身状态;新玩家默认启用,状态持久化至 double_doors_players.json
│
├── function ladder_extend_downward [true|false]  ← 潜行放梯子向下延展(个人开关,默认开启)
├── function tool_info_overlay [true|false]       ← 工具信息 HUD(时钟/指南针/追溯指针,默认开启)
├── function block_animation [true|false]         ← 方块环境粒子(信标/酿造台/附魔台/龙蛋,默认开启)
├── function crafting_sound [true|false]          ← 合成音效(默认开启)
├── function item_sparkle [true|false]            ← 掉落物电火花粒子(默认开启)
│
├── function damage_numbers [true|false]
│   ├── 权限:youzaiworldcore.command.function.damage_numbers(玩家自身,所有人可执行)
│   └── 缺省查询自身状态;新玩家默认启用,状态持久化至 function_toggles.json
│
├── reload
│   ├── 权限:youzaiworldcore.command.reload(OP 4)
│   └── 运行时重载账户数据和配置
│
├── afk                                     ← (服务端命令)
│   ├── 权限:youzaiworldcore.command.function.afk(自身切换)/ 管理权限(status/list/settings)
│   ├── (无参数)                            → 手动切换 AFK 状态
│   ├── status [player]                    → 查询自身/他人 AFK 状态
│   ├── list                               → 列出所有 AFK 玩家(需管理权限)
│   └── settings <key> <value>             → 运行时修改 AFK 配置(需管理权限)
│
├── account
    ├── 📋 玩家命令:
    │   ├── register <password> <confirm>           ← 注册(4-128 字符)
    │   ├── login <password>                        ← 登录(5 次上限,超限冷却 5 分钟)
    │   ├── logout                                  ← 登出(隐身状态下禁止)
    │   ├── deactivate <password>                   ← 注销账户
    │   └── change_password <old> <new> <confirm>   ← 改密
    │
    └── 🔧 管理员命令(OP 4):
        ├── mgr create <player> <pass> <confirm>         ← 创建离线账户
        ├── mgr reset_password <player> <pass> <confirm> ← 重置密码
        ├── mgr delete <player>                          ← 删除账户
        └── mgr login_cooldown
            ├── (无参数)         ← 显示当前冷却设置
            ├── set <seconds>    ← 设置(-1=永不,0=永久,>0=秒数)
            ├── status <player>  ← 查询锁定状态
            └── unlock <player>  ← 解锁账户
├── status
│   ├── <player> list                          → 查看该玩家统计(权限 .query)
│   ├── upload                                  → 触发统计上传(仅服务器后台终端)
│   └── 权限:.query(OP 4;upload 仅后台终端)
└── update [check]
    ├── 权限:youzaiworldcore.command.update(OP 4)
    └── 检查模组更新(拉取远程版本信息,反馈普通/强制更新与下载链接)

客户端命令说明:/yzwc pet、/yzwc mail、/yzwc function invisibility、/yzwc function double_doors 均在客户端注册,仅负责解析参数并通过对应 C→S 数据包(PetCommandPayload / MailComposeOpenPayload 等邮件包 / InvisibilityPayload / DoubleDoorsTogglePayload)转发;服务端持有权威状态与权限判定。/yzwc function damage_numbers 及其他 FunctionCommand 子项是服务端命令,由客户端占位镜像原样转发。

权限节点一览

权限节点 说明 回退等级
youzaiworldcore.command.teleport_world 跨维度传送 OP 4
youzaiworldcore.command.open_menu 打开 GUI 菜单 OP 4
youzaiworldcore.command.reload 模组重载 OP 4
youzaiworldcore.command.world_pool 维度池管理 OP 4
youzaiworldcore.command.teleport_anchor 传送锚点管理 OP 4
youzaiworldcore.command.map.shared 发布/维护自己的公共地图点 已认证玩家,受服务端开关限制
youzaiworldcore.command.map.manage 管理、锁定/解锁公共地图点,上传后台地图 OP 4
youzaiworldcore.command.map.teleport 地图坐标传送 OP 4,且配置开启
youzaiworldcore.command.function.invisibility 隐身功能 OP 4
youzaiworldcore.command.function.double_doors 双开门功能(自身开关 / 查询) 所有人(仅自身)
youzaiworldcore.command.function.damage_numbers 伤害跳字显示(自身开关 / 查询) 所有人(仅自身)
youzaiworldcore.command.function.afk AFK 自身切换 所有人(仅自身)
youzaiworldcore.command.admin.afk AFK 管理(status/list/settings) OP 4
youzaiworldcore.command.event.query 事件管理查询(省略参数即为查询) 所有人
youzaiworldcore.command.event.set 事件管理修改(enable / settings) OP 4
youzaiworldcore.command.function.query 个人功能开关查询(省略参数即为查询) 所有人
youzaiworldcore.command.function.set 个人功能开关修改(enable 等) OP 4
youzaiworldcore.command.pet.list 查看宠物列表 所有人
youzaiworldcore.command.pet.set 宠物设置(重命名/模式/信任/放生/转让) 所有人(仅自身宠物)
youzaiworldcore.command.pet.highlight 高亮宠物 所有人(主人/信任玩家)
youzaiworldcore.command.pet.admin 宠物管理员(备份/恢复/间隔) OP 4
youzaiworldcore.command.pet 宠物模块父权限(基础) OP 4
youzaiworldcore.mail 邮件系统(发布/已发送/撤回/清理/查看) OP 4
youzaiworldcore.admin.junior 初级管理员外观称号 无 LuckPerms 时 OP 管理员解锁全部三级
youzaiworldcore.admin.middle 中级管理员外观称号 无 LuckPerms 时 OP 管理员解锁全部三级
youzaiworldcore.admin.senior 高级管理员外观称号 无 LuckPerms 时 OP 管理员解锁全部三级
youzaiworldcore.command.status.query 查看统计 OP 4
youzaiworldcore.command.update 更新检查 OP 4
youzaiworldcore.command.account.mgr.create 创建账户 OP 4
youzaiworldcore.command.account.mgr.reset_password 重置密码 OP 4
youzaiworldcore.command.account.mgr.delete 删除账户 OP 4
youzaiworldcore.command.account.mgr.login_cooldown 登录冷却 OP 4
youzaiworldcore.command.account.mgr.login_cooldown.status 锁定状态查询 OP 4
youzaiworldcore.command.account.mgr.login_cooldown.unlock 解锁 OP 4
youzaiworldcore.command.account.mgr.* 账户管理通配符 OP 4
youzaiworldcore.command.* 所有命令通配符 —
youzaiworldcore.* 全模组通配符 —

🖥️ 菜单与网络数据包

GUI 菜单 ID

内部 ID 名称 层级
main 主菜单 根菜单
switch_world 切换世界 主菜单 → 切换世界
settings 设置 主菜单 → 设置
about_me 关于我 主菜单 → 关于我

容器型 MenuType

ID 对应方块
decomposition_table 分解台
fly_beacon 飞行信标

网络数据包

注:world_pool_teleport 数据包类位于 dimensionalinventories 包,其余位于 network 包;邮件相关 18 个数据包亦位于 network 包。方向统计:S→C 33 个,C→S 38 个。

数据包 ID 方向 用途
open_menu S→C 打开 GUI 菜单
open_auth_screen S→C 打开认证界面
registration_email_state S→C 同步邮箱注册步骤、请求结果与倒计时
password_reset_state S→C 同步邮箱找回密码的请求结果、会话与倒计时
account_management_state S→C 同步账户快照、改密/换绑/注销结果与换绑验证码倒计时
mana_sync S→C 同步魔力值
level_exp_sync S→C 同步冒险等级经验
damage_number S→C 同步实体受击位置与实际伤害值,用于客户端世界空间跳字
attribute_sync S→C 同步玩家属性数据(技能点 / 各项属性 / 等级)
teleport_anchor_list S→C 发送传送点列表
teleport_anchor_open_name S→C 打开传送锚点命名界面
mail_unread_count S→C 同步未读数与发布权限(canSend)
mail_player_list S→C 返回已注册玩家代号名单(发布页「选取玩家」弹窗)
open_mail_compose S→C 打开发布邮件 GUI
mail_list S→C 发送收件箱列表
mail_sent_list S→C 发送已发送邮件列表
mail_update S→C 新增/更新/移除单封邮件
mail_op_result S→C 邮件操作结果反馈
function_toggle_sync S→C 同步功能开关状态(双开门等)
laowu_meme_trigger S→C 触发老吴贴贴粒子/音效
laowu_meme_stop S→C 停止老吴贴贴客户端效果
teleport_stone_interrupt S→C 传送石/传送卷轴蓄力中断
in_place_respawn_info S→C 同步死亡维度是否允许原地重生及本次等级费用
in_place_respawn_result S→C 返回原地重生申请的批准或拒绝结果
title_state S→C 同步称号目录、本玩家授权与在线玩家佩戴快照
registration_email_request C→S 提交邮箱地址或邮箱验证码
password_reset_request C→S 提交找回密码邮箱、验证码与新密码
account_management_request C→S 提交账户快照、改密、换绑邮箱或注销请求
world_pool_teleport C→S 请求维度池传送
in_place_respawn_request C→S 请求消耗等级并在死亡位置重生
teleport_anchor_activate C→S 激活传送锚点
teleport_anchor_teleport C→S 请求传送
teleport_anchor_delete C→S 删除传送点
teleport_anchor_rename C→S 重命名传送点
teleport_anchor_reorder C→S 调整排序
decompose_item C→S 分解物品
fly_beacon_active C→S 切换飞行信标
invisibility_toggle C→S 切换 / 关闭自身隐身
attribute_upgrade C→S 请求为某项属性加点
double_doors_toggle C→S 切换 / 查询自身双开门开关
pet_command C→S 转发 /yzwc pet 客户端命令至服务端执行
trinket_interact C→S YZUI 饰品槽交互(放入/取出/交换/快捷移动;仅创造模式信任客户端光标)
inventory_collect C→S YZUI 生存物品栏左键拖拽时,将槽位中的同类物品收集到光标
mail_compose_open C→S 请求打开发布邮件 GUI
mail_open C→S 请求收件箱列表
mail_sent_list_request C→S 请求已发送邮件列表
mail_recall C→S 撤回邮件
mail_purge C→S 清理过期邮件
mail_list_request C→S 查看指定玩家信箱
mail_fetch C→S 编辑前拉取单封完整邮件
mail_action C→S 打开/已读/星标/领取/删除
mail_admin_send C→S 发布邮件
mail_admin_edit C→S 编辑/取消编辑邮件
mail_player_list_request C→S 请求已注册玩家代号名单
afk_heartbeat_v2 C→S AFK 心跳(输入序号与空闲时间;命令发送前同步基线)
afk_state_v2 S→C AFK 状态与服务端配置的头顶前缀
title_state_request C→S 请求刷新当前玩家称号数据
title_equip C→S 请求佩戴指定称号;空 ID 表示卸下
map_view_request C→S 订阅指定维度/图层/高度的有限地图视口
map_action C→S 公共点操作、位置共享开关或受权限保护的传送
map_session S→C 稳定存档 UUID、地图能力与维度高度信息
map_tile S→C 一个实际探索区块的颜色、高度、光照与群系快照
map_waypoints S→C 经服务端过滤的公共点列表与接收者本人的只读锚点列表
map_live S→C 允许共享的在线玩家位置和可选区块加载等级
map_mob_query_v2 C→S 请求按生物种类查询模拟范围,中心与维度由服务端确定
map_mob_snapshot_v2 S→C 按请求 ID 分包同步生物位置及实际图层,收齐后替换旧快照
map_action_result S→C 公共操作确认;失败时保留客户端输入

🔧 技术栈与依赖

依赖 版本 用途
Minecraft 26.2 基础引擎
Fabric Loader 0.19.3 模组加载器
Fabric API 0.154.0+26.2 Fabric 标准 API
ModMenu 20.0.0-beta.4 模组菜单集成
Placeholder API 3.1.0-beta.1+26.2 文本占位符
Trinkets 精确匹配 4.1.0-rc.1+26.2(trinkets_updated) 饰品槽系统(第 34 项功能依赖,硬依赖;不再兼容 beta.2 旧接口)
GeckoLib 5.5.3+ 实体动画与模型渲染(硬依赖)
Moog's Structure Lib 3.0.4 声明依赖(村庄结构注入所引用)
Fabric Permissions API 0.6.1(内置) 跨模组权限 API
LuckPerms 5.5(建议运行时) 高级权限控制

构建要求:JDK 25+ · Gradle(Fabric Loom 1.16-SNAPSHOT)· 模组版本 1.20.5-indev

构建与 CI/CD:GitHub Actions 工作流(.github/workflows/build.yml)在 Ubuntu / Windows / macOS 三平台使用 JDK 25 自动构建,Linux 构建产物自动上传。


🏗️ 项目结构

src/                                       # 452 个 Java 源文件(main 273 / client 179)
├── main/java/top/csituka/youzaiworldcore/
│   ├── YouzaiworldCore.java              # 主入口
│   ├── account/                          # 账户认证(data/command/mixin/util 子包)
│   ├── api/                              # Api 网桥(ApiHttp 统一 HMAC 传输 + ApiServiceClient 账户/外观)
│   ├── block/ + entity/                  # 自定义方块与方块实体
│   ├── command/                          # 命令注册(Afk/Event/Function/Reload/TeleportAnchor/Update/Status)
│   ├── component/                        # 数据组件
│   ├── config/                           # 服务端外部设置(全局/个人/事件/各模块配置,17 个分节)
│   ├── data/                             # 传送锚点 SavedData
│   ├── dimensionalinventories/           # 维度池系统(含 WorldPoolTeleportPayload)
│   ├── enchantment/                      # 自定义附魔 ResourceKey 注册(ModEnchantments,12 个)
│   ├── enchlevellangpatch/               # 附魔等级语言补丁(api + impl)
│   ├── event/                            # 事件处理器(31 个:末地门/双开门/老吴贴贴/虚空杖/骨粉甘蔗/带电苦力怕/监守者/切石机/传送卷轴蓄力/生命汲取/风弹/熔炼/阳光修复/乐魂涡轮/幼年僵尸/唱片机循环/合成音效/Meme画作掉落/铁锭修铁砧/死亡音效 等)
│   ├── entity/seat/                      # 座椅实体系统
│   ├── invisibility/                     # 隐身系统
│   ├── item/                             # 物品、工具、创造标签页(1 个,内含 7 类分组)、预设(9 个)、隐形展示框
│   ├── luckperms/                        # LuckPerms 集成(LuckPermsHelper 统一鉴权)
│   ├── mail/                             # 邮件系统(Mail / MailManager / MailApiClient / MailSettings / MailPermissionHelper;数据在 Api 服务端)
│   ├── mana/                             # 魔力系统
│   ├── mixin/                            # Mixin(35 个,含子包 afk / babyzombie / chargedcreeper / craftsound / damagenumber / doubledoors / invisibility / jukebox / painting / pet / seat / skill / trialvault)
│   ├── network/                          # 网络数据包(Payload + ModPayloadTypes + ModNetworking)
│   ├── pet/                              # 宠物系统(config/command/event 子包 + PetGlobalState/PetEntry)
│   ├── placeholders/                     # Placeholder API 集成(32 个占位符)
│   ├── respawn/                          # 原地重生(InPlaceRespawnManager)
│   ├── screen/                           # 容器菜单
│   ├── skill/                            # 冒险等级 + 属性系统
│   ├── sound/                            # 自定义 SoundEvent(1 个:cloud_genshin)
│   ├── status/                           # 统计系统(StatsManager,77 项指标 + 命令)
│   ├── trialvault/                       # 试炼宝库无限领奖配置(TrialVaultConfig)
│   ├── update/                           # 更新检查(UpdateChecker 等 6 文件)
│   ├── util/                             # DebugLogger、TrinketHelper、BackupArchive 等工具
│   └── worldgen/                         # 世界生成(VillageStructureInjector 村庄结构注入)

├── client/java/top/csituka/youzaiworldcore/
│   ├── client/Client.java                # 客户端入口(注册高亮/边框/铁砧/邮件命令等)
│   ├── command/                          # 客户端命令(Invisibility / DoubleDoors / Pet / Mail 转发 + YzwcServerMirrorCommand 占位镜像)
│   ├── config/                           # 客户端外部设置(含 yzuiEnabled)+ ConfigIOManager(配置导入导出)+ PlatformDetector
│   ├── effect/                           # 传送 FOV 效果
│   ├── higherchat/                       # 聊天框位置优化(HUD 图标位置追踪)
│   ├── highlightitem/                    # 物品高亮(HighlightItemClient / HighLightCommands / Configurator / Colors / ItemComparator)
│   ├── itemborder/                       # 物品边框(ItemBorderClient / ItemBorderConfig / ItemBorderRenderer)
│   ├── anviluses/                        # 铁砧使用次数显示(AnvilUsesClient)
│   ├── client/accessor/                  # 渲染访问器(RenderCrownDuck、ConnectScreenCancelAccess)
│   ├── hud/                              # 魔力条 / 冒险等级 HUD / YZUI 物品栏·装备·状态效果·记分板·生命·饥饿·盔甲·氧气条 / 热键栏 / 工具信息覆盖
│   ├── skill/                            # 客户端冒险等级/属性数据(ClientAttributeData)
│   ├── update/                           # 更新检查客户端状态(ClientUpdateState)
│   ├── laowumeme/                        # 老吴贴贴客户端(Geo 模型/渲染/音效池)
│   ├── particle/                         # 粒子渲染(方块动画/物品闪光)
│   ├── pickup/                           # 拾取显示(item/XP 浮动提示 + 字幕捕获)
│   ├── mixin/client/                     # 客户端 Mixin(60 个:标题/选项/按钮/暂停/聊天/加载/座椅/渲染/拾取/附魔补丁/itemborder/YZUI 物品栏·血条·上下文栏·配方书/technocrown/AFK 输入/实验性警告跳过 等)
│   ├── network/                          # 客户端网络处理(ClientNetworking)
│   ├── renderer/                         # 方块/实体渲染器(含传送锚点 BER、飞行信标 BER、feature/TechnoCrownFeatureRenderer)
│   └── screen/                           # GUI 屏幕(MenuScreen、Login/Register/PasswordReset/AccountManagement、YzuInventoryScreen/YzuCreativeInventoryScreen、MailScreen/MailComposeScreen/MailSentScreen、element/widget/block 子包)

└── main/resources/
    ├── assets/youzaiworldcore/           # 纹理、模型、语言文件(10 种语言 × 889 键)、音效(4 个 .ogg:cloud_genshin + laowu2/qiliang/zhanhou)、画作纹理(12 张 Meme 画作)
    ├── data/                             # 成就(31 个)、配方(20 个)、战利品表(方块 6 + 箱子 4)、维度(login_hall)、结构(9 个,含 5 种村庄变体 + 3 遗迹 + cloud_genshin_ruins)、结构集、模板池、附魔(12 个 JSON)、新手教程函数(19 个)、jukebox_song(1 个)、trinkets 饰品槽
    └── fabric.mod.json                   # 模组元数据(声明 fabric-api / placeholder-api / modmenu / moogs_structures / trinkets_updated / geckolib 为硬依赖)

.github/workflows/
└── build.yml                             # CI/CD 构建工作流

📦 配方清单

配方 类型 描述
yz_ingot_from_blasting_raw_yz 熔炼 悠哉原矿 → 悠哉锭
yz_block_from_blasting_raw_yz_block 熔炼 原矿块 → 悠哉块
yz_ingot_from_yz_block 合成 悠哉块 → 9 悠哉锭
yz_ingot_from_nuggets 合成 9 悠哉粒 → 悠哉锭
yz_block 合成 9 悠哉锭 → 悠哉块
yz_nugget_from_ingot 合成 悠哉锭 → 9 悠哉粒
yz_pickaxe / yz_axe / yz_shovel / yz_hoe / yz_sword 合成 悠哉系列工具
decomposition_table 合成 分解台
fly_beacon 合成 飞行信标
heart_of_guardianship 合成 守护之心
void_staff 合成 凭虚法杖
invisible_item_frame 无序合成 物品展示框 + 幻翼膜 → 隐形物品展示框
invisible_glow_item_frame 无序合成 发光物品展示框 + 幻翼膜 → 隐形发光物品展示框
raw_yz_block / raw_yz_from_raw_yz_block 合成 原矿块转换
craftable_end_portal 合成 末地传送门框 ×12(末影之眼 + 龙蛋 + 末地石)

共 20 个配方文件(data/youzaiworldcore/recipe/)。烈焰法杖与天星法杖目前无合成配方,仅可通过创造模式标签页或命令获取。


🌐 相关链接


🤝 贡献者

核心作者:Maskviva, ress2338396, zxabinbina, Youzai World Team
贡献者:byzzdemy, Fogg05, lucko, MDLC01, why


注意:测试模组请在服务端进行,客户端单独运行无法正常工作。客户端命令(/yzwc pet、/yzwc mail、/yzwc function *、/yzwc settings highlight_item)需连入服务器后方可生效。

YZUI 说明:YZUI 界面系统(物品栏 / HUD / 配方书重绘)为纯客户端功能,可在客户端设置的「视觉」分栏中通过「启用 YZUI」复选框关闭,关闭后全部回退原版渲染,便于资源包接管。

About

服务器玩法核心

Topics

Resources

Stars

1 star

Watchers

1 watching

Forks

Releases

Used by

Contributors

Languages