CradleMC官方WIKI

适用源码:fd73c2ee0dac31c7b7a96560623207e15046cd1c。本页描述当前实现,默认配置不等于实服配置。

定位

协议不要求存在战争。金币来自组织公库,物资来自独立协议仓库;同一协议中双方均可给付多种条件。支持城镇/城镇、城镇/国家、国家/国家,只有国家/国家可以转移城镇。

流程:建立草案 → 设置自己支付的条件及共同和平条款 → 核对对方支付 → 签署并发送 → 对方签署 → 执行并查看结果。建立和编辑草案不发送邀请;签署后只向另一方发送一条邀请,履约结果分别通知双方。列表按创建时间倒序,显示协议短编号,避免同一双方的不同协议混淆。

入口

常用入口为 /war → 协议大厅,兼容入口 /treaty、/treaty list。

/treaty create TOWN 城镇甲 TOWN 城镇乙
/treaty create NATION 国家甲 NATION 国家乙
/treaty create TOWN 城镇甲 NATION 国家乙
/treaty list
/treaty open <协议ID>
/treaty warehouse <TOWN|NATION> <组织名>
/treaty resume <协议ID>

战后谈判还可通过 /warpeace gui <战争ID> 打开以该次谈判双方为组织的执行协议;同一战争 ID 重复打开同一协议,不重复创建。

协议界面

箱子协议界面固定 54 格、两页,始终相对查看者:第 1 页“我支付什么”,第 2 页“对方支付什么”。每方仅能修改自己承担的支付条件;和平条款双方共用,可在任意一页打开四选一选择器。付款方和收款方在物品说明中明确列出。已添加物资以样本图标展示,左键修改、右键移除;样本不能拖走,对方样本只读。两页仓库入口都打开自己的组织仓库。

条件

条件 行为
一次性金币 从本组织公库付给对方,0 取消,最多两位小数
一次性物资 手持物品设为样本后设置数量,保留完整物品数据;数量 0 移除该样本,右键条件图标清空该组
和平协议 箱子选择停战、1 天、2 天、7 天;停战只结束当前战争,后三项同时禁止双方新宣战
定期金币 设置每期金额、间隔小时、总期数;首期在一个完整周期后到期
定期物资 设置样本、每期数量、间隔与期数;该组所有物资共用周期和期数
转移城镇 国家对国家;填写己方国家的非首都城镇,加入对方国家

单次金额范围 0~10 亿;每种物资数量 1~10 亿;周期 1~87600 小时、期数 1~10000;每组最多 12 种物资或 12 座城镇。定期合同为有限期数,修改已签合同不被允许。转国保留镇长、居民和城镇地块归属;首都须先迁都,仍需满足 Towny 的居民容量、制裁和加入条件。

双方确认与履约

权限 flrv.treaty.use 默认开放,实际操作仍要求双方组织当前镇长/国王;同一人不能代表双方。修改条件会增加修订号并清除双方签署;保存相同条件不增加修订。仅同一修订双方签署后生成履约任务;空协议不可发送。未签成草案可取消;生效协议不能单方取消。

“全部履约完成”表示协议内所有履约任务已执行,无须再次签署;和平禁止宣战的期限独立计时。右下角书本显示各项结果、定期任务剩余期数、相关战争是否结束、双方当前和平期剩余分钟。生效协议不再显示可签署按钮,开启中的窗口会随状态变化刷新。

签成时一次性物资先从双方可用仓库余额转入协议保留库存,避免签成后被取走。后台先完成双方一次性金币扣款的持久化检查点,再释放初始金币或保留物资;定期条件在对应到期时分别执行。和平在初始交付后生效,转国排在和平之后。

金币不足、物资不足或已知拒收会记为“履约暂停/违约”。补足后任一当前组织领导可点击“补足后重试履约”或 /treaty resume <协议ID>。只重试未完成任务;已扣款但已知尚未入账的任务仅重试入账,不再次扣款。逾期任务按原到期日补履约,每次后台轮询最多处理每个定期任务的一期。

协议仓库

仓库与协议两页相互独立,通过协议页“本组织协议仓库”或仓库命令打开。仅本组织当前领导可存取,对方页不能查看或取走本方仓库。

手持一组物资,点击仓库底部“存入主手整组物资”;取出时清空主手后点击仓库物品,最多取一组到主手。库存以完整序列化物品的指纹区分,显示名称相同但数据不同的物品不混算,支持自定义装备及物品。

和平与战争

和平阻止 WarService.start(包括扩展 API)中的宣战,不只拦截某一条命令。国家和平也保护其成员城镇之间的代理宣战;城镇协议不能替国家终止整场国家战,国家战只由匹配的国家组织协议结束。

签成和和平执行时记录可由双方组织结束的当前战争 ID,按平局终止这些战争,原有方块复原流程继续。到期后只重试已经列入的 ID,不会误结束之后的新战争。和平小时从和平条件实际执行时起计算;0 小时只停执行时记录的当前战,不限制未来宣战。

异常核对

经济提供者没有幂等交易编号。扣款或入账进行中异常中断时,不自动猜测成功与否,而记为“待管理员核对”,避免重启重复扣款/入账。管理员权限 flrv.treaty.admin 默认 OP,不能代签。

/treaty review
/treaty review money <任务ID> applied
/treaty review money <任务ID> not-applied
/treaty review inventory <交接ID> applied
/treaty review inventory <交接ID> not-applied
/treaty review town <协议ID>
/treaty review resume <协议ID>

applied 表示当前不确定的步骤确实已经完成,not-applied 表示确实未发生,不是重试按钮。

来源

docs/organization-agreements.md;代码根 folia_plugin/src/main/java/com/flrv/:logic/treaty/、ui/treaty/TreatyMenu.java、infrastructure/persistence/war/TreatyRepository.java、logic/war/negotiation/。