# 🏃 Minecraft Manhunt 最新 - 项目摘要
[](https://modrinth.com/plugin/man-hunt-latest)
[](https://github.com/0x48lab/minecraft_manhunt/releases)
[](https://www.minecraft.net/)
[](https://papermc.io/)
一个为 Minecraft 服务器设计的全面的多人 Manhunt 插件,具有高级跟踪系统、经济集成和全面的国际化支持。
## ✨ 特色功能
### 🎯 核心 Manhunt 游戏玩法
- **动态角色系统**: 玩家可以选择猎人、逃亡者或观众
- **高级指南针跟踪**: 基于虚拟指南针的跟踪,带有目标切换功能
- **接近警告系统**: 逃亡者接近猎人时,分层警告系统
- **自动游戏管理**: 智能游戏状态处理,并提供重连支持
### ⏱️ 游戏模式
- **时间限制模式** (默认 40 分钟)
- 游戏在时间到期时结束
- 根据接近/逃脱时间比率确定获胜者
- 击杀奖励为杀手团队时间增加 5 分钟
- 实时优势百分比显示
- 此模式下逃亡者瞬间重生
- **无尽模式** (时间限制:0)
- 传统的 Manhunt 游戏玩法
- 游戏持续到满足获胜条件为止
- 逃亡者重生,等待 300 秒
- 没有时间压力,注重战略游戏
### 💰 经济与商店系统
- **游戏内货币**: 通过游戏行动赚取硬币
- **全面的商店**: 6 个类别下有 40 多件物品 (武器、盔甲、工具、消耗品、食物、特殊)
- **基于角色的奖励**: 猎人和逃亡者有不同的赚钱方式
- **购买限制**: 物品限制、冷却时间和角色特定的限制
- **移动奖励**: 当敌人位于 3 区块范围内时,奖励冲刺移动
### 🌍 全面国际化
- **多语言支持**: 完整的英语和日语本地化
- **特定玩家的语言**: 独立的语言偏好设置
- **本地化的商店物品**: 所有物品和描述均已完全翻译
- **动态 UI**: 所有界面都适应玩家的语言设置
### 📊 高级统计与结果
- **详细的玩家统计**: 跟踪表现、收入和成就
- **MVP 系统**: 自动识别顶级表演者
- **全面的游戏结果**: 多阶段结果展示,带有视觉效果
- **团队排名**: 基于表现的团队和个人排名
### 🎮 增强的用户体验
- **角色选择 GUI**: 直观的图形角色选择菜单
- **观众菜单**: 观众轻松传送系统
- **团队通信**: 私人团队聊天和坐标共享
- **好友系统**: 与队友组队,增强协调
- **实时 UI**: 动态游戏栏、动作栏和 Boss 栏显示
- **传送系统**: 以成本和延迟传送至队友
- **自动跳过夜晚**: 夜晚降临时跳到黎明
- **成就重置**: 每次游戏的新开始
## 🎯 游戏目标
- **🏃 逃亡者**: 击败末影龙以获得胜利
- **🗡 猎人**: 在逃亡者完成目标之前消灭所有逃亡者
- **👁 观众**: 具备完整的移动和传送选项来观察游戏
## 📋 要求
- **Minecraft 版本**: 1.21.4
- **服务器软件**: Spigot 或 Paper
- **Java 版本**: 21 或更高
- **最小玩家数**: 2 (可配置)
## 🎮 快速开始
1. 加入服务器并运行 `/manhunt roles`
2. 使用菜单 (GUI 菜单) 选择你的角色
3. 等待最少玩家并自动开始游戏
4. 使用 `/manhunt help` 查看所有可用命令
## ⚙️ 配置
该插件可以通过 `config.yml` 进行高度配置:
```yaml
# 语言设置
language:
default: "en" # 默认语言 (ja/en)
per-player: true # 每位玩家的语言设置
# 游戏设置
game:
min-players: 2 # 开始游戏的最小玩家数
start-countdown: 10 # 游戏开始前倒计时
reset-advancements: true # 游戏开始时重置成就
time-limit: 40 # 游戏时间限制,以分钟为单位(0 表示无尽模式)
# 时间模式设置 (仅在 time-limit > 0 时有效)
time-mode:
kill-bonus: 5 # 每次击杀增加的分钟数
proximity-distance: 3 # 接近计算区块数
runner-instant-respawn: true # 逃亡者的瞬间重生
runner-respawn-time: 30 # 重生等待时间,以秒为单位
# 经济设置
economy:
starting-balance: 0 # 初始资金 (0G)
currency-unit: "G" # 货币符号
earn-multiplier: 2.0 # 赚钱率乘数
hunter:
damage-reward: 5 # 每点伤害奖励
kill-reward: 150 # 每击杀奖励
tracking-reward: 30 # 持续跟踪奖励
runner:
survival-bonus: 0.05 # 每秒生存奖励
nether-reward: 200 # 进入地狱奖励
end-reward: 500 # 进入末地奖励
```
## 🎯 命令
### 玩家命令
- `/manhunt role ` - 更改角色(等待中)
- `/manhunt roles` - 打开角色选择 GUI
- `/manhunt status` - 检查游戏状态
- `/manhunt compass` - 获取跟踪指南针(仅限猎人)
- `/manhunt spectate` - 打开观众菜单(仅限观众)
- `/r ` - 团队聊天
- `/pos` - 与团队共享坐标
- `/shop` - 打开商店菜单
- `/shop balance` - 检查余额
- `/buddy ` - 好友系统命令(仅在游戏期间有效)
- `/warp ` - 传送至队友 (成本 100G,延迟 5 秒)
### 管理员命令
- `/manhunt start` - 强制开始游戏
- `/manhunt stop` 或 `/manhunt end` - 强制停止游戏
- `/manhunt sethunter ` - 指定猎人角色
- `/manhunt setrunner ` - 指定逃亡者角色
- `/manhunt setspectator ` - 指定观众角色
- `/manhunt minplayers ` - 设置最小玩家数
- `/manhunt reload [config|shop|all]` - 重新加载配置
- `/manhunt ui ` - 控制 UI 显示
- `/manhunt respawntime ` - 设置自定义重生时间
- `/manhunt reset` - 强制重置游戏(仅在游戏结束后有效)
- `/manhunt give ` - 给玩家金钱
- `/manhunt validate-messages` - 检查消息文件完整性
- `/manhunt diagnose` - 输出诊断信息
## 🏆 经济系统
### 赚钱方式
**🗡 猎人:**
- 对逃亡者造成的每一点伤害奖励 5G
- 消灭一名逃亡者奖励 150G
- 在 100 米内连续跟踪逃亡者 30 秒,奖励 30G
- 每 30 秒时间奖励 1.5G (时间奖励)
**🏃 逃亡者:**
- 每 30 秒生存奖励 1.5G (生存奖励)
- 进入地狱奖励 200G
- 找到堡垒奖励 300G
- 进入末地奖励 500G
- 每收集一个钻石奖励 25G
- 成功逃脱(100 米以上距离)奖励 20G
- 当敌人附近冲刺时获得移动奖励
### 商店类别
- **⚔️ 武器:** 剑、斧头、三叉戟
- **🛡️ 盔甲:** 各材料的全身盔甲套装
- **🔧 工具:** 镐、铲、水桶
- **🧪 消耗品:** 药水、金苹果
- **🍖 食物:** 各种食物
- **✨ 特殊:** 鞘翅、末影珍珠、绿宝石
## 🌟 高级功能
### 怪物生成放置系统
- **动态放置范围**: 根据总玩家数自动调整
- 2 位玩家: 最大 500 米
- 20 位玩家: 最大 2000 米
- 20+ 位玩家: 每增加 20 位玩家增加 500 米
- **敌对生物距离**: 敌对团队之间的最小距离(默认:500 米)
- **团队比例调整**:
- 少数团队: 紧密放置在一起
- 多数团队: 基于团队比例分散开来
- **安全放置**: 避免危险位置,放置在地面上
### 接近警告系统
- **红色警戒**: 猎人在 1 区块范围内
- **橙色警戒**: 猎人在 2 区块范围内
- **黄色警戒**: 猎人在 3 区块范围内
- **频率控制**: 限制警告以防止垃圾信息
### 虚拟指南针跟踪系统
- 实体指南针物品或空手右键点击
- 右键点击切换目标 (循环逃亡者)
- 距离和方向指示器带有粒子效果
- 仅跟踪同一个世界
- 了解死亡状态(已死亡的逃亡者不被跟踪)
- 使用之间有 1 秒的冷却时间
### 团队协调
- 使用 `/r ` 进行私人团队聊天
- 使用 `/pos` 共享坐标
- Tab 列表显示实时队友位置
- 好友系统增强团队合作
### 好友系统
- 与一位队友组队,以实现更紧密的协调
- 分数栏显示好友的实时位置
- 玩家列表中用橙色高亮显示
- 命令:`/buddy invite`、`accept`、`decline`、`remove`、`status`
- 需要双方同意才能建立好友关系
- 游戏结束或玩家离开时自动清理
### 重生系统
- **猎人:** 瞬间重生 (1 滴延迟)
- **逃亡者:**
- 无尽模式:在观众模式下等待 300 秒
- 时间模式:瞬间重生
- 实时倒计时显示
- 等待期间具备完全的观众能力
### 相遇通知
- 当猎人找到逃亡者时,自动通知
- 配置通知之间的冷却时间
- 音效和标题效果
- 防止为连续接近而重复通知
## 🔧 技术细节
- **语言**: Kotlin 1.9.24
- **构建工具**: Gradle 8.8
- **目标 JVM**: Java 21
- **API**: Spigot/Paper 1.21.5(测试版)
- **架构**: 基于事件驱动,具有全面的管理器类
### 核心组件
- `Main.kt` - 插件主类
- `GameManager.kt` - 游戏状态和玩家管理
- `VirtualCompass.kt` - 虚拟指南针跟踪系统
- `EventListener.kt` - 事件处理
- `UIManager.kt` - 用户界面管理
- `EconomyManager.kt` - 货币系统
- `MessageManager.kt` - 国际化
- `ProximityTimeTracker.kt` - 时间模式跟踪
### 构建
1. 克隆存储库
2. 运行 `./gradlew build`
3. 插件 JAR 将位于 `build/libs/` 目录中
### 消息键验证
构建过程将自动检查代码中使用的所有消息键是否都定义在 `ja.yml` 和 `en.yml` 文件中。
要手动检查消息键:
```bash
./gradlew checkMessageKeys
```
如果缺少任何键,构建将失败并提供有关缺失键的建议。
## 📝 最新更新 (2025-07-22)
### 新功能
- **成就重置**: 游戏开始时自动重置所有玩家成就
- **跳过夜晚**: 夜晚降临时自动转换到黎明(可配置)
- **传送命令**: 以 100G 的成本和 5 秒的延迟传送至队友
- **跟踪持续奖励**: 猎人持续跟踪逃亡者时获得 30G
### 错误修复
- 修复了死去的逃亡者被放到生存模式而不是观众模式中的 bug
- 修复了重生等待时间期间指南针跟踪继续的问题
- 修复了距离显示显示实际距离给死去的逃亡者的问题(现在显示 0 米)
- 修复了逃亡者死亡后经济奖励分发问题
- 防止重复相遇通知
- 修复了游戏重置后角选定器 GUI 无效的问题
- 修复了代码库中各个硬编码的语言字符串
- 删除了用于即时结果显示后游戏重置的非必要游戏重置倒计时
## 🤝 贡献
我们欢迎贡献!随时:
- 通过 GitHub Issues 报告错误
- 提出新功能建议
- 提交拉取请求
- 协助翻译
## 📄 许可证
本项目的许可证为 MIT 许可证,详情请参阅 [LICENSE](LICENSE) 文件。
## 🔗 链接
- [官方指南](https://0x48lab.github.io/minecraft_manhunt/)
- [Modrinth 页面](https://modrinth.com/plugin/man-hunt-latest)
- [GitHub 存储库](https://github.com/0x48lab/minecraft_manhunt)
- [问题跟踪器](https://github.com/0x48lab/minecraft_manhunt/issues)
---
**🎮 准备好开始你的 Manhunt 冒险了吗?立即下载并体验终极追逐!**