• 欢迎加入MineBBS QQ讨论群:点击查看所有的官方讨论群
  • 我们将于近期对服务器进行迁移,服务可能中断至多2日。请各位安排好自己的访问计划,造成不便敬请谅解!
  • MineBBS入站考试已经上线!想要成为【正式会员】解锁更多功能吗?快来参与吧!【点我去看】
kkfish [1.12-26.2] 星露谷物语钓鱼 | folia 兼容

原创 开源 娱乐 经济 kkfish [1.12-26.2] 星露谷物语钓鱼 | folia 兼容 1.7.11

请登录后获取
## 1.7.4

**add:**
> 添加 PlayerPoints 出售经济支持与鱼类独立出售奖励配置;旧版 `value` 会按 `economy.primary` 结算,旧鱼价值记录会自动升级,新版 `sell-value` 可让 Vault 金币和 PlayerPoints 点券分别发放或同时发放:
```yaml
# config.yml
economy:
primary: vault # 旧版 value 优先给 Vault;改成 playerpoints 就优先给点券
fallback: true # 主经济不可用时,自动尝试另一个经济

# fish.yml
fish:
old_fish:
value: 100 # 旧写法,继续兼容

split_fish:
sell-value: # 新写法
vault: 100 # 给 Vault 金币
playerpoints: 10 # 给 PlayerPoints 点券
```
> 添加自定义物品兼容与语法,支持 ItemsAdder、Oraxen/OXN、Nexo、CraftEngine/CE,可用于鱼、鱼竿、鱼饵、鱼钩、GUI 展示、物品奖励和 ItemsAdder 字体图片:
```yaml
# ItemsAdder:自定义物品 + 字体图片
# 其他插件:在相同配置项里换成对应材质前缀
fish:
ia_fish:
material: "ia:fish_pack:blue_fish"
display-name: ":fish_pack:blue_icon: &b蓝鱼"
item-value:
- "ia:fish_pack:coin:1"

oraxen_fish:
material: "ox:blue_fish"
nexo_fish:
material: "nx:blue_fish"
craftengine_fish:
material: "ce:blue_fish"
```
> 添加副手鱼竿识别与抛竿支持。
> 修改了出售金币、点券、混合奖励、物品奖励时的提示与退款处理。
> 更新默认配置示例,并补充新出售经济逻辑的测试。

**fix:**
> 修复仅安装 PlayerPoints 时出售命令和卖鱼 GUI 不可用的问题。
> 修复自定义物品 ID 带 `:` 时物品奖励解析错误的问题。
> 修复副手鱼竿交互会导致原版钓鱼的bug
## 1.7.3

**修复:**
> 修复了插件语言切换为英文后,部分钓鱼蓄力提示仍显示中文的 bug
> 修复了使用默认语言的玩家没有跟随插件语言设置的 bug
## 1.7.2

**修复:**
> 修复了钓鱼结束时空实体问题的 bug
> 修复了数据库连接失败时服务器崩溃的 bug
> 修复了插件关闭后后台定时器仍在运行的 bug
> 修复了岩浆和虚空钓鱼咬钩延迟计算错误的 bug
> 修复了无权限玩家仍能钓鱼的 bug
> 修复了数据库异常时保存鱼钩材质崩溃的 bug

**优化:**
> 缓存了鱼钩配置查询
> 预生成了鱼钩材质和图鉴菜单的物品
更新了xseries的依赖版本
## 1.7.0
**重构:**
> 引入 RootService 组合根,明确启动/关闭顺序
> 引入 PlayerContext 系统,统一 18 个分散的状态 Map,带生命周期状态机
> 引入 EventBus 域事件系统,解耦小游戏管理器的跨域调用
> 提取基础设施服务:版本检测、经济门面、季节服务、NMS 适配、材质解析
> 拆分小游戏会话为鱼类选择器、鱼类移动模拟器、UI 渲染器、价值计算器
> 拆分命令管理器为出售、给予、竞赛、配置、管理员 5 个子处理器
> 拆分钓鱼管理器为蓄力追踪、鱼钩抛射、咬钩调度、鱼物品工厂、动画服务、广播服务 6 个组件
> 拆分 GUI 管理器为通用工具、鱼钩材质、鱼类图鉴、比赛界面 4 个处理器
**修复:**
> 修复启动时 MessageManager 未在 Config 之前初始化导致的 NPE
> 修复 Compete 初始化时调度器未注入导致的 NPE
> 修复调度降级路径下任务取消抛出 "Not scheduled yet"
> 修复所有日志语言键静默回退到硬编码默认值
> 修复大量硬编码日志内容
> 修复非 debug 模式下 GUI 权限检查日志仍然输出
**优化:**
> 删除 9 个空死代码文件,消除跨包同名混淆
> 删除 GUI 中约 1000 行死代码
> 修复 EntityBatchProcessor 的 XSeries 规则违规
> 清理重复 import
## 1.6.1

**修复:**
> 修复鱼钩浮动任务在会话结束时泄漏的问题
> 修复鱼竿蓄力速度和浮漂范围属性无实际效果的问题
> 修复岩浆和虚空小游戏难度加成不生效的问题
> 修复副手鱼饵不消耗、鱼饵检测和鱼记录解析依赖lore文本的问题
> 修复小游戏选鱼忽略水域池子的问题
> 修复非卖鱼GUI空槽位可被shift-点击塞入物品的问题
> 修复卖鱼GUI拖拽事件被阻止的问题
> 修复Cmd添加命令反馈使用字符串拼接而非格式占位符的问题
> 修复鱼物品lore和浮空文字中国际化格式字符硬编码的问题
> 修复鱼竿模板fallback硬编码中文的问题
> 修复MySQL迁移先执行SQLite特定查询再检查方言的问题
> 修复游戏逻辑中10处Math.random()分散调用的问题
> 修复Material枚举直接使用违反跨版本规则的问题
> 修复pools.yml引用fish.yml中未定义鱼的问题
> 修复配置注释错误或不完整的问题(charge-speed、escape)
> 删除死代码:getRankPrefix()、约75行lore文本解析、重复存款逻辑、未使用的配置值

**新增:**
> 新增ChargeSessionData用于每次蓄力会话的鱼竿属性存储
> 新增跨版本NBT读取辅助方法用于鱼饵和鱼物品识别
> 新增鱼物品lore格式化和鱼竿模板相关的7个国际化键
> 新增Folia兼容及专用kkfish-folia.jar构建

**优化:**
> 优化数据库迁移使用方言特定的列检测
> 优化鱼饵检测和鱼记录解析从lore遍历改为单次NBT读取
## 1.6.0
**修复:**
> 修复鱼物品lore显示原始稀有度等级(如"epic:90")而非配置的display名称(如"史诗")
> 修复100%蓄力被当作过度蓄力导致抛竿力度归零
> 修复鱼钩浮动效果任务永不终止导致任务泄漏
> 修复鱼钩飞行轨迹任务未追踪,会话结束时无法取消
> 修复粒子API在1.21+版本不兼容(extra参数类型不匹配)
> 修复迷你游戏中dangerZone数组越界
> 修复迷你游戏每tick解析物品lore的严重性能问题
> 修复两参数/三参数startMinigame缺少重复会话检查
> 修复GUIAction中OP提权无try-finally保护
> 修复卖鱼时背包满导致物品丢失
> 修复GUI统计中数据库Number类型强转ClassCastException
> 修复MySQL不兼容:INSERT OR REPLACE和AUTOINCREMENT语法
> 修复getConnection()返回null导致NullPointerException(19处调用点)
> 修复sellAllFish未收集鱼UUID导致数据库永不清理
> 修复任何玩家退出时清除所有玩家缓存
> 修复isVoidLocation永远返回false,虚空钓鱼完全失效
> 修复cleanupAndAnnounce可重复调用导致奖励重复发放
> 修复PointsOnlyCompetition对不在fishList的鱼默认给1.0积分
> 修复反射方法每tick重复查找(改为缓存静态字段)
> 修复跨世界distance()调用抛出IllegalArgumentException
> 修复fishLevel.split空指针异常
> 修复hookMaterial.toLowerCase空指针异常
> 修复isHookPassableBlock使用硬编码字符串而非Set查找
> 修复共享StringBuilder/Vector/Location实例字段的线程安全问题
> 修复频繁创建new Random()而非复用实例字段
> 修复蓄力滴答音效因毫秒精度问题永不播放
> 修复checkAndConsumeBait设置null而非AIR导致空副手
> 修复fishSize/maxSize除零错误
> 修复稀有鱼双重加成
> 修复无敌期间进度只增不减
> 修复迷你游戏run()无异常保护导致僵尸会话
> 修复displayGameUI中if-else完全相同的死代码
> 修复迷你游戏中玩家离线未处理导致异常
> 修复getRodNameByPlayer返回null而非默认值"wood"
> 修复内部类中重复声明actualFishValue
> 修复GUI中HashMap并发问题(6个Map改为ConcurrentHashMap)
> 修复GUIType.valueOf()抛出未捕获的IllegalArgumentException
> 修复GUI中直接使用Material枚举违反XSeries规则(14处)
> 修复GUI分页itemsPerPage不一致(36 vs 28)
> 修复sellFishItem使用不必要的反射访问PDC
> 修复sellFishItem有物品奖励时未存入Vault价值
> 修复displayNameToHookNameMap在配置重载后不更新
> 修复e.printStackTrace()违反日志规范
> 修复onInventoryClose对所有GUI类型清除搜索关键词
> 修复SlotMapping getBorderSlotCount对27槽位GUI计算错误
> 修复RewardPreview isItemDisplaySlot范围过小(27而非54)
> 修复GUI_SIZE_6 = 6不是有效的物品栏大小(改为54)
> 修复columnName拼接导致的SQL注入风险(添加白名单)
> 修复logFishing/updatePlayerStats直接使用connection字段
> 修复缓存返回可变列表引用导致外部可污染
> 修复缓存清理每次写入都执行而非每100次
> 修复updatePlayerStats使用两次数据库往返
> 修复Config中getConfigurationSection()空指针异常(5处)
> 修复生产环境下AuraSkills调试日志输出
> 修复Double.parseDouble无异常处理
> 修复isDebugMode/setDebugMode配置路径不一致
> 修复ensureFishAnimationSubConfigs中死代码
> 修复getAvailableFish/getAvailableFishFromPool逻辑重复
> 修复Config中直接使用Material.FISHING_ROD枚举
> 修复ItemValue中parseMaterial返回null时无警告日志
> 修复钓鱼时Y轴移动未限制
> 修复耐久度计算溢出
> 修复getRodCurrentDurability缺少rodType空检查
> 修复水中鱼钩Y速度无限下沉
> 修复岩浆鱼钩缺少Y<=0边界检查
> 修复岩浆/虚空鱼钩消息使用了错误的语言键
> 修复hasEquipmentEffect基于Lore文本匹配可被玩家伪造
> 修复Compete共享可变StringBuilder/ArrayList字段
> 修复Compete中containsKey+put的TOCTOU竞态
> 修复scheduleRecurring配置格式错误时数组越界
> 修复比赛通知任务未追踪无法取消
> 修复scheduledTasks内存泄漏
> 修复CompetitionData计数器非原子操作
> 修复AmountCompetition/SingleValueCompetition/TotalValueCompetition不检查fishList过滤
> 修复PointsOnlyCompetition积分计算中value二次叠加
> 修复BarColor/BarStyle解析异常被静默吞没
> 修复Cmd中硬编码中文字符串
> 修复getFishValueFromItem每次调用都查数据库无缓存
> 修复Cmd中getItemValue()空检查缺失
> 修复sellAllFish物品奖励对堆叠物品重复发放
> 修复setFishUUIDString使用不必要的反射访问PDC
> 修复Cmd中使用Material.matchMaterial()违反XSeries规则
> 修复addGlowEffect空方法和guiCache死代码已删除
**新增:**
> 新增AmountCompetition、SingleValueCompetition、TotalValueCompetition的fishList过滤检查
> 新增DB中clearPlayerCache单玩家缓存清除方法
> 新增hook_in_lava和hook_in_void语言键
> 新增competition_invalid_duration语言键
> 新增CompetitionUtils.formatDuration共享工具方法
> 新增DB中columnName白名单校验
> 新增Cmd中fishValueCache数据库查询优化缓存
## 1.5.1
**修复:**
> 修复钓鱼广播显示配置基础价格而非实际计算价格的问题
> 修复广播价值与物品显示价值不一致的问题(随机浮动种子不同导致)
> 修复鱼钩GUI点击购买无反应的问题
> 修复有权限的玩家在鱼钩GUI中仍显示购买价格的问题
> 修复翻页后鱼钩ID解析失败的问题
**新增:**
> 新增鱼钩购买相关国际化语言键

1.5.0​



新增内容:


基于策略模式添加岩浆钓鱼与虚空钓鱼功能,新增配置项岩浆钓鱼.*、虚空钓鱼.*、样式.*,并独立拆分垂钓池配置文件pools.yml

新增缺失配置默认值自动补全功能,适配公告、鱼类动画、垂钓池相关配置


问题修复:


修复事件重复注册导致所有钓鱼处理器触发两次的问题

修复鱼竿耐久检测判定恒为真,破损鱼竿仍可蓄力的漏洞

替换不安全字符串匹配判定,将右键动作模糊匹配改为枚举精准比对

采用自定义数据容器存储剩余耐久值,解决鱼竿耐久数值精度丢失问题

修复等级名称空字符判定恒成立,造成公告内鱼种稀有度显示异常的问题

整合重复的 16 项方块黑名单校验逻辑,统一调用公共方法

修复实体批量处理器无法自动刷新的问题,新增 20 刻定时刷新机制

补全空异常捕获代码,粒子生成失败时会输出日志记录

修复实体交互拦截小游戏进度条点击操作,新增实体玩家交互事件处理器

移除未使用的玩家聊天事件导入类


功能调整:


清理 13 项无效配置节点、6 项未启用音效配置、3 个废弃取值方法

统一 14 处代码默认参数与配置文件参数,包含触发模式、季节功能、提速倍率等设置
重写了大部分代码,以及,开源!
后退
顶部 底部