# 🕒 ChallengeTimer
**一个强大的、灵活的 Minecraft 插件,用于跟踪挑战完成时间,具有持久的数据存储和可定制的显示选项。**
---
## ✨ 特性
- **🎯 双重计时器模式**: 全局计时器适用于所有玩家,或每个玩家的独立计时器
- **💾 持久性存储**: 计时器数据在服务器重启和玩家断开连接后仍然存在
- **⏸️ 智能自动暂停**: 当玩家离开服务器时,自动暂停计时器
- **🎨 完全可定制**: 配置颜色、文本和计时器行为
- **📊 实时显示**: 计时器显示在动作条上,带有播放/暂停指示器
- **🔄 无缝恢复**: 在重新连接后,从上次离开的地方继续
---
## 🚀 安装
1. 下载最新的 `ChallengeTimer.jar` 文件
2. 将其放置在服务器的 `plugins` 文件夹中
3. 启动/重启服务器
4. 在 `plugins/ChallengeTimer/config.yml` 中配置插件
5. 重新加载或重启服务器以应用更改
---
## 🎮 命令
| 命令 | 权限 | 描述 |
|---------|------------|-------------|
| `/start` | `challengetimer.start` | 启动或恢复计时器 |
| `/pause` | `challengetimer.pause` | 暂停正在运行的计时器 |
| `/reset` | `challengetimer.reset` | 将计时器重置为 00:00:00 |
> **注意**: 在独立计时器模式下,命令只能由玩家使用。在全局模式下,命令可以从控制台和游戏中运行。
---
## ⚙️ 配置
### 基本设置
```yaml
# ChallengeTimer 插件配置
# 同时也支持 Minecraft 颜色和十六进制颜色代码
# 独立计时器模式
# 如果为 true: 每个玩家都有自己的计时器
# 如果为 false: 所有玩家共享全局计时器
individual_timers: false
text:
timer_label: "Challenge Timer"
timer_divider: " >> "
start_label: " ⏸ "
pause_label: " ▶ "
colors:
timer_title: "gold" # 计时器标签的颜色
start_label: "yellow" # 启动图标的颜色
stop_label: "green" # 暂停图标的颜色
days: "green" # 天数的颜色
hours: "aqua" # 小时的颜色
minutes: "yellow" # 分钟的颜色
seconds: "white" # 秒数的颜色
separator: "gray" # 分隔符的颜色 (例如,天数、小时数、分钟数、秒数)~~~~
```
### 计时器模式
#### 🌍 全局计时器模式 (`individual_timers: false`)
- **单个共享计时器**,适用于所有玩家
- 当**最后一位玩家**离开服务器时,计时器暂停
- 命令可以从**控制台和游戏中**运行
- 非常适合**服务器范围内的挑战**
#### 👤 独立计时器模式 (`individual_timers: true`)
- **为每个玩家提供单独的计时器**
- 当**玩家离开时**,每个玩家的计时器都会暂停
- 命令只能由**游戏中玩家**使用
- 适合**个人挑战**和**竞赛**
---
## 🎨 显示特性
### 计时器格式
```
Challenge Timer | ▶ 2d 14h 37m 42s
```
### 状态指示器
- **▶** - 计时器正在运行
- **⏸** - 计时器已暂停
### 时间单位
- **天** (d) - 当 > 0 时才显示
- **小时** (h) - 当 > 0 或天数 > 0 时才显示
- **分钟** (m) - 始终显示
- **秒** (s) - 始终显示
---
## 🔧 高级特性
### 自动暂停系统
- **全局模式**: 当最后一位玩家离开时,计时器自动暂停
- **独立模式**: 当玩家断开连接时,每个玩家的计时器都会暂停
- **智能恢复**: 使用 `/start` 从上次离开的地方继续
### 数据持久性
- 所有计时器数据存储在 `timer_data.yml` 中
- 在服务器崩溃和重启后保持生存
- 处理服务器停机期间的暂停时间计算
### 颜色自定义
支持命名颜色和十六进制代码:
**命名颜色**: `black`, `dark_blue`, `dark_green`, `dark_aqua`, `dark_red`, `dark_purple`, `gold`, `gray`, `dark_gray`, `blue`, `green`, `aqua`, `red`, `light_purple`, `yellow`, `white`
**十六进制颜色**: `#FF5733`, `#00FF00`, `#1E90FF`, 等等。
---
## 📝 使用示例
### 启动挑战
```
/start
> Challenge Timer started!
```
### 挑战进行中暂停
```
/pause
> Challenge Timer paused!
```
### 断开后恢复
```
/start
> Challenge Timer resumed!
```
### 新挑战重置
```
/reset
> Challenge Timer reset!
```
---
## 🎯 用途
- **速度挑战**: 跟踪建造、成就或自定义目标完成时间
- **服务器活动**: 记录限时竞赛和挑战
- **个人目标**: 跟踪长期项目的进度
- **竞赛**: 多个玩家使用单独的计时器进行竞争
- **生存挑战**: 跟踪玩家在生存困难模式下生存时间
---
## 🛠️ 技术细节
### 要求
- **Minecraft 版本**: 1.19+
- **服务器软件**: Paper, Spigot, 或 Bukkit
- **Java 版本**: 17+
### 权限
```yaml
challengetimer.start: true # 允许启动计时器
challengetimer.pause: true # 允许暂停计时器
challengetimer.reset: true # 允许重置计时器
```
### 文件结构
```
plugins/
├── ChallengeTimer/
│ ├── config.yml # 主配置文件
│ └── timer_data.yml # 持久性计时器数据 (自动生成)
└── ChallengeTimer.jar # 插件文件
```
---
## 🐛 故障排除
### 计时器未显示
- 检查是否使用 `/start` 启动了计时器
- 验证玩家是否在计时器启动后加入
- 确保 ActionBar 未被其他插件覆盖
### 数据未持久保存
- 检查 `timer_data.yml` 文件的权限
- 验证服务器是否有权写入插件文件夹
- 检查服务器日志中是否有保存/加载错误
### 命令无法工作
- 验证是否设置了正确的权限节点
- 在独立模式下,确保命令由玩家 (而不是控制台) 使用
- 检查命令的拼写和语法
---
## 📊 示例计时器显示
```
Challenge Timer | ▶ 42s # 小于 1 分钟
Challenge Timer | ▶ 15m 30s # 小于 1 小时
Challenge Timer | ▶ 2h 45m 12s # 小于 1 天
Challenge Timer | ▶ 1d 12h 30m 45s # 大于 1 天
Challenge Timer | ⏸ 5h 23m 17s # 已暂停的计时器
```
---
## 🤝 贡献
发现了 bug 或有功能请求? 随时提交问题或拉取请求!
---
**充满 ❤️ 为 Minecraft 社区制作**