本 Fork 版本添加了对 CustomFishing 和 ExcellentShop 的完整支持,以及出售二次确认功能
- ✅ 充电器物品: 为耗尽的魔杖恢复使用次数
- ✅ 放电器物品: 从魔杖中提取使用次数并转换为充电器
- ✅ 可选模式: 魔杖耗尽时可选择需要充电或直接销毁
- ✅ 基于倍率和类型的限制: 根据魔杖倍率和类型设置充电限制
- ✅ 完全可配置: 充电数量、限制条件、转换规则等
- ✅ 玩家绑定: 魔杖可以绑定到特定玩家
- ✅ 自动绑定: 给予时自动绑定到接收玩家
- ✅ 绑定检查: 只有绑定的玩家才能使用魔杖
- ✅ 管理员绕过: 拥有
axsellwands.admin权限可绕过绑定限制 - ✅ 完全可配置: 每个魔杖可独立配置是否支持绑定
- ✅ 为每个魔杖添加独立的使用权限
- ✅ 可配置是否需要权限才能使用
- ✅ 自定义权限节点
- ✅ 管理员权限
axsellwands.admin可绕过所有权限检查 - ✅ 完全可配置的权限提示消息
- ✅ 可配置的二次确认功能,防止误操作
- ✅ 第一次点击显示价格信息和物品清单
- ✅ 第二次点击才真正执行出售
- ✅ 可配置确认超时时间
- ✅ 自动检测容器内容变化
- ✅ 完全可配置的消息和音效
- ✅ 同时支持 CustomFishing 和 ExcellentShop 作为价格提供商
- ✅ 智能优先级系统:CustomFishing (优先级 100) > ExcellentShop (优先级 50)
- ✅ 自动选择价格最高的提供商
- ✅ 智能回退机制:当一个提供商不可用时自动切换到另一个
- ✅ CustomFishing: 遵守每日出售金额限制,自动扣除玩家收益额度
- ✅ ExcellentShop: 遵守服务器全局和玩家个人库存限制,检查权限和等级要求
- ✅ 达到限额后自动尝试使用备用提供商
在 config.yml 中配置充电模式:
charger:
# 魔杖耗尽时需要充电而不是销毁
require-recharge: false
discharger:
# 每次提取的使用次数
uses-per-extract: 10
# 提取后给予的充电器类型
charger-to-give: "basic-charger"创建充电器配置文件 (chargers/basic-charger.yml):
name: "!FF33Basic Charger"
item:
material: EMERALD
glow: true
name: "!FF33&lBASIC CHARGER"
lore:
- "!FF33充电器"
- " &8❙ &f每次充电: !FF3310 次使用"
- " &8❙ &f剩余次数: !FF33%charges%/%max-charges%"
# 每次充电增加的使用次数
uses-per-charge: 10
# 充电器最大充电次数(耐久度)
max-charges: 100
# 魔杖类型限制(留空表示允许所有)
sellwand-limits: {}
# 倍率限制(留空表示允许所有)
multiplier-limits: {}充电器耐久系统:
- 每个充电器有
max-charges次充电机会 - 每次使用消耗1次充电机会
- 充电次数用尽后充电器消失
- 使用
%charges%和%max-charges%变量显示剩余次数
使用方法:
-
充电器使用:
- 主手持充电器
- 副手持魔杖
- 右键使用
-
放电器使用:
- 主手持放电器
- 副手持魔杖
- 右键使用(提取使用次数并获得充电器)
-
设置限制:
# 只允许为特定魔杖充电
sellwand-limits:
normal-sellwand: 100
unlimited-sellwand: -1
# 只允许为特定倍率充电
multiplier-limits:
1.0: 100
1.5: 150在每个魔杖的配置文件中(例如 sellwands/normal-sellwand.yml):
# bind settings
# 绑定设置
# if true, this sellwand can be bound to a player
# 如果为true,此魔杖可以绑定到玩家
bindable: false
# if true, automatically bind to player when given
# 如果为true,给予时自动绑定到玩家
bind-on-give: false使用示例:
- 启用绑定功能:
bindable: true
bind-on-give: true-
效果:
- 使用
/axsellwands give命令给予魔杖时,自动绑定到接收玩家 - 只有绑定的玩家可以使用该魔杖
- 其他玩家无法使用(会提示"此魔杖已绑定到其他玩家")
- 管理员(
axsellwands.admin)可以绕过绑定限制
- 使用
-
应用场景:
- VIP专属魔杖(防止转让)
- 个人绑定魔杖(防止被盗)
- 限制魔杖流通
-
显示绑定者:
在魔杖lore中使用 %bound-player% 变量显示绑定者:
item:
lore:
- " &8❙ &fBound to: &#FF5500%bound-player%"- 如果魔杖已绑定,显示玩家名称
- 如果魔杖未绑定,显示"未绑定"
在每个魔杖的配置文件中(例如 sellwands/normal-sellwand.yml):
# permission settings
# 权限设置
# if true, players need permission to use this sellwand
# 如果为true,玩家需要权限才能使用此魔杖
require-permission: false
# the permission required to use this sellwand
# 使用此魔杖所需的权限
# default: axsellwands.use.<sellwand-id>
# players with axsellwands.admin bypass this check
# 拥有 axsellwands.admin 权限的玩家可以绕过此检查
permission: "axsellwands.use.normal-sellwand"使用示例:
- 启用权限控制:将
require-permission设置为true - 给予玩家权限:
- 使用特定魔杖:
axsellwands.use.normal-sellwand - 使用所有魔杖:
axsellwands.use.* - 管理员绕过:
axsellwands.admin
- 使用特定魔杖:
权限节点说明:
axsellwands.use.<魔杖ID>- 使用特定魔杖的权限axsellwands.admin- 管理员权限,绕过所有检查(包括权限和领地保护)
在 hooks.yml 中配置:
hooks:
price-plugin: "MULTI" # 启用多价格提供商模式或使用显式配置:
hooks:
price-plugin: "CUSTOMFISHING+EXCELLENTSHOP"在 config.yml 中配置:
sell-confirmation:
# 启用出售二次确认功能
enabled: true
# 确认超时时间(秒)
timeout-seconds: 30
# 确认消息中显示的最大物品数量
max-items-display: 10在 lang.yml 中自定义消息:
sell-confirmation:
request:
- "&#FFAA00━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━"
- "&#FFCC00<b>出售确认</b>"
- " "
- "&#FFAA55将要出售 &f%amount% &#FFAA55件物品"
- "&#FFAA55总价值: &f%price%$"
- " "
- "&#FFAA55物品清单:"
- "&#DDDDDD%items%"
- " "
- "!FF33再次右键点击容器确认出售"
- "&#FF3333确认将在 &f%timeout% &#FF3333秒后超时"
- "&#FFAA00━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━"
timeout: "&#FF3333出售确认已超时,请重新操作!"
changed: "&#FF3333容器内容已改变,请重新确认!"- 优先级检测: 检测为 CustomFishing 物品时,优先通过 CustomFishing 出售
- 智能回退: 如果 CustomFishing 达到每日限额,自动使用 ExcellentShop 出售
- 价格比较: 当两个插件都有价格时,自动选择价格最高的
- 限制遵守: 完全遵守两个插件的所有限制规则
新增类:
AdvancedPricesHook- 高级价格钩子接口SellResult- 出售结果类CustomFishingHook- CustomFishing 集成MultiPricesHook- 多价格提供商管理器SellConfirmationManager- 出售确认管理器
修改类:
ExcellentShopHook- 增加限制检查HookManager- 支持多价格提供商SellwandUseListener- 使用新的价格系统和二次确认功能AxSellwands- 初始化确认管理器
- CustomFishing API 2.3.16+
- ExcellentShop 4.20.0+
- Java 21
成功加载两个插件:
[AxSellwands] Hooked into CustomFishing! (Priority: 100)
[AxSellwands] Hooked into ExcellentShop! (Priority: 50)
[AxSellwands] Using multi-provider mode with 2 provider(s)!
Bug Reports and Feature Requests: https://github.com/Artillex-Studios/Issues
Support: https://dc.artillex-studios.com/