更新记录
最后更新于
这有帮助吗?
最后更新于
这有帮助吗?
可能有部分小变动未记录,但最主要的新增、修复、优化记录都在下方
修复 伤害反弹类 属性可能会导致双方相互无限反弹的情况
修复 移速加成 属性因负值属性导致报错问题
优化 玩家物品描述属性标签读取处理,优化相关处理
优化 AttributeManager 属性管理器中各类型属性的管理集合
新增 AttributeAPI 实体攻击方法
attackTo(entity, attacker, damage)
造成固定伤害方法:
该方法 entity.damage(damage)
相比,该方法直接击杀目标击杀者会为 [attacker]
建议各类真伤处理调用该方法,该方法造成的时候不会触发二次属性处理
新增 实体单体冷却中控器(针对非玩家实体) 实体死亡时将自动清除相关的冷却数据
在 AttrScriptUtils.kt
类中新增相关调用方法,可在属性脚本中调用
Utils.hasEntityCooling(name, entity) 目标是否冷却中
Utils.hasEntityCooling(name, entity, time) 目标是否冷却中,未冷却则进入冷却
Utils.resetEntityCooling(name, entity) 重置目标冷却
新增 CUSTOM 自定义触发器属性类型
支持通过自定义 JavaScript 属性脚本编写该类型,脚本配置编写下面方法即可:
function runCustom(attr, caster, target, params, source, handle)
caster 触发者
target 触发目标(可为空)
params 触发器事件传入的参数
source 触发器此次事件对象
新版自带 3 种触发器,需要 SkillAPI 插件支持:
SKILL CAST(技能释放)
SKILL DAMAGE ENTITY(技能攻击非玩家实体)
SKILL DAMAGE PLAYER(技能攻击玩家实体)
注意 该类型属性需在 onLoad()
方法内调用 setCustomTrigger(name: String)
方法
设置该属性脚本的触发器名称,例如 setCustomTrigger("SKILL CAST")
JavaScript 用法示例:
新增 CUSTOM 自定义触发器注册
附属开发者可通过 CustomTriggerComponent
类,自定义注册更多不同的触发器
下面附带 SKILL CAST
属性触发器代码示例
可能有部分小变动未记录,但最主要的新增、修复、优化记录都在下方
新增 AttrAttributeSourceAddEvent 玩家属性源新增事件
新增 AttrAttributeSourceRemoveEvent 玩家属性源移除事件
新增 %apcentral_base_<min/max>% 变量
获取某个属性值白值 (该数值不包含百分比加成属性源所加成的属性值)
新增 KILLER 属性处理类型,击杀目标时触发相关处理
支持通过自定义 JavaScript 属性脚本编写该类型,脚本配置编写下面方法即可:
function runKiller(attr, killer, entity, handle)
新增 属性自定义计数器工具
可用于在属性处理中对某些数据进行计数
AttributeData.getCounter() 获取 counter 主控对象
counter.getCounter(name, type)
counter.getCounter(name, type).resetValue()
counter.getCounter(name, type).getValue(def)
counter.getCounter(name, type).setValue(value)
counter.getCounter(name, type).updateValue(value, def)
counter.getCounter(name, type).getContent(def)
counter.getCounter(name, type).updateContent(text)
修复 清除属性源时,属性源内的生命属性值扣除不会实时作用到玩家生命值上的问题
可能有部分小变动未记录,但最主要的新增、修复、优化记录都在下方
新增 对最新服务器版本兼容
新增 玩家属性异步更新队列
新增 MythicMobs 怪物属性加载器,计算公式运算功能
即怪物生成时自动根据怪物等级自适应属性列表中的计算公式
更新记录尾部附件:图1
新增 MythicMobs onSignal 技能触发器信号
格式为 ~onSignal:AttributePlus
当玩家对实体造成伤害时触发
配合 attributes.yml
中 mythic-signal
配置项,可在技能处理通过占位符获取属性触发值
更新记录尾部附件:图2
新增 PersistentCommand 持久化属性源命令 save
参数
当该参数传入为 false
时,此次增加的数据将不储存至数据 (即重启/退出服务器后消失)
新增 AttributeAPI 方法 addPersistentSourceAttribute
新增 save
参数
优化 移除 JavaScript 公式计算,采用全新公式计算处理器
优化 属性处理效率 (Plugin、属性脚本),降低消耗一定程度提高处理效率
新增 AttrEntityDamageEvent 事件 (该事件可获取变动此次攻击处理最总伤害值)
新增 属性注册类、脚本属性各项方法新增 handle(AttributeHandle)
对象参数
该项调整将影响到此版本前通过 插件、自定义属性脚本 所注册的属性失效,需进行修改
该版本起,你可以通过 handle 对象参数调用所有 AttributeHandle 对象内的方法
各类型主逻辑处理构造方法:
run(attr, entity) -> run(attr, entity, handle)
runAttack(attr, attacker, entity) -> runAttack(attr, attacker, entity, handle)
runDefense(attr, entity, killer) -> runDefense(attr, entity, killer, handle)
attr 对象 90% 方法调用最尾参数加上 handle 参数,例如:
attr.getDamage(attacker) -> attr.getDamage(attacker, handle)
attr.getRandomValue(attacker, "属性名") -> attr.getRandomValue(attacker, "属性名", handle)
新增 实体上一次攻击、被攻击时的时间戳记录,可通过实体 AttributeData 对象进行调用
data.getLastAttack() 上次攻击时的时间戳
data.getLastDefense() 上次被攻击时的时间戳
data.getCurrentTime() 当前时间戳 (current - time / 1000 = 间隔时间)
新增 AttributeCalculatorSource 自动运算属性源工具类
packet: org.serverct.ersha.attribute.data.AttributeCalculatorSource
可根据传入的占位符参数数据自动运算列表内属性公式,并生成 AttributeSource 对象
更新记录尾部附件:图3
修复 3.3.1.2 版本可能出现的登录假死问题
修复 可能被挂端利用异常发包导致线程数溢出问题
修复 添加/清除 玩家属性源时 属性加成值(百分比格式) 不更新问题
该版本起,增加玩家身上存在加成值的属性时将触发属性加成更新
在某种特殊的情况下,可能造成玩家属性值异常的情况 (异常调用API可能造成)
新增 对 1.20 服务器版本兼容
新增 吸血属性触发时是否额外造成吸血伤害 (attribute.yml
-> options.vampireDamage
)
重写 玩家登陆初始化属性逻辑,玩家属性初始化完成时将触发 AttrPlayerInitializeEvent 事件
重写 生命力机制处理方式,可兼容其他插件、模组所增加的生命值
修复 部分服务器可能会出现生命力突然被重置的问题、生命小概率乱跳问题
新增 对 1.19.4 服务器版本兼容
修复 全息显示不自动清除问题
修复 属性脚本可能触发死锁问题 (极小概率)
调整 属性脚本编写格式 (3.3.1.1)
不再使用 Attr 占位符作为属性对象,改用方法内参数,旧版配置均需要修改
onLoad() -> onLoad(attr/Attr)
run(entity) -> run(attr/Attr, entity)
runAttack(attacker, entity) -> runAttack(attr/Attr, attacker, entity)
runDefense(entity, killer) -> runDefense(attr/Attr, entity, killer)
上面的参数名你可以写为 Attr 那样子你就无需修改方法内代码逻辑
旧版脚本内容 -> 新版脚本内容
新增 玩家属性变量数据缓存功能
防止 3.3.0.8 版本的 自定义条件规则标签
功能在玩家首次登录服务器
时,无法正常获取到玩家属性变量值,导致标签判断不通过
新增 玩家数据包异常检测功能
该版本在接收到大量异常操作时会将玩家踢出服务器
防止玩家利用作弊客户端发送大量异常数据包 (切换、关闭界面)
旧版本用户可将服务器核心更新至 Paper 核心,或使用新版插件
修复 属性范围值格式带空格时不读取问题,例如 "XXX - XXX" (正则毛病)
修复 属性值加成数值异常,使用 (%) 百分比加成格式时 (3.3.0.8.1)
修复 属性变量在某种情况下无法读取问题 (包括战斗力变量异常问题) (3.3.0.8.2)
优化 实时同步类与加成类属性的处理任务 (3.3.0.8.1)
修复 某种情况下出现的玩家血量蹦迪问题
修复 旧版本使用 (%)百分比属性加成 时加成功能失效问题
修复 职业条件规则标签配置无法修改问题
修复 自定义读取格式内 @value 正则处理问题
该问题导致当标签属性值 < 10 时无法正常读取
新增 持久化属性源(属性数据)功能
该功能可以将玩家每个属性源转存持久化并可设置 失效时间或永久
该功能提供相关命令,储存方式为本地储存、数据库储存
命令 ap persistent [player] [source] [attributes] [time]
新增 开发者玩家属性操作方法 (持久化属性源)
AttributeAPI.addPersistentSourceAttribute(data,source,attributes,time)
为指定 AttributeData 玩家属性数据增加一个持久化属性源数据
AttributeAPI.takePersistentSourceAttribute(data,source)
为指定 AttributeData 玩家属性数据清除一个持久化属性源数据
新增 自定义条件规则标签
该功能支持 Kether 语法判断,自定义标签、读取格式
让普通用户也能通过配置自定义新的规则标签,不再需要写附属
如 "战力要求"、"氪金要求"、"XXXXX" 等条件规则标签
兼容 1.19.3 服务器版本核心 (修复可能出现的异常)
新增 世界切换时属性玩家属性
新增 更好的属性读取逻辑及处理
新版可以更快速高效的读取物品上的属性数据
保留旧版本读取逻辑及处理方式 (配置置设有开关项,默认使用新版)
format.yml -> original-logic-format
新增 自定义属性读取格式 (正则匹配)
该版本起支持用户通过正则自定义不同的读取格式
默认已配置的格式有,容错极高
属性标签 属性值 (属性值)
即 物理伤害: 10-100 (+10)
属性标签 属性值
即 物理伤害: 10-100
属性值 属性标签
即 +100-1000 物理伤害
新增 自定义规则标签读取格式 (正则匹配)
新增&优化 装备职业/装备类型
标签支持多类型限制
装备职业: 剑士/法师
玩家是否拥有任意一个职业权限
装备类型: 主手/副手
可穿戴在主手或副手
新增&优化 装备等级
标签处理方式
自定义装备等级的 等级数据 来源,通过变量 (attribute.yml -> level-placeholder)
规则标签支持范围值限制,如 装备等级: 10-100
限制10至100级内玩家可用
优化 游戏时触发玩家属性更新的处理
修复 MythicMobs 4.X 物品配置 NBT属性读取功能 不兼容问题
新增 自定义 NBT 列表属性加载功能
兼容所有通过 API 传入的物品数据 NBT 标签属性加载
支持自定义多 NBT 标签读取
新增 AttributeComponent
临时属性操作方法
takeAttribute(Target, String, Double)
扣除指定属性值
addAttribute(Target, String, Double)
新增指定属性值
cancelAttribute(Target, String)
取消某个属性此次触发
注意对某个属性值、触发状态操作,你必须确保 该属性在被操作属性之前 触发
否则此次修改将没有任何意义,这些操作仅在此次属性触发事件中存在
修复 AttributeAPI.takeSourceAttribute
减少生命力属性时不实时更新问题
新增 生命同步功能 (本地/数据库储存)
修复 部分服务器存在的 满血退出、残血登录 问题
修复 RUNTIME / UPDATE 类型属性处理异常
修复 因异步导致的 JavaScript 自定义属性触发异常问题
修复 AttributeAPI.addSourceAttribute 增加生命力属性不实时生效问题
新增 属性脚本编写异常分析功能
优化 玩家属性更新异步操作相关内容
优化 玩家 加成类(%)
属性值更新操作相关内容
即使用 (%) 百分比加成格式的属性值
可使用 ap source 玩家名
命令查看加成的属性值列表
该版本起 percentage-attribute(system)
属性源用于储存加成值
优化 玩家属性源查看分别显示 固定值/加成值
让玩家属性来源更加清晰 (ap source 玩家名
)
兼容 LibsDisguises
伪装插件 (兼容伪装玩家类实体)
修复 同步触发 UPDATE
类型属性时可能出现的异常问题
该版本起通过 AttributeAPI
为玩家新增属性时不再自动触发 玩家属性更新
方法及事件
如果需要触发一次所有 UPDATE
类属性,请调用 AttributeAPI#updateAttribute
方法
此次更新调整 不会对已开发的附属 造成影响
改为同步触发 syncUpdate
状态为 true
的 UPDATE
类型属性,即不再触发所有 UPDATE
类属性
syncUpdate
状态需在注册属性时使用 setSyncUpdateState
方法修改,默认为 false
插件自带属性 syncUpdate
默认状态为 true
的有 生命力、移速加成
属性
兼容 对 1.8
版本的服务器进行兼容
因低版本不存在某些条件将导致 蓄力、盾牌、等机制 无法使用
兼容 对 SkillAPI、Magic
技能插件再次兼容
新增 技能伤害触发 攻击类、防御类
属性处理开关配置项
新增 技能伤害触发属性处理黑名单配置项 (在列表内的属性名不触发)
attribute.yml (skill-options
)
新增 限制配置内世界加载属性 (在列表内的世界不启动属性功能)
attribute.yml (limit-attribute-worlds
)
新增 限制属性加载包含配置内描述的物品属性
attribute.yml (limit-attribute-descriptions
)
新增 §<
及 §>
过滤符用于获取描述行过滤符左边、右边的文字
新增 SubAttribute
获取此次攻击强度值方法 (注册属性时可调用)
方法名 getDamageIntensity()
新增 SkillExtensionAPI
扩展类 (SkillAPI)
内置 setMaxMana(PlayerData, Double)
方法 (设置玩家职业最大魔法值)
为什么写,因为傻逼 SkillAPI 没有这个方法,妨碍我写魔法值、魔法恢复属性
新增 SkillAPI
扩展属性脚本配置
魔法值
额外提高玩家魔法值上限
魔法恢复
恢复玩家魔法值
有需要的用户可前往 MCBBS 帖子下载扩展
修复 变量出现多位小数点问题 (战斗力变量)
修复 实体非死亡情况下被清除造成的内存泄露
修复属性数据 内存泄露 问题,在实体非死亡而被清除的情况下会出现该问题
例如一些服务器的 技能的盔甲架 (释放技能时会生成盔甲架过后清除)
优化兼容
对 Purpur 核心 及 高版本 服务器优化兼容并对 JavaScript 部分优化处理
从该版本起高版本服务器无需额外安装 MomoJs 或 MiaoNashorn 插件
修复 MythicMobs 怪物属性加载异常问题
服务器插件数量达到一定时将可能出现该问题 (有人在 65 个插件是出现该问题)
可能导致 AttributePlus 插件在 MythicMobs 插件之前加载才会这样 (玄学问题)
修复 OTHER 类型属性最大生效值限制失效的问题
修复 OTHER 类型属性无法修改战斗力的问题
修复 部分属性标签因相关标签名后失效问题 (受影响的相关属性如下)
经验加成、蓄力加成、蓄力干扰
箭矢速度、箭术精准、箭矢穿透
破盾几率、盾牌格挡、召唤强度
调整 真实伤害处理方式改为直接扣除生命力 (防止受到原版护甲值的影响)
3.2.9.4
新增 攻击系数/防御系数配置项
修复 生命力属性可能报错的问题
3.2.9.3
修复 冰冻属性失效问题
修复 盾牌机制 (盾牌格挡属性生效问题)
兼容 MythicMobs 5.X 版本兼容
兼容 从版本 3.2.9.3 起 1.18+ 服务器版本安装 MiaoNashorn 或 MomoJs 插件即可使用 自定义属性脚本、自定义公式 功能
3.2.9.2
新增 新的脚本冷却机制(保留原先属性冷却功能)
Utils.hasCooling(String, Entity, Double)
判断是否在冷却,如果不在冷却将立即冷却并返回 true 否则返回 false
Utils.resetCooling(String, Entity)
刷新重置冷却
新增 属性生效值限制功能 (超过限制部分的属性值将无效化) (attribute.yml)
修复 3.X 版本以来存在的BUG (可能造成较高消耗 我的锅)
修复 MythicMobs 怪物生命力也被生命力属性影响问题 (导致怪物锁血)
更新 3.2.3 ~ 3.2.7 更新内容丢失 3.2.8
修复 CMI 插件前置可能造成 MythicMobs 怪物属性失效问题
修复 将遗漏的插件依赖补全
新增 更新玩家属性命令 (AP UPDATE 玩家)
新增 查看玩家属性来源列表命令 (AP SOURCE 玩家)
兼容 Taboolib 6.0
兼容 Minecraft 1.17+ 版本 (不出意外的话 1.18 也没问题)
修复 通过 API 为玩家添加生命力属性后 生命力 不更新问题
新增 属性全息功能 (Hologram) 前置 HolographicDisplays
修复 插件重载后 JavaScript 脚本属性不加载问题
修复 物品攻击检测(attackDetection) 提示异常问题
修复 在调用 API 增加属性时可能出现卡属性的问题 (玩家所有属性都不刷新)
修复 PVP PVE防御 属性在身上没有 物理防御 属性时失效问题
调整 插件重载命令从该版本开始不会再清掉怪物身上已存在的属性
新的插件 DungeonPlus 已正式发布至 MCBBS 欢迎下载使用
修复 部分小问题
预告 DungeonPlus 地牢插件进度 ≈ 70% (不出意外六月中旬发布)
说明 该版本修改了 DescriptionRead 组件内的 condition 方法参数,可能会对你的插件造成影响请自行兼容更新
修复 自定义提示消息内 {属性变量} 有时显示为 0 的问题
修复 自定义公式的触发数据储存问题 (就是导致上面显示 0 的问题) 该问题影响调用了 getFormulaValue 自定义公式方法的属性 (JS/JAVA/KOTLIN)
修复 自定义公式内 {entity:属性名} 可能出现的报错问题
修复 defaultArmor 设为 true 后护甲值还是被清除问题
修复 怪物属性 无法刷新问题 (我的锅)
修复 可能攻击时可能出现的未初始化报错问题
修复 装备等级 标签加 1.0 小数点时会报错问题
预告 DungeonPlus 地牢插件将于放暑假前发布,目前进度≈ 50% AttributePlus 基本稳定,如果没有严重问题将停更几个星期,因为要加快 DungeonPlus 的进度 基本上 AttributePlus 的新功能都可以通过 API 进行开发附属,所以也没什么需要我更新的了
新增 原版护甲清除开关
以上配置会在 attribute.yml 配置自动生成 defaultArmor 配置项 原版护甲为百分比抵消伤害,会影响插件伤害的准确性,默认清除(false)
修复 1.16.5+ 版本玩家退出重新登录属性无法刷新并失效问题 (知道吗,就很玄
修复 高版本RGB颜色代码导致属性值读取异常问题
新增 装备等级限制新增对SKILLAPI职业等级的兼容
以上配置会在 attribute.yml 配置自动生成 skillLevel 配置项,默认 false
修复 多个条件判断 组件 造成的冲突问题
修复 重载插件无法修改战斗力配置问题
调整 玩家退出服务器时 不再触发属性更新等事件 (触不触发都那样)
调整 可以通过 "ap.权限名"/"权限名" 方式通过职业限制判断
新增 禁止物品远程攻击功能 (物品攻击检测功能)
新增 禁止物品左键攻击功能 (物品攻击检测功能)
以上配置会在 attribute.yml 配置自动生成对应配置项
修复 装备等级无法以 "装备等级 10 级" 格式生效
修复 SkillAPI 技能伤害 兼容失效 问题
修复 修复 "§|" 过滤符无法对装备等级等规则标签失效
修复 重载属性后导致 PlaceholderAPI 变量失效 问题
新增 新增几个 脚本API 方法
调整 配置注释与实际效果不符问题
修复 修复一个小问题
修复 CatServer、Mohist 属性脚本无法自定义脚本工具问题
修复 使用 API 增加的属性 无法触发规则标签(装备等级等...)限制问题
调整 从该版本起新增配置 无需自己在配置内添加配置节点 将自动生成
修复 读取组件无法卸载问题
调整 读取组件的类型处理顺序
兼容 JAVA版本 9 以上版本
新增 默认 清除 实体原版护甲
新增 AttributeSource#merge 属性源合并方法
修复 修复一些显示上的小问题(
修复 修复末影球会对自己造成属性伤害的问题
修复 修复装备类型 裤子 跟 鞋子顺序相反的问题
修复 修复非 Kotlin 编写的附属使用 @AutoRegister 注释无效问题 (感谢鹦鹉小老婆)
调整 修改属性默认读取方式
修复 修复 无法读取负数属性值 的问题
修复 Mohist 核心无法使用自定义公式问题
新增 配置 attribute.yml 新增 healthScale 开关,关闭后将不会将生命爱心显示压缩为两排
调整 将 stats.yml 内默认物品类型调整为 1.12及以下版本 可使用的类型 (太多人不看WIKI就来反馈)
其他 防止生命爱心数量(healthScale)被其他插件修改后导致一大堆爱心刷屏 (例如 SkillAPI)
新增 新增插件更新提醒功能
兼容 2.X 调用 AttributeAPI.class 内方法给玩家增加属性的附属 旧版本注册新属性的附属无法兼容,需重新开发
修复 攻击处理事件,攻击者实体可能出现的 "ClassCastException" 问题 (不小心的)
修复 原版伤害值不显示问题
修复 1.16.5 读取事件报错问题
修复 1.13.X+ GUI模式下的属性统计面板无法使用问题
注意 目前 1.16.5 属性统计面板无法使用 BOOK 模式 1.16.4 及以下可正常使用
修复不兼容 CatServer 与 Mohist 核心的问题
插件基于 Kotlin 完全重写 旧版本附属部分可能无法兼容新版插件 如果是 属性类附属 这边建议重写 如果只是简单的调用API对玩家属性的操作,那么依旧可以 继续使用
请查看文档其他页面内容,因为是完全重写就不一一列举了
JavaScript 用法示例:
相关方法:
更多详细内容,请查看相关页面
详细内容请查看 页面
配置更新内容请查看
更新 内嵌式条件读取格式 从现在开始内嵌式条件格式为 "<属性内容> / <条件>" 即 "物理伤害: 100 / Lv.100" 满足条件才会读取该行描述上的 100 物理伤害 旧版本的 [Lv.] [Gm.] 考虑到部分服务器已在所以将会保留不会移除
新增 内嵌读取条件组件
新增 过滤符号 &-、&-&0 等,具体作用请前往WIKI查看
新增 (通过 JavaScript 脚本编写) 可自定义调用其他插件的类方法,详细请查看 配置
新增 脚本配置