• 欢迎加入MineBBS QQ讨论群:点击查看所有的官方讨论群
  • 我们将于近期对服务器进行迁移,服务可能中断至多2日。请各位安排好自己的访问计划,造成不便敬请谅解!
  • MineBBS入站考试已经上线!想要成为【正式会员】解锁更多功能吗?快来参与吧!【点我去看】
[1.7~26.X] Guild | 公会插件-功能完善 | GUI支持 | Fotia支持

原创 开源 工具 [1.7~26.X] Guild | 公会插件-功能完善 | GUI支持 | Fotia支持 3.0.5

请登录后获取

【修复】​

  • PAPI 变量无法使用的核心问题 : GuildPAPIExpansion 现在同时覆写 onRequest(OfflinePlayer, String) 和 onPlaceholderRequest(Player, String) 两个方法,全面兼容 PAPI 2.11+ 的新版 API(旧版仅覆写了已废弃的 onPlaceholderRequest ,导致部分用户变量不生效)
  • Vault 经济初始化失败 :原代码通过反射从 Vault 插件对象调用 getServicesManager() ,但该方法属于 Bukkit 而非 Vault 插件类,导致 Vault 经济系统始终初始化失败。现直接使用 Bukkit.getServicesManager().getRegistration() 修复
  • GuildBank 并发安全问题 :余额使用 long 基本类型,存取操作非原子性,多线程下可能出现数据不一致。现改用 AtomicLong 和 ConcurrentHashMap 保证线程安全
  • 公会货币提现竞态条件 : withdrawPlayerGuildCurrency 使用非原子的 get + put 操作,并发提现可能导致余额错算。现改用 CAS( compareAndSet )原子操作
  • 解散公会未清理入会请求 : disbandGuild 未清理 requests 中的残留数据,可能导致幽灵请求
  • acceptRequest 并发修改异常 :使用 Iterator.remove() 替代 List.remove() 避免 ConcurrentModificationException
  • transferOwnership 空指针 :当原会长不在成员列表中时 ownerMember 为 null 未判空
  • addExperienceWithCurrency 未记录贡献 :购买经验时未给玩家添加个人贡献值
  • 升级费用显示不准确 :GUI 和命令中显示的升级费用为固定基础值,与实际扣除不符

【优化】​

  • 经济平衡性调整 :升级费用从固定值改为按等级递增公式 baseCost × (1 + level × 0.08) ,低等级时门槛合理,高等级时费用递增,避免后期经济膨胀(例:Lv1→2 需 10.8万,Lv50→51 需 50万,Lv99→100 需 89.2万)
  • PAPI 注册重试机制 :首次注册失败时自动在 3 秒后重试,解决 PAPI 延迟加载导致的注册失败
  • PAPI V2 备选注册路径 :当标准 register() 返回 false 时,自动尝试通过反射调用 PlaceholderAPI.registerExpansion() 备选方案
  • 新增 PAPI 变量 : %guild_max_members% 、 %guild_exp% 、 %guild_required_exp% 、 %guild_created_time% 、 %guild_level_% (查询指定等级所需经验)
  • GuildManager 新增 getUpgradeCost() 方法 :方便其他模块查询升级费用
  • GuildManager 新增 clearAllDailyData() 方法 :用于每日重置日常经验/贡献
  • 代码格式化 :修复 Guild、GuildManager、GuildCurrency、GuildBank、CurrencyConfig 等核心文件的级联缩进问题
  • 清理临时文件 :删除 SimpleFix.java 及其编译产物

【其他】​

  • 版本号更新至 3.0.5
  • PAPI Expansion 版本号同步更新至 3.0.5
  • 配置文件注释更新,说明升级费用动态计算公式

【修复】​

  • 等级显示格式修改:经验显示为 当前经验/升级所需经验 格式,修复创建公会默认等级为0的问题,改为默认等级1
  • 完善成员设置功能:添加设置昵称、设为管理员、降为成员、踢出公会的完整功能实现
  • 完善成员列表功能:点击成员头像后正确打开玩家设置页面
  • 修复离开公会逻辑:普通成员点击后需二次确认(输入confirm),会长点击后提示解散公会并要求二次确认,修复之前点击离开但实际未离开的问题
  • 修复PAPI变量无法使用:将动态代理方式改为直接继承PlaceholderExpansion抽象类,兼容不同版本PAPI
  • 修复语言文件占位符格式:统一将 {placeholder} 改为 %placeholder%

【新增】​

  • 创建公会权限控制:guild.create 权限默认改为仅OP拥有,普通玩家需通过权限插件分配
  • 创建公会金钱消耗:配置文件新增 create-requires-money 开关和 create-cost 金额设置,支持 Vault、PlayerPoints、公会币三种货币
  • 成员昵称设置功能:管理员可通过GUI设置成员公会内昵称
  • 创建配置文件版本号

【其他】​

  • 版本号更新:3.0.3 → 3.0.4
  • 配置文件更新:1.0 → 1.1
注意:从3.0.4版本开始,默认配置文件发生改动,请手动添加/替换旧版配置文件!

【修复】​

  • Spigot 1.12 版本兼容性问题:InventoryView 在 1.12 中是类而非接口,直接调用 event.getView() 导致 IncompatibleClassChangeError,修改事件处理方法改用 event.getInventory() 获取物品栏
  • GUI 物品可拖拽问题:在 onInventoryDrag 和 onInventoryInteract 事件中通过 isGuildInventory() 判断公会 GUI,取消拖拽事件并更新物品栏
  • 变量无法替换问题:消息配置文件中混合使用 {placeholder} 和 %placeholder% 两种格式,统一为百分号格式,修复 zh_cn.yml、GUIConfig.java 等文件中的占位符
  • PrepareAnvilEvent 兼容性:旧版本 Bukkit API 中没有 getWhoClicked() 方法,改用反射获取玩家对象
  • PAPI 变量空指针保护:为 %guild_owner%、%guild_role%、%guild_role_level%、%guild_is_owner%、%guild_is_officer%、%guild_bank_balance% 等变量添加空值检查,统一布尔值返回格式为小写 "true"/"false"

【其他】​

  • 版本号更新:3.0.2 → 3.0.3

紧急更新!!​

【修复】​

  • 最小化 JAR 时删除了未使用的类,导致类结构不完整,ART 重映射时产生重复方法签名 $oe$()V
  • 签名文件和 module-info 可能干扰 ART 的重映射过程

【其他】​

  • dumps:版本号改动

【修复】​

  • 修复了铁砧GUI创建公会时报错的问题
  • 修复了铁砧GUI创建公会时一直循环的问题
  • 修复了GUI中部分物品点击报错或无法点击的问题
  • 修复了经济“通货膨胀”过大的问题

【优化】​

  • 升级了整体架构
  • 优化了插件性能
  • 优化了内部经济平衡性
  • 美化了GUI的布局

【删除与新增】​

  • 删除了铁砧GUI创建公会,改为聊天输入+GUI的模式

【其他】​

  • dumps: 版本号改动
后退
顶部 底部