SnowyGems
更新日志
当前开发改动、配置迁移与验证边界。
0.0.9
更新日期:2026/10/4。
- 修复
onAttack的目标传递:Chance、All、Repeat等控制流下未指定目标的子动作继承外层target: Entity,显式target: Self仍作用于施法者。没有命中生物时,Entity技能直接跳过,不再错误地作用于自己。 - 修复 Folia 1.21.11 测试日志中的跨区域调用:每秒常驻 BUFF 在玩家所属区域执行;
Delay/Repeat、GUI 刷新、上线提示与禁飞恢复等延迟任务跟随相关实体。施法者与目标在延迟期间分属不同区域时,该次子动作跳过。 - 本次构建及 58 项自动测试通过;Folia 改动依据实际日志修复,仍需在服务器复测其他交互与跨区域场景。
0.0.8
更新日期:2026/10/1。
Enchant奖励支持var: "v+2"等表达式,以当前附魔等级v一次提升多级;仍可用固定level或省略var保持每次 +1。拆卸按实际变化回退。- 宝石配置新增
Removable: false,允许镶嵌但禁止拆卸;装备可通过config.yml中的DismantleProtection.Lore或snowygems:no_dismantlePDC BYTE 标记禁止拆卸全部宝石。 - 拆卸台对受保护宝石显示说明,点击时在扣费前再次校验;游戏内编辑器字段及动作参数增加用途描述,并可切换
Removable。 - 宝石配置有附魔与 BUFF 二级强化示例;查看与拆卸说明保护设置。
0.0.7
更新日期:2026/9/26。
- 修复随机点券兑换券因表达式产生小数而被 PlayerPoints 拒绝的问题。
Point只求值一次,交易前向零取整,提示与实际到账整数一致;Internal 与 PlayerPoints 使用相同奖励数额。旧随机配置无需修改,版本保持 0.0.7。 - 取整为 0、非有限数或超出点券范围的 Point 奖励不生效;只有这条奖励的兑换券保留。
100+2900*$RANDOM()实际发放 100~2999 点券,包含 3000 可改为100+2901*$RANDOM()。 - 修复极小随机数写成科学计数法时漏读指数的问题,避免随机奖励偶发超出配置范围;表达式支持
1.0E-7等数值。 Chance、If、All、Repeat、Reward、RewardSwitch等嵌套技能及Conditional嵌套奖励可用then对象或列表编写;内置技能示例已转换。/sgem migrate会递归转换可验证等价的旧嵌套技能,并保留触发器与目标;嵌套执行加入解析缓存。Switch的两个形态可写成from/to。- 拆卸计价与成功率集中到
dismantle/*.yml,金币、点券、经验可分别计算并组合。 - 编辑器改为全 GUI 操作,可按分类创建、编辑、删除宝石和符文配方;修复边框覆盖返回、添加与翻页图标的问题。
- 新增
gui/editor.yml,可配置编辑器标题、图标和按钮位置。 /sgem dismantle改为放入装备的拆卸台;右侧逐颗显示实时价格并支持翻页,界面可在gui/dis.yml自定义。/sgem debug all与指定 tag 的指令现在会直接开启控制台日志;编辑器保存触发的配置重载不再关闭本次运行期间的调试。Rewards与Skills新增 YAML 对象式动作,旧函数行仍兼容。- 新增
/sgem editor和管理员权限snowygems.migrate、snowygems.edit。
0.0.6(修订构建)
文档同步日期:2026/9/18。此节对应当前 0.0.6 工作区与已交付修订包,不表示 GitHub 已发布新 Release;旧 0.0.6 构建未必包含以下改动。
新增
- 玩家只读图鉴
/sgem catalog与snowygems.catalog权限。 - 管理员
/sgem history <玩家名>与snowygems.history权限;独立的轮换操作日志。 Embed数量限制正式生效,新增ExclusiveGroup与TrackApplied。
修复与行为变更
- 只有全部实际奖励可安全撤销才允许拆卸返还,修复石等纯一次性效果不再生成新的可拆卸实例。
- 无限耐久、ItemFlag 和技能隐藏补充撤销凭据;隐藏技能仍能触发并读取动态等级。
- 技能 Slot 生效,主动 / 定时技能共用成功施放冷却;同 ID BUFF 每轮最多成功施放一次。
- 潜行左键同 tick 去重,发射物快照缺失不再借用当前主手;嵌套与延迟任务使用共享预算。
- PlayerPoints 不可用时暂停交易,不再回退到另一套内置余额。
- 重复 ID、加载异常和关键引用错误拒绝加载;strict 对配置错误拒绝加载。失败重载恢复旧注册表,首次启动失败停用插件。
图鉴与历史显示修订
- 修复 catalog 忽略 Texture 导致头颅显示为 PAPER;恢复头颅纹理和 Glow。
- history 每次显示最新 5 条,一行包含本地时间、操作、物品名称和结果;不向聊天直接输出 UUID、制表符、内部键值和扣费中间记录。
- 物品名称去色、清除混淆 / 控制字符并限制长度;磁盘完整诊断信息仍保留。
验证与升级
本次修订插件构建成功,40 项自动测试通过;不等同于全部目标服务端、经济插件与真实背包交互已验证。更新前备份装备与配置,同名配置文件不会强制覆盖。旧记录缺少必要凭据时可能无法拆卸;详见升级检查清单与图鉴及操作记录。
0.0.5
更新日期:2026/9/11
新增
- 更新可以将方块标记为符文锻造台的功能
0.0.4
更新日期:2026/9/10
Paper 物品数据兼容修复(Issue #1)
- 宝石标识、镶嵌与拆卸历史、属性累计和隐藏 Lore 改存 Bukkit PDC,移除插件对 TabooLib NMS ItemTag 的调用与模块依赖。
- 通过 Paper 公共物品序列化接口导入旧 NBT;保留空数据记录,避免拆卸后旧标签再次出现。
- 修复默认属性保留标记可能被后续 ItemMeta 写入覆盖的问题。
- 增加旧版与现代 NBT、压缩格式、长历史和损坏数据的回归测试。未完成 Paper 26.2 实服验证,升级与降级说明见排错与调试。
符文锻造
- 新增
/sgem rune、材料数量预览、二次确认和分页;新增snowygems.rune玩家权限与RUNE_FORGE菜单按钮。 - 新增 10 条可配置配方:碎片合成四色一级符文,红蓝绿升级为二级,二级回收为碎片。
- 扣料和产物空间统一规划,缺料或空间不足时保持背包原样;执行前重查,旧菜单与重载后的点击失效。
- 补充 10 个锻造规划回归测试,覆盖满背包、跨格扣料、堆叠上限与材料守恒。详见符文锻造与升级。
功能与交互
- 默认一、二级符文使用可拆卸的 Lore 标记,便于 SX 等外部属性插件读取;示例本身不直接提供对应属性或技能效果。
- 统一默认镶嵌台、符文镶嵌台和分解台的装饰、引导与操作入口;确认预览显示符文槽名称,替代难理解的内部格子编号。
- 当前默认符文槽仍按配置关键词匹配颜色;需要严格区分时,可配置
GEM:物品ID或CATEGORY:分类,未引入独立的符文颜色类型。 - 补齐四色符文示例、符文镶嵌台确认预览、未镶嵌符文分解为碎片的配方。
- 新增
CONFIRM_EMBED与CLOSE,支持跳转后返还输入;保留旧菜单 Shift+右键装备的批量入口。 - 宝石分类浏览支持分页,领取仅响应左键与 Shift+左键。
- 统一装备单件限制、符文槽规则、Gui 限制与执行前预检。
修复
- 修正矛的分类和技能说明:矛是突刺/蓄力近战武器,不属于
RANGED,示例不再使用不存在的onLaunch:SPEAR/onHit:SPEAR投掷流程。 - 防止双击带走装饰图标、拖拽/数字键/副手交换绕过槽位限制,普通取回装备不会误触镶嵌。
- 菜单持有布局快照,重载与正常停用前回收投入物品;关窗后停止无效刷新。
- 直接使用先预留一颗宝石再发奖,修复失败消耗不一致和礼包奖励被手持回写覆盖。
Eat: true的消耗类宝石可由食用事件处理,支持副手,取消原版吃喝避免二次消耗;原版食物、药水效果和空瓶产物不执行。- 新镶嵌逐颗记录实际成功的奖励及撤销数据,拆卸只移除最近的一颗同 ID,并处理失败退款。
- 点券扣除检查实际交易结果,拒绝非法金额;随机池忽略非正权重并避免整数总权重溢出。
- 修复
none:命令提示无法静默、方块主副手重复打开、被取消的挖掘清除工作台标记等问题。
配置与文档
- 菜单加载检查行列、槽位字符、类型、数量和重复菜单名。
- 配置自检增加未知奖励、无效奖池和不存在的 Gui 引用。
- 新增启动与重载后的配置健康检查;缺失的核心配置文件会自动尝试以非覆盖方式补回,仍缺失的路径会在控制台明确列出。
config.yml与语言文件启用迁移支持,新节点尽量补入旧文件;菜单、宝石和技能文件的自定义内容保留并提示手动合并。- 补齐三语操作提示,更新语言目录、标记入口、权限、费用取整和旧装备限制说明。
- 已有
gui/gui.yml、gui/rune.yml不会自动替换,请按工作台升级步骤合并。
验证范围
- 24 项回归测试通过,覆盖奖励撤销、符文锻造规划、PDC 编解码和旧 NBT 导入。
- 19 个 YAML、168 个宝石、3 个菜单、3 种语言(各 179 个键)、10 条符文配方校验通过。
升级注意
- 更新前备份插件目录、世界和玩家数据。新物品与后续写入使用 PDC,旧构建无法读取新数据,不宜直接降级。
- 符文新配置文件缺失时会释放;已有 GUI 请手动合并确认按钮、锻造入口与符文槽规则。
- 默认符文只写 Lore 标记,需在外部属性插件中配置对应效果。
项目提供自动回归测试和配置检查。构建及测试结果以本次交付记录为准。0.0.9 已根据 Folia 1.21.11 的实服报错修复对应区域调度,修订构建仍需复测;真实 Vault/PlayerPoints 账户和全部目标版本尚未完成联机验证。
旧装备无法补回历史上丢失的重复强化次数或数值,详见旧装备的边界。
以下 0.0.1–0.0.3 内容合并自指定的历史更新日志,描述对应版本的情况;当前功能与兼容性限制以 0.0.6 修订说明和各功能页面为准。
0.0.3
更新日期:2026/9/8
修复
- 修复新版宝石礼包使用后无效果的问题
0.0.2
更新日期:2026/8/26
新增
- 增加镶嵌台标记功能,使用
/sgem mark即可将准星所指的方块变为镶嵌台。右键即可打开镶嵌台 - 可在
config.yml文件中的tagged-blocks字段中修改可被标记成镶嵌台的方块 - 语言文件大改,增加多语言功能,内置简体中文,繁体中文与英语
修复
- 修复材质为食物的宝石可以食用的漏洞
- 修复材质为末影之眼的宝石可以扔出的漏洞
- 修复普通物品宝石可以被分解或参与合成的漏洞
配置变动
- 语言文件迁移至
\lang文件夹中 - 新增
MarkedBlocks.yml文件来记录被标记成镶嵌台的方块
破坏性变更
- 现语言文件不支持热加载,切换语言或更改文本内容之后请执行
/sgem reload指令
0.0.1
初始先行版(历史记录)
核心系统
- 宝石镶嵌:把宝石镶到装备上获得属性、附魔、常驻 BUFF 与主动技能
- 三种宝石类型:镶嵌类(默认)、
PlayerGem(右键直接生效)、RandomGem(开箱抽奖) - 奖励函数体系:
AttributeEnchantLoreAddLoreVarConditional等,支持表达式与叠加上限 - 技能引擎:绑定装备 lore 文本触发,支持触发标记、条件、概率、延迟、重复与形态切换
- 常驻 BUFF 引擎:每秒扫描装备 lore 标记施加效果
- 自定义工作台菜单:字符网格布局,五种槽位类型
- 内置宝石镶嵌台
/sgem embed
查看与拆卸
/sgem inspect只读查看装备上已镶嵌的宝石/sgem dismantle拆卸宝石,可配置费用(金币/点券/经验)与损坏概率- 拆卸时真正撤销属性修饰符与附魔等级,而非仅跑
$onRemove - 镶嵌属性宝石前先固化装备原生属性,避免护甲/韧性等自带属性消失
多版本兼容
- 支持 1.21.4 → 26.x,同一份配置跨版本通用
- 启动时读服务端注册表建快照,不按版本号硬编码
- 七个可开关的版本功能模块(
MaceSpearCopperEquipment等),默认auto - 1.21.11 矛(七种材质)与其专属附魔「突进」
lunge的完整支持 - 旧名兼容:
DURABILITY、GENERIC_MAX_HEALTH等老配置无需修改 /sgem compat版本能力报告与配置自检,区分「版本不支持」与「写错了」
权限
- 13 个细粒度权限节点,两个伞节点
snowygems.user(默认所有人)与snowygems.admin(默认 OP)
版本更新与公告
- 服务器启动完成后异步检测一次,本地版本与官方不一致即提示
- 公告拉取,控制台与管理员上线时展示
- 遵循 JVM 系统代理,可完全关闭
经济对接
- 金币走 Vault,点券支持内置账户或 PlayerPoints
- 兑换券类宝石发放后主动告知玩家获得数额
排错
- 20 个 debug tag,可按范围过滤日志
- 全部玩家可见文案集中在
lang.yml(134 个节点),热重载生效
版本记录约定
发布新版本时,在上方按这个格式追加:
## 0.1.0
**新增**
- 我是功能
**修复**
- 我是问题
**配置变动**
- 我是变动
**破坏性变更**
- 我是变更