夜雨晨风 发表于 2025-2-14 15:24:02

[RPG|娱乐]AttributePotion——属性药水[1.12.x - 1.21.x]

本帖最后由 夜雨晨风 于 2025-3-23 01:01 编辑

注:本插件为2.0版本,是基于1x版本进行的更新(修复bug、优化性能、更新功能【1x版本很多地方性能写的很烂,2x性能至少提升200%】),1x已开源(github),2x版本闭源并进行混淆(承诺绝无恶意代码、后门),如该混淆不符合论坛规定版主可关闭该帖。

功能介绍:
1.属性兼容AP2/AP3/SX2/SX3
2.识别方式有name/lore/nbt识别药水
3.支持龙核/萌芽按键使用药水
4.可设置药水组,同组药水受限于组冷却
5.药水可判断条件进行使用
6.药水拥有独立冷却时间
7.药水添加属性支持变量与运算
8.可添加原版药水效果
9.支持生命/魔力/饥饿值固定恢复、当前百分比恢复、最大百分比恢复
10.可在开始使用药水/使用失败/使用成功/药水结束时执行指令
11.可设置药水使用后是否消耗
12.可设置是否需要按shift使用药水
13.可设置死亡、退服时是否清除药水属性效果
14.可设置物品原版冷却效果显示
15.可设置给范围内所有玩家添加药水属性
16.可在文件夹内创建独立药水文件或一个文件里写多个药水
17.可通过指令延长药水属性时间

展示图片:



配置文件:
config.yml
# 进服数据加载延迟,单位tick,20tick=1秒
LoadDelay: 60

# 数据库设置
MySQL:
# 是否启用mysql数据库存储,false则SQLite存储
enable: false
host: localhost
port: 3306
username: root
password: root
fileName: AttributePotion
tableName: data
# MySQL5 使用: com.mysql.jdbc.Driver
# MySQL8 使用: com.mysql.cj.jdbc.Driver
driver: 'com.mysql.jdbc.Driver'
jdbc: '?useSSL=false&useUnicode=true&characterEncoding=utf8'

# 启用什么插件属性,默认AP3(可填AP3/AP2/SX3/SX2任意一个)
AttributePlugin: 'AP3'

# 用什么识别药水,name/lore/nbt,nbt的话需要写NbtKey节点
Match: 'name'

# regen和effects中用来识别的分隔符,因为用-分割无法写负数,改成=就要写health: '10=5=0'
Split: '='

# 匹配nbt时判断的键,例如
# nbt:
#   apn: '测试药水'
NbtKey: 'apn'

# 是否仅包含匹配内容即可,false则整个需要匹配
Contain: true

# 是否启用龙核兼容,修改之后需要重启
DragonCore: false

# 按键及对应的槽位
DragonKey:
Z: '额外槽位1'
X: '额外槽位2'
C: '额外槽位3'

# 是否启用萌芽兼容,修改之后需要重启
GermPlugin: false
GermKey:
44: '额外槽位1'
45: '额外槽位2'
46: '额外槽位3'


# 药水组设置,每个药水有单独的冷却,同组的药水共享冷却,例如使用了力量药水,30秒内无法再次使用力量或体力药水
# 而30秒后初级药水组冷却完毕,但力量药水冷却60秒,仍旧无法使用,此时你只能使用体力药水
Group:
初级药水组: 10
中级药水组: 30
高级药水组: 60

# 消息
Messages:
reload: "&a插件配置重载成功!"
shift: '&a请按住shift再使用药水!'
addTime: '&a已为玩家&6 %player% &a增加 %potion% 时长 %time% 秒'
usePotion: "&a成功为玩家&6 %player% &a添加 %potion% &a效果,持续&e %time% &a秒"
useDeny: "&c您不满足 %id% &c药水的使用条件!"
outPotion: "%potion% &5效果已结束!"
onPotionCooldown: "&b%potion% &7冷却中,剩余&e %cooldown% &7秒!"
onGroupCooldown: "&b%group% &7冷却中,剩余&e %cooldown% &7秒!"
nearPotion: '&7成功为&e %range% &7格范围内的玩家:&6%playerList% &7使用了&b %potion%'
otherPotion: '&7您享受到来自&6 %player% &7的&b %potion% &7属性效果!'

example.yml
# 药水节点名,不可重复
测试药水:
# match识别的内容,不填的话默认为节点名
id: '&a测试药水'
# 药水所属药水组(可选,默认为空)
group: '初级药水组'
# 药水冷却时间,单位/秒(默认是0,double类型,可写小数)
cooldown: 30.0
# 使用药水的条件,可以用变量,支持运算,后面是条件不满足时发生的消息
conditions:
    - '%player_level% >= 10;&c你的等级不足10级,无法使用{id}!'
    - '"%player_has_permission_vip%" == "yes";&c你没有VIP权限,无法使用{id}!'
# 药水属性持续时间,单位是秒,可写小数,写-1的话表示永久属性,不写默认为0立即使用
time: 10.0
# 药水添加的属性,格式是 【属性: 数值】,不支持xx-xx格式
# 可以用变量,进行运算。你也可以用math拓展进行运算,例如%math_0_{player_level}*2+10%(可选)
attributes:
    物理伤害: 100
    生命力: "%player_level%*2+100"
# 原版药水效果
effects:
    # 药水效果: '药水等级-持续时间' ,例如这个是给予1级夜视效果,持续10秒,用{time}可以取上面写的药水属性持续时间
    # 药水效果参见https://bukkit.windit.net/javadoc/org/bukkit/potion/PotionEffectType.html
    NIGHT_VISION: '1-10'
# 使用后的恢复效果(可选)
regen:
    # 三个参数分别是数值,时间,模式,用{time}可以取上面写的药水属性持续时间,这里的时间只能是整数
    # 回复生命值,写0表示立即回复,写负数也可以,就是扣除生命
    # 0表示固定数值回复,例如这里表示每秒回复10点,持续5秒
    # 1表示当前生命百分比回复,写1表示每秒回复当前生命的10%,持续5秒
    # 2表示最大生命百分比回复,写2表示每秒回复最大生命的10%,持续5秒
    health: '10-5-2'
    # 回复SkillAPI的魔力值
    mana: '10-{time}-1'
    # 回复饥饿值
    hunger: '2-5-0'
# 使用药水执行的指令,console表示以控制台执行,不写表示玩家身份执行(可选) [注:不支持op执行]
command:
    # 开始使用药水后执行,注意此时并未通过条件和冷却判断
    start:
      - 'say &e尝试使用{id}...'
    # 使用药水失败后执行,可能是因为条件或冷却导致失败
    failed:
      - 'say &c使用{id}失败了!'
    # 成功使用药水后执行
    success:
      - 'say &a成功使用了{id}!奖励你一个钻石'
      - 'give %player_name% diamond 1'
    # 药水结束后执行
    end:
      - 'say &c{id}效果结束了!送给你一个泥土'
      - 'give %player_name% dirt 1'
# 范围大小(可选,需要你启用下面的给范围内所有玩家添加药水,默认0)
distance: 10.0
# 其他设置
optional:
    # 使用药水后是否消耗
    consume: true
    # 是否需要蹲下才能使用
    shift: false
    # 死亡后是否清除药水属性/恢复状态
    death: false
    # 退出服务器后是否清除药水属性/恢复状态
    quit: false
    # 是否设置物品冷却。这是原版的那种,较为直观展示冷却时间,但是会导致同类型材料的物品显示一同进入冷却
    cool: false
    # 是否范围内所有玩家享受药水效果
    range: false

# 一个什么作用都没有的药水,你可以删除任何一项配置
空药水:
id: '空药水'
cooldown: 0.0
group: ''
conditions: []
attributes: ''
time: 0.0
regen:
effects:
command:
    start: []
    failed: []
    success: []
    end: []
distance: 0.0
optional:
    consume: true
    shift: false
    death: false
    quit: false
    cool: false
    range: false


插件指令:
/apn reload - 重载插件配置
/apn debug - 切换debug模式
/apn addPotion 玩家名 药水节点 - 给玩家使用药水,不需要玩家拥有药水物品,当不带force参数时需要判断条件、冷却,带上时不判断直接成功添加
/apn addTime 玩家名 药水节点 时间(秒) - 延长玩家已使用药水的属性持续时间


插件变量:
%apn_id_药水节点% - 获取药水的id
%apn_group_药水节点% - 获取药水的药水组
%apn_time_药水节点% - 获取药水的持续时间
%apn_cooldown_药水节点% - 获取药水的冷却时间
%apn_distance_药水节点% - 获取药水的范围距离
%apn_consume_药水节点% - 获取药水使用后是否消耗
%apn_shift_药水节点% - 获取药水是否需要按shift使用
%apn_cool_药水节点% - 获取药水是否会设置原版冷却效果
%apn_death_药水节点% - 获取药水死亡后是否清除
%apn_quit_药水节点% - 获取药水退出服务器后是否清除
%apn_range_药水节点% - 获取药水是否可以给范围内玩家添加属性
%apn_stats_药水节点% - 获取当前是否拥有该药水效果
%apn_remain_药水节点% - 获取药水剩余冷却时间
%apn_attr_药水节点% - 获取已使用药水添加的属性
%apn_duration_药水节点% - 药水剩余生效时间
%apn_health-value_药水节点% - 药水生命恢复数值(health换成mana和hunger同理)
%apn_health-time_药水节点% - 药水生命恢复时间(health换成mana和hunger同理)
%apn_health-mode_药水节点% - 药水生命恢复模式(health换成mana和hunger同理)

%apn_remain_药水组名称% - 药水组剩余冷却时间
%apn_cooldown_药水组名称% - 药水组冷却时间

更新记录:
v2.0.0
1.插件发布
v2.0.1
1.新增两个变量
v2.0.2
1.优化papi无内容时的返回值为""
2.修改添加药水指令并新增addTime指令
3.api优化,新增添加药水属性与延长药水效果方法
4.修复mysql无法连接问题
5.优化UserData类的一个HashMap
6.Event包名修改为event
v2.0.3
1.修复药水冷却问题
2.修复指令延长药水剩余生效时间变量不正确问题
3.执行指令增加一个发送消息方法
4.修复扣除属性时不存在属性插件的报错
v2.0.4
1.修复药水冷却问题
2.修复变量不正确问题
3.修复退服时清除属性的报错问题
4.修改数据库表与列,需删除数据库重新生成
5.新增组相关变量%apn_remain_组名%获取组剩余冷却,%apn_cooldown_组名%获取组冷却
v2.0.5
1.修复不存在药水组时的冷却问题
v2.0.6
1.增加恢复的变量
%apn_health-value_药水节点%
%apn_health-time_药水节点%
%apn_health-mode_药水节点%
mana和hunger同理
v2.0.7
1.新增op指令执行spawn(死的不是我)
2.新增自己设置regen和effect中的分隔符(从旧版本更新的请在config.yml配置中增加Spilit: "-")
v2.0.8
1.修复药水nbt匹配会导致的空指针问题
2.移除两处会刷屏的debug代码
v2.0.9
1.修复sx增加属性报错问题
2.修复原版冷却显示错误问题


开发者API

作者交流群:806195283

下载地址:
**** Hidden Message *****


本插件所用所有代码均为原创,不存在借用/抄袭等行为





名副其实 发表于 2025-2-15 00:13:06

烫手的新帖子

layu 发表于 2025-2-17 00:00:35

大佬666,真厉害

ImLingCHENG 发表于 2025-2-17 10:44:32

超级好的插件!!

ZeroExact 发表于 2025-2-22 12:00:10

非常好,非常不错的插件

thywind 发表于 2025-2-24 08:53:26

u公布方便你酷狗

AzurePlume 发表于 2025-2-28 10:48:22

MCBBS有你更精彩

马学深 发表于 2025-3-1 20:41:24

谢谢楼主

十一月 发表于 2025-3-1 23:40:54


超级好的插件!!

zjyz11 发表于 2025-3-6 22:18:33

大佬66666
页: [1] 2 3
查看完整版本: [RPG|娱乐]AttributePotion——属性药水[1.12.x - 1.21.x]