CraneAttribute 鹤属性
一款脚本驱动的模块化属性引擎,现已发布,插件永久免费
设计理念
在过去一年半(2024–2025)的时间里,我在使用 AttributePlus 作为核心插件开发服务器,和维护 AttributeMM 的过程中,遇到了不少令人困扰的问题,例如:
扩展性受限
早期版本中,我始终无法对属性触发器进行扩展,也无法修改属性处理器。无奈之下,只能借助一些非正规手段实现所需功能——这一点在 AttributeMM 3 的历代版本中体现得尤为明显,为此我耗费了大量精力。API 行为不一致
调用AttributeAPI.addPersistentSourceAttribute(...)时,若将time参数设为-1,并不会被视为永久生效;然而通过命令直接赋予持久化属性源时,却可以正确识别为永久。这种不一致性给开发带来了不必要的困惑。内部方法变更缺乏兼容性
我曾依赖 AttributePlus 中一些未公开的方法,例如setLastAttackTime。但在某次更新中,该方法被重命名为setLastAttackMillis,导致我的插件直接报错。为了兼容不同版本,我不得不额外编写版本判断和适配逻辑。脚本环境陈旧
编写脚本属性时,系统仍基于较老的 ECMAScript 5.1 标准,缺乏现代 JavaScript 特性支持。再加上频繁的依赖导入与服务端重启,极大降低了开发效率。版本跟进滞后
在相当长的一段时间内,AttributePlus 未能及时适配新版 TabooLib,导致无法兼容 Minecraft 1.21。这让我在尝试升级服务器版本时陷入被动。框架过于封闭
最核心的问题在于,AttributePlus 给我的感觉是“不够可控”。开发者几乎只能在其预设的框架内进行有限扩展,而难以真正突破既有结构。部分原因也源于 Kotlin 的设计哲学——例如类默认不可继承,必须显式添加open修饰符(类似于 Java 中的final)。
这并不代表 AttributePlus 是一款劣质插件——恰恰相反,它是一款极为出色的插件。尤其是 3.x 版本的发布,堪称一次“创世纪”般的革新。通过 bStats 平台的数据可以清晰看到,AttributePlus 在属性类插件中几乎处于统治地位,广受开发者与服务器管理者的信赖与青睐。
在等待 AttributePlus 跟进 Minecraft 1.21 的日子里,“CraneAttribute”的念头悄然萌芽。我渴望打造一个更自由、更可控的属性系统——哪怕最初只为满足自己的需求。
介绍
🧩 纯模块化设计
插件由多个独立功能模块组成,支持自由组合、按需启用。结构清晰、扩展方便、维护简单——新增功能无需改动核心,关闭模块也不会影响整体运行。
📜 属性由脚本驱动
支持使用 JavaScript 与 Groovy 动态编写属性逻辑。Groovy 更可进一步用于深度功能扩展——从数值计算、状态联动到系统集成,一切皆可脚本化!
⚡ CPU 友好型架构
通过在内存中缓存关键数据与计算结果,避免重复运算,显著降低 CPU 负担。虽然内存占用略高(约增加几十 MB),但换来的是更低的 CPU 开销与更高的运行效率。
✅ 面向高版本持续进化
积极适配 Minecraft 1.21+ 及后续版本,未来将深度结合新特性,为你解锁更多创意玩法!
🔌 兼容部分 AttributePlus 附属生态(需 Caaaat 桥接)
通过轻量中间件 Caaaat,CraneAttribute 可使用为 AttributePlus 开发的操作属性源类的附属插件。无需重写逻辑,即可复用现有玩法模块——让旧生态在新框架中继续生效!
🎮 极高可玩性
CraneAttribute 本身不预设具体玩法,仅提供模块化框架与脚本驱动能力。所有属性、行为、规则均可完全自定义——插件有多强,取决于你的想象力!
CraneAttribute —— 不是给你一套玩法,而是给你创造玩法的能力。
如果你正在开发一整套 RPG 系统、技能机制或复杂属性体系,那么我极度推荐你使用!
警告
当前处于开发测试阶段,插件可能存在 BUG、功能缺失!
支持版本
理论支持 1.9 - 1.21.10
提示
仅测试 1.12.2 1.21.8 1.21.10,目前位于 1.21.8 开发
插件依赖
PlaceholderAPI (可选)
MythicMobs (可选)
ProtocolLib (可选)
下载
加入QQ群 CraneCraft - 交流群 下载
