CradleMC官方WIKI

适用源码:9da0beb8e8fdad85f50d7039408c3d98494e91c7。本文记录源码行为,默认配置不等于实服配置。
设计状态:按现状编写,具体业务批准记录未逐项核定;开发状态:下述能力有实现证据,限制单列;验证状态:完成定向源码核对,未执行自动测试或实服验收。

判定约定

以下是现行代码事实,不是新增授权设计。管理员指持有对应插件权限者,并不自动等于 OP;plugin.yml 的默认 op 也可被权限插件覆盖。Towny 国王、助手、居民头衔不能互相替代。按钮隐藏、页面打开和最终执行分别核验。

通用设施矩阵

所有 FacilityAccessService 分支要求系统启用、Player/Facility 非空、使用权限或设施管理员,以及核心地块仍属原城镇。

操作/角色 本镇镇长 普通居民/仅助手 设施管理员 控制台
非公共设施 canOpen,TOWN 模式 可(仍需基础条件) 本镇可 可(仍需有效城镇) 无 Player,不适用
非公共设施 canOpen,MAYOR 模式 可 不因头衔放行 可 不适用
publicInteraction=true 打开 基础条件通过可 可,不要求本镇成员 可 不适用
canManage 可 不可,仅助手不够 可 不适用

publicInteraction 不绕过原城镇有效性。管理员不意味着可以在标准创建中省略本镇身份:创建服务另检查 townOf。

按执行动作区分

动作 执行检查
通用 UPGRADE/RESUME/DISMANTLE、账户 WITHDRAW canManage,加类型/状态/资产检查
DEPOSIT/TOWN_SUMMARY、翻页/刷新/质押入口 canOpen
物资图标左右键 FacilityMenuListener→canUse→canOpen,不是账户 WITHDRAW
银行真实槽位存取 BankMenuListener 重查 bank.canUse→canOpen
银行质押存入/取出 BankPledgeItemDialog 每次重查 bank.canUse
铁匠铺普通使用 在线、存活、非旁观、facility.use、同区块核心8格内、原城镇及模式
铁匠铺升级/研究 上述检查再加当前城镇 canManage
驿站手动寄货/领取 StationPostService.inspect:本人原站区块、facility.use、存活非旁观、核心、归属;操作要求 ACTIVE/PEACEFUL
驿站价目管理 PortTravelAccess 当前 manager 是镇长或设施管理员,不含单独助手放行

具体驿站其他操作仍要走专属资格,不可将包裹 inspect 当全部旅行权限规则。

命令与测试

/market 需要 flrv.market.admin,控制台被命令实现拒绝;/sellgui 需要 flrv.market.use。交易所设施入口不是 /market 管理命令授权。
/equipment 领取默认测试权限,allow-all 可放开领取但不能放开 finish 加速;/equipmentskin 用 flrv.equipment.skin;查看他人皮肤另需 admin 权限。
/war 由 flrv.war.admin 控制,允许控制台,仍只是测试功能。不能据此给控制台设施背包操作资格。

待确认冲突

旧玩家指南对“通用库存取出需管理权限”和“助手可调驿站价”描述与上述源码不同。源代码行为可记录,是否符合产品预期待主技术裁决。本文不声称已完成全插件授权或漏洞审计。

来源

folia_plugin/src/main/resources/plugin.yml;代码根 folia_plugin/src/main/java/com/flrv/:logic/facility/service/FacilityAccessService.java、infrastructure/integration/towny/TownyService.java#canManage/canAccess、PortTravelAccess.java#member/management(同 towny)、event/inventory/FacilityMenuListener.java、BankMenuListener.java(同 inventory)、ui/facility/BankPledgeItemDialog.java、logic/blacksmith/BlacksmithService.java、logic/port/service/StationPostService.java、event/command/FacilityCommand.java。
相关:设施执行链、银行指南。