Suite

联动

Fishing 跨模块联动与 Capability

联动

依赖关系

依赖类型说明
ArcartX 客户端 MOD硬依赖提供 UI 渲染与 PacketBridge,小游戏通过 ArcartX UI 呈现
PlaceholderAPI外部依赖提供 PlaceholderAPI 占位符(%axsfishing_*%)

物品库为可选功能,鱼类/宝藏/饵料/鱼竿的 item.source 按需依赖对应插件:

物品来源对应插件
mythicMythicMobs
neigeNeigeItems
overtureOverture
mmoitemsMMOItems

EventBus 事件

Fishing 模块通过 publishedTopics() 声明并发布以下 EventBus 事件主题,其他模块(如 BattlePass、QuestGPS、OnlineRewards 等)可通过 EventBusCapability 订阅:

事件主题触发时机Payload 字段
axs.fishing.success钓鱼成功fish_id, fish_rarity, fish_size, water_area, bait_id, is_perfect, player_level
axs.fishing.perfect完美捕获(成功子事件)同 success
axs.fishing.collection_unlock首次捕获某鱼种同 success + total_collection_count
axs.fishing.treasure钓到宝藏water_area
axs.fishing.level_up玩家升级old_level, new_level, season_id

EventPacket Signal

Fishing 同时通过 SignalDispatchable 分发信号,供 EventPacket 规则引擎匹配:

Signal触发时机变量
fishing_success钓鱼成功fish_id, fish_name, fish_rarity, fish_size, water_area, is_perfect
fishing_legendary_catch钓到传说级鱼同上
fishing_first_catch首次捕获某鱼种同上
fishing_treasure钓到宝藏同上

Capability 注册

Fishing 模块注册了以下 Capability,供宿主或其他模块调用:

Capability说明
FishingAccess公开 capability(@PublicCapability),外部插件经 AxsCapabilities.get(FishingAccess.class) 获取:小游戏启停、图鉴计数、经验/疲劳读写、领奖、卖鱼
DatabaseMigratable支持数据库迁移,供宿主统一管理存储迁移。migrateDatabase(target, overwrite) 迁移数据到目标存储描述符
PlayerDataPurgeable支持清除玩家数据,供宿主的玩家数据清理功能调用。purgePlayerData(uuid) 删除指定玩家数据,purgeAllPlayerData() 删除全部

FishingAccess

面向外部插件的钓鱼操作接口(所有方法请在 Bukkit 主线程调用):

方法说明
isInMinigame(uuid)玩家是否正处于钓鱼小游戏中
startMinigame(player)启动小游戏(鱼竿/条件不满足返回 false)
collectionCount(uuid) / totalFishTypes()图鉴已解锁数 / 鱼类总数
giveXp(uuid, amount)增加钓鱼经验
fatigue(uuid) / setFatigue(uuid, value)查询/设置疲劳值
claimReward(player, rewardId)领取指定赛季奖励
sellAllFish(player)卖出背包全部鱼获,返回提示消息

数据清理与迁移

  • /axs purge 支持按 UUID 或全量清理玩家钓鱼数据
  • /axs migrate 支持跨源数据迁移

跨服同步

Fishing 支持跨服同步捕获记录。启用方式:

  1. 宿主 config.yml 的 cross-server 节配置 Redis 或 Proxy 后端
  2. 模块 config.yml 的 cross-server.enabled 设为 true

启用后,钓鱼成功的捕获记录会同步到其他子服并持久化。

数据存储

模块将以下数据存储在数据库中(SQLite 或 MySQL,表名前缀默认 axs_fishing_,共享模式下无前缀):

数据说明
赛季数据等级、经验、天赋点、疲惫值、已领奖励,按赛季隔离,赛季结束重置
永久数据累计捕获/完美捕获/宝藏次数,跨赛季保留
图鉴各鱼种捕获次数、最大尺寸、首捕时间,跨赛季保留
饵料队列鱼竿上挂载的饵料槽位
捕获记录主界面最近捕获记录流与跨服同步

与其他模块联动

来源用途
Mail 模块赛季奖励、结算奖励、疲惫值奖励、里程碑成就通过邮件预设发放
EventPacket 模块钓鱼信号供 EventPacket 规则引擎匹配
Title 模块捕获成就触发称号授予(如首次传说鱼、累计 10/100/500 次捕获、50 次完美捕获)
宿主核心钓鱼事件发布到 EventBus;管理命令的水域选区使用多边形选区工具

里程碑称号

条件称号 ID持续时间
首次捕获传说鱼legendary_hunter7 天
累计捕获 10 次fisher_apprentice永久
累计捕获 100 次fisher_master永久
累计捕获 500 次fisher_legend永久
完美捕获 50 次perfect_master永久

称号授予需 Title 模块已加载。首次捕获传说鱼同时发送邮件预设 legendary_first_catch(需 Mail 模块)。

物品发放链

钓鱼获得的鱼物品、宝藏、额外掉落统一经物品发放通道发放:放入背包 → 背包满转仓库 → 仓库不可用转邮件 → 邮件不可用时掉落兜底。

跨模块物品识别

钓鱼产物物品通过 PDC 标签标记,可供其他模块识别:

PDC 键类型说明
axs_fishing_fish_idSTRING鱼种 ID
axs_fishing_fish_sizeINTEGER捕获尺寸
axs_fishing_is_perfectBYTE是否完美捕获(1/0)
axs_fishing_bait_idSTRING鱼竿上挂载的饵料 ID
axs_fishing_rod_idSTRING鱼竿 ID

本页目录