MythicMarry — 生存冒险服专属结婚插件
> 让爱有仪式感 · 让羁绊有重量
> 专为生存冒险服打造的社交养成类结婚插件,主打完整婚礼流程 + 双人共生羁绊 + 专属生存特权
MythicMarry 是一款功能完整、高度可配置的 Minecraft 结婚插件。
不同于市面上大多数简单的"互发请求即结婚"插件,MythicMarry 拥有完整的求婚 → 订婚 → 婚礼 → 婚后养成全流程,每一个环节都充满仪式感。
婚后的情侣可以共同完成每日任务、积累羁绊值、解锁专属 Buff、查看情侣排行榜,让服务器的社交系统真正"活"起来。

一、完整婚姻流程
求婚 → 对方接受 → 订婚(48小时有效期)→ 筹备婚礼 → 举办婚礼 → 正式结婚
- 求婚:打开 GUI 选择在线单身玩家,支持每日次数限制和最低在线时长要求,防止小号刷婚
- 订婚:订婚状态持续 48 小时(可配置),期间可随时取消
- 婚礼筹备:需在游戏中设置婚礼场地、新娘/新郎/司仪站位、宾客坐席,发送请帖邀请宾客
- 婚礼仪式:宾客传送就位,双方输入"我愿意"完成宣誓,全服广播庆祝
- 离婚冷静期:申请离婚后需等待 24 小时(可配置)生效,防止冲动离婚;离婚后进入再婚冷却期

二、羁绊等级系统(10级养成)
婚后情侣可通过各种共同行为积累羁绊值,升级羁绊等级,解锁专属称号与特权。
| 等级 | 称号 | 所需羁绊值 |
|------|------|-----------|
| Lv.1 | 倾心 | 初始 |
| Lv.2 | 相知 | 100 |
| Lv.3 | 相守 | 250 |
| Lv.4 | 同心 | 500 |
| Lv.5 | 挚爱 | 1000 |
| Lv.6 | 情深 | 2000 |
| Lv.7 | 不渝 | 3500 |
| Lv.8 | 永恒 | 5500 |
| Lv.9 | 共生 | 8000 |
| Lv.10 | 至尊 | 12000 |
> 等级名称和所需经验值均可在 `config.yml` 中自由修改。
羁绊值获取方式:
- 共同在线每小时 +10
- 每日首次一起登录 +8
- 共同击杀精英怪 +5
- 共同建造 10 个方块 +1
- 完成情侣任务 +20
- 婚礼贺礼达标 +15

三、情侣专属任务(30天循环)
每对情侣拥有独立的 30 天任务周期,从结婚当天开始计第 1 天,每天解锁一个新任务。
任务特点:
- 双方需在同一世界且距离 ≤ 50 格才能共同计数
- 共 18 种任务类型,涵盖战斗、建筑、生活、探索等各类玩法
- 完成奖励:羁绊值 + 金币 + 经验 + 专属物品
- 30 天周期结束后自动重置,循环挑战
任务类型一览:
| 类型 | 说明 |
|------|------|
| 共同击杀怪物 | 一起刷怪,感受并肩作战 |
| 共同击杀动物 | 一起狩猎,田园生活 |
| 共同击杀指定怪物 | 挑战特定精英怪 |
| 共同放置方块 | 一起建造,打造爱巢 |
| 共同破坏方块 | 一起采矿,共同劳作 |
| 共同食用食物 | 一起进食,感受生活 |
| 共同附魔物品 | 一起强化装备 |
| 共同冶炼物品 | 一起炼制材料 |
| 共同合成物品 | 一起制作道具 |
| 共同铁砧锻造 | 一起锻造神器 |
| 共同钓鱼 | 一起垂钓,悠闲时光 |
| 共同酿造药水 | 一起炼药,神秘魔法 |
| 共同村民交易 | 一起购物逛街 |
| 共同驯服动物 | 一起收服宠物 |
| 共同睡觉 | 一起入眠,安心陪伴 |
| 共同鞘翅飞行 | 一起翱翔天际 |
| 共同探索群系 | 一起发现新世界 |
| 共同获得经验 | 一起成长进步 |

四、情侣排行榜(4 种榜单)
| 榜单 | 排序依据 |
|------|---------|
| 羁绊等级榜 | 羁绊等级 → 羁绊值 |
| 结婚时长榜 | 结婚天数 → 羁绊等级 |
| 共同在线榜 | 共同在线时长 → 羁绊等级 |
| 羁绊值总量榜 | 羁绊值总量 → 结婚天数 |
- 支持 GUI 内一键切换榜单
- 每周日 20:00 自动结算并全服广播排名
- 支持 DecentHolograms 全息榜(需安装)
- 支持 PlaceholderAPI 变量,可在记分板/TAB 中显示排名

五、丰富的奖励系统
婚礼纪念日奖励:
| 纪念日 | 默认奖励 |
|--------|---------|
| 结婚 7 天 | 500 金币 + 100 经验 + 七日甜蜜蛋糕 |
| 结婚 30 天 | 2000 金币 + 500 经验 + 共生图腾 |
| 结婚 100 天 | 5000 金币 + 1000 经验 + 百日钻石套装 |
| 结婚 365 天 | 20000 金币 + 5000 经验 + 永恒传说套装 |
羁绊等级升级奖励:每个等级升级均可获得对应称号 + 金币 + 物品奖励(可配置)
排行榜周结算奖励:每周前三名情侣获得专属奖励(可配置)
> 所有奖励均在 `rewards.yml` 中配置,支持:金币、经验、指令、自定义物品(含附魔、Lore、CustomModelData)

六、情侣专属特权
- 一键传送:传送至伴侣身边(冷却 10 分钟,可配置)
- 情侣私聊:专属聊天频道,外人不可见的悄悄话
- 共生 Buff:双方同处 20 格内时触发(速度提升 + 抗性提升),戒指佩戴副手激活
- 赠送物品:手持物品通过 `/marry gift` 直接发送给伴侣
- 戒指系统:订婚/结婚戒指,佩戴副手可激活专属 Buff,高等级戒指效果更强

七、婚礼请帖与贺礼系统
- 婚礼前可向在线玩家发送请帖,被邀请玩家可接受/拒绝
- 宾客可在婚礼中通过贺礼箱或指令赠送贺礼
- 新人可在婚礼筹备 GUI 中查看贺礼记录并一键领取
玩家指令 `/marry`
| 指令 | 说明 |
|------|------|
| `/marry` | 打开主菜单 GUI |
| `/marry propose <玩家>` | 向指定玩家求婚 |
| `/marry accept` | 接受求婚/婚礼邀请 |
| `/marry deny` | 拒绝求婚/婚礼邀请 |
| `/marry info` | 查看自己的婚姻信息 |
| `/marry partner` | 查看伴侣详细信息 |
| `/marry tp` | 传送至伴侣身边 |
| `/marry chat <内容>` | 发送情侣私聊消息 |
| `/marry gift` | 手持物品赠送给伴侣 |
| `/marry divorce` | 申请离婚 |
| `/marry task` | 查看情侣任务 |
| `/marry rank` | 查看情侣排行榜 |
| `/marry setweddingloc` | 设置婚礼场地(当前位置) |
| `/marry hunliset nx` | 设置新娘站位 |
| `/marry hunliset nl` | 设置新郎站位 |
| `/marry hunliset ly` | 设置司仪站位 |
| `/marry hunliset <编号>` | 添加宾客坐席(编号 1-1000) |
| `/marry startw` | 开启婚礼仪式 |
| `/marry ring` | 开关戒指特效 |
| `/marry block <玩家>` | 屏蔽指定玩家的求婚 |
| `/marry unblock <玩家>` | 取消屏蔽 |
| `/marry help` | 查看帮助 |
管理员指令 `/marryadmin`
| 指令 | 说明 |
|------|------|
| `/marryadmin reload` | 重载所有配置文件 |
| `/marryadmin force <玩家1> <玩家2>` | 强制撮合两人结婚 |
| `/marryadmin divorce <玩家>` | 强制离婚 |
| `/marryadmin setlevel <玩家> <等级>` | 设置羁绊等级 |
| `/marryadmin setexp <玩家> <羁绊值>` | 设置羁绊值 |
| `/marryadmin givering <玩家> <类型>` | 发放戒指 |
| `/marryadmin list` | 查看全服情侣列表 |
| `/marryadmin info <玩家>` | 查看指定玩家婚姻数据 |
| `/marryadmin clear <玩家>` | 清空玩家婚姻数据 |

权限节点
| 权限 | 说明 | 默认 |
|------|------|------|
| `marry.use` | 使用 `/marry` 指令 | 所有人 |
| `marry.admin` | 使用 `/marryadmin` 指令 | OP |
| `marry.admin.reload` | 重载配置 | OP |
| `marry.admin.force` | 强制结婚 | OP |
| `marry.admin.divorce` | 强制离婚 | OP |
| `marry.admin.set` | 设置羁绊等级 | OP |
| `marry.admin.list` | 查看情侣列表 | OP |
| `marry.admin.clear` | 清空玩家数据 | OP |
| `marry.admin.give` | 发放戒指 | OP |

PlaceholderAPI 变量
安装 PlaceholderAPI 后可在记分板、TAB、全息等插件中使用以下变量:
| 变量 | 说明 |
|------|------|
| `%mythicmarry_status%` | 婚姻状态(未婚/订婚中/已婚) |
| `%mythicmarry_partner%` | 伴侣名称 |
| `%mythicmarry_bond_level%` | 羁绊等级数字 |
| `%mythicmarry_bond_level_name%` | 羁绊等级称号 |
| `%mythicmarry_bond_exp%` | 当前羁绊值 |
| `%mythicmarry_marriage_days%` | 结婚天数 |
| `%mythicmarry_rank_bond_1_name%` | 羁绊榜第1名情侣名 |
| `%mythicmarry_rank_bond_1_level%` | 羁绊榜第1名等级 |
| `%mythicmarry_rank_duration_1_days%` | 时长榜第1名天数 |
| `%mythicmarry_my_rank_bond%` | 当前玩家所在情侣的羁绊榜排名 |

配置文件说明
插件共有 8 个配置文件,全部支持 `/marryadmin reload` 热重载:
| 文件 | 说明 |
|------|------|
| `config.yml` | 主配置:数据库、求婚/离婚设置、羁绊等级、联动开关等 |
| `lang/zh_CN.yml` | 简体中文语言文件 |
| `lang/en_US.yml` | 英文语言文件 |
| `rewards.yml` | 奖励配置:纪念日、等级升级、排行榜结算奖励 |
| `rank.yml` | 排行榜配置:榜单类型、GUI样式、全息、周结算 |
| `tasks.yml` | 情侣任务配置:30天任务内容、奖励、触发条件 |
| `gui/.yml` | GUI 配置:每个界面独立一个文件,支持自定义布局和 ItemsAdder 图片标题 |

数据库支持
| 存储方式 | 说明 |
|---------|------|
| YAML(默认) | 无需额外配置,数据存储在 `data/` 目录,适合小型服务器 |
| MySQL 5.7+ | 在 `config.yml` 中启用,适合大型服务器或多服共享数据 |
MySQL 使用 HikariCP 连接池,支持异步读写,不影响主线程性能。

GUI 系统
所有 GUI 界面均采用配置驱动设计,服主可在 `gui/` 目录下的 yml 文件中自定义:
- 界面标题、大小
- 每个槽位的物品材质、名称、说明文字
- ItemsAdder 自定义图片标题(需安装 ItemsAdder,将 `custom_title_enabled` 改为 `true` 即可)
9 个独立 GUI 配置文件:
| 文件 | 对应界面 |
|------|---------|
| `gui/main_menu.yml` | 主菜单(54格) |
| `gui/propose.yml` | 求婚界面(54格,玩家列表) |
| `gui/partner_info.yml` | 伴侣信息(27格) |
| `gui/wedding_plan.yml` | 婚礼筹备(54格) |
| `gui/invitation.yml` | 请帖管理(54格) |
| `gui/send_invite.yml` | 发送请帖(54格) |
| `gui/gift.yml` | 贺礼记录(54格) |
| `gui/task.yml` | 情侣任务(54格) |
| `gui/rank.yml` | 排行榜(材质/按钮配置) |

安装方法
1. 将 `MythicMarry.jar` 放入服务器 `plugins/` 目录
2. 重启服务器,插件自动生成所有配置文件
3. 根据需要编辑 `plugins/MythicMarry/config.yml`
4. 如需使用 MySQL,将 `database.enabled` 改为 `true` 并填写数据库信息
5. 执行 `/marryadmin reload` 使配置生效

常见问题
Q:安装后输入 `/marry` 没有反应?
A:检查 `plugins/MythicMarry/` 目录是否正常生成,查看控制台是否有报错。确认玩家拥有 `marry.use` 权限。
Q:想使用 MySQL 但不会配置?
A:在 `config.yml` 中将 `database.enabled` 改为 `true`,填写 `host`、`port`、`database`、`username`、`password`,重启服务器即可。插件会自动建表。
Q:如何修改 GUI 界面的布局?
A:编辑 `plugins/MythicMarry/gui/` 目录下对应的 yml 文件,执行 `/marryadmin reload` 生效。
Q:奖励中的指令如何配置?
A:在 `rewards.yml` 的 `commands` 列表中填写,`{player}` 会被替换为玩家名,例如:`"give {player} diamond 1"`。
Q:情侣任务不计数?
A:确认双方在同一世界,且距离在 `tasks.yml` 中 `default-trigger-distance`(默认 50 格)以内。
Q:支持多语言吗?
A:支持。在 `config.yml` 中将 `language` 改为 `en_US` 即可切换为英文,也可自行编辑 `lang/` 目录下的语言文件。

联系作者
- 作者:3317179016
- 交流群:1064383393
- 如有 Bug 反馈或功能建议,欢迎在发布页留言