
## Bukkit 插件用于时间管理和显示
### 时间管理功能
为每个世界定义开始时间和速度修改器。设置适合服务器性能的刷新率。
速度可以增加/减少 10 倍,或者与 UTC 时间配合偏移量到本地时间。
白天和黑夜可以设置不同的速度值,这对 RPG 或一些小游戏非常有用。
世界列表在每次服务器启动和重新加载时都会更新,计时器也会同步。
可以使用游戏内命令修改时间和速度,或者在手动更改后重新加载。
可以授权、禁止或将睡眠与某些其他世界关联。
可以为每个玩家定义特定的时间偏移。
TimeManager 可以安排在 cmds.yml 文件中指定的 time 执行的命令。 计划的命令可以使用以下占位符,但 {tm_player} 除外。
此插件覆盖了原生的 '/time' 命令。用于更改单个世界计时器的命令是 '/tm set time \[ticks|daypart|HH:mm:ss] \[world]'。
### 玩家命令 /now \ \
一个命令用于显示自定义消息,其中包含时间、日期、经过的天数或周数,或许多其他占位符。
/now 消息支持多语言,并且可以根据 lang.yml 文件中玩家的可用区域设置自动调整。
使用权限,您可以允许玩家选择显示和/或世界参数,或者不选择这两者。
显示参数可以是:'msg'、'title' 或 'actionbar'。
地狱世界和末地世界可以具有特定的消息。
YAML 文件可以使用十六进制颜色。
### 占位符
以下是可用的占位符:
- {tm_player}: 显示玩家的姓名。
- {tm_world}: 显示世界名称。
- {tm_tick}: 显示当前滴答值。
- {tm_time12}: 以 hh:mm:ss 格式显示当前时间。 (1 → 12)
- {tm_time24}: 以 HH:mm:ss 格式显示当前时间。 (0 → 23)
- {tm_hours12}: 以两位数显示当前小时值。 (1 → 12)
- {tm_hours24}: 以两位数显示当前小时值。 (0 → 23)
- {tm_minutes}: 以两位数显示当前分钟值。
- {tm_seconds}: 以两位数显示当前秒数值。
- {tm_ampm}: 显示当前日期中的 AM 或 PM 部分。
- {tm_daypart}: 显示当前日期中的各个部分名称,在每种语言中都有四种不同的部分。
- {tm_currentday}: 显示当前的天数。 (1 → ∞)
- {tm_elapseddays}: 显示经过的天数。 (0 → ∞)
- {tm_weekday}: 显示一年中的第几天。 (1 → 7)
- {tm_yearweek}: 显示一年中的第几周。 (1 → 52)
- {tm_week}: 显示经过的周数。 (1 → ∞)
- {tm_monthname}: 根据 lang.yml 文件中的条目显示当前月份的名称。
- {tm_dd}: 显示日期中的日期部分,两位数。
- {tm_mm}: 显示日期中的月份部分,两位数。
- {tm_yy}: 显示日期的年份部分,两位数。
- {tm_yyyy}: 显示日期的年份部分,四位数。
请注意,这些占位符区分大小写。
它们可以在 lang 和 cmds YAML 文件中使用,也可以在告示牌、书籍、聊天消息和命令中使用。
#### 依赖项
TimeManager 可以通过 [PlaceholderAPI](www.spigotmc.org/resources/placeholderapi.6245) 和 [MVdWPlaceholderAPI](www.spigotmc.org/resources/mvdwplaceholderapi.11182) 显示其占位符。 您只需要将 API 放在您的插件文件夹中,并在 TimeManager config.yml 文件中将相关节点设置为 'true'。
### 管理员命令 /tm
**/tm checkConfig** 管理员和控制台可以显示 config.yml 和 lang.yml 文件的摘要。
**/tm checkSql** 检查 mySql 服务器是否可用,具体参考 config.yml 文件中的值。 这仅检查 IP 地址和正确的端口是否已打开。
**/tm checkTime \[all|server|world]** 管理员和控制台可以显示调试/管理消息,显示服务器启动时间、当前服务器时间以及特定世界(或所有世界)的当前时间、开始时间和速度。
**/tm checkUpdate \[bukkit|curse|spigot|github]** 搜索插件在所选服务器上是否有较新版本。 (仅限 MC 1.8.8+)
**/tm help \[cmd] \[\]** Help 提供有关目标命令和子命令的正确用法及简短描述。
**/tm now \[msg|title|actionbar] \[player|all|world]** 将 '/now' (聊天、标题或操作栏) 消息发送给特定玩家、特定世界中的所有玩家或所有在线玩家。
**/tm reload \[all|config|lang|cmds]** 此命令允许您在手动修改后从 YAML 文件重新加载数据。 所有计时器将立即重新同步。
**/tm resync \[all|world]** 此命令将重新同步单个或所有世界计时器,基于服务器的启动时间、经过的时间和当前的速度修改器。
**/tm set date \[today|yyyy-mm-dd] \[all|world]** 设置指定世界(或所有世界)的当前日期。 可以是 'today' 或任何 yyyy-mm-dd 日期。 月份长度对应于现实,二月总是持续 28 天。 因此,一年总是持续 365 天。
**/tm set debugMode \[true|false]** 设置为 true 以在控制台中启用彩色详细消息。 有助于理解此插件的一些机制。
**/tm set defLang \[lg_LG]** 如果玩家的区域设置不存在于 lang.yml 中或当 'useMultiLang' 为 false 时,选择要使用的翻译。
**/tm set elapsedDays \[0 → ∞] \[all|world]** 设置指定世界(或所有世界)的当前经过天数。 可以是 '0' 到无穷大(或接近无穷大)之间的整数。 将此设置为 '0' 将使世界返回第一天。
**/tm set firstStartTime \[default|previous|start] \[all|world]** 强制服务器启动时世界的时间。 值 'default' 允许在启动时进行正常的重新同步。 值 'start' 会强制世界在世界中 'start' 节点中指定的时间开始。 值 'previous' 会返回服务器关闭之前世界中的时间。
**/tm set initialTick \[ticks|HH:mm:ss]** 修改服务器的初始滴答值。
**/tm set multiLang \[true|false]** 设置为 true 或 false 以使用 _/now_ 命令的自动翻译。
**/tm set playerOffset \[-23999 → 23999] \[all|player]** 定义相对于世界时间的玩家客户端的特定偏移量(世界速度仍然有效)。 设置为 '0' 以取消。
**/tm set playerTime \[ticks|daypart|HH:mm:ss|reset] \[all|player]** 定义玩家客户端上的特定时间(世界速度仍然有效)。 使用 'reset' 参数以取消。
**/tm set refreshRate \[ticks]** 设置实际化速度拉伸/扩展效果之前的延迟(以滴答值计算)。 必须是 '2' 到 '20' 之间的整数。 默认值为 '10' 滴答值,请注意,过小的值可能会导致服务器卡顿。
**/tm set sleep \[true|false|linked] \[all|world]** 定义玩家是否可以在指定世界(或所有世界)中睡到第二天。 默认情况下,所有世界都将从参数 true 开始,除非它们的计时器在实时模式下,这需要为 false。 如果要在多个世界中同时允许睡眠并保持时间一致,则可以使用 'linked' 函数,该函数允许一组世界一起度过夜晚。
**/tm set speed \[0.0 → 10.0] \[all|world]** 十进制数字参数将乘以世界(或多个世界)的速度。 使用 '0.0' 来冻结时间,使用 '0.1' 到 '0.9' 的数字来减慢时间,使用 '1.0' 来获得正常速度,并使用 '1.1' 到 '10.0' 的数字来加快时间。 将此值设置为 '24.0' 或 'realtime' 可使世界时间与真实时间匹配。
**/tm set speedDay \[0.0 → 10.0] \[all|world] & /tm set speedNight \[0.0 → 10.0] \[all|world]**
从 '0.0' 到 '10.0',白天速度和夜间速度的值可以不同。
**/tm set start \[ticks|daypart|HH:mm:ss|timeShift] \[all|world]** 定义服务器启动时指定世界(或所有世界)的时间。 默认情况下,所有世界都将在滴答值 #0 开始。 计时器将立即重新同步。 如果某个世界使用实时时间速度,则开始值将确定 UTC 时间偏移,并且将接受诸如 '+1' 或 '-1' 之类的值。
**/tm set sync \[true|false] \[all|world]** 定义是否应增加/减少世界的实际滴答值,或者根据服务器的滴答值调整理论滴答值。 默认情况下,所有世界都将从参数 false 开始。 基于实时时间的以及冻结的世界不使用此选项,而具有正常速度的世界会使用此选项。
**/tm set time \[ticks|daypart|HH:mm:ss] \[all|world]** 设置指定世界(或所有世界)的当前时间。 建议使用此命令代替原生的 '/time' 命令。 标签完成功能也提供了例如 “day”、“noon”、“night”、“midnight” 等便捷预设。
**/tm set update \[none|bukkit|curse|spigot|github]** 定义更新搜索的源服务器。 (仅限 MC 1.8.8+)
**/tm set useCmds \[true|false]** §r设置 true 以启用自定义命令调度器。 请参阅 cmds.yml 文件以了解详细信息。
### COMMAND 和 ARGS 的简短列表
- 对于玩家:
- /now \ \
- 对于管理员:
- /tm checkConfig
- /tm checkSql
- /tm checkTime \[all|world]
- /tm checkUpdate \[bukkit|spigot|github]
- /tm help \[cmd] \[\]
- /tm now \[msg|title|actionbar] \[all|player|world]
- /tm reload \[all|config|lang|cmds]
- /tm resync \[all|world]
- /tm set date \[today|yyyy-mm-dd] \[all|world]
- /tm set debugMode \[true|false]
- /tm set defLang \[true|false]
- /tm set elapsedDays \[0 → ∞] \[all|world]
- /tm set firstStartTime \[default|previous|start] \[all|world]
- /tm set initialTick \[ticks|HH:mm:ss]
- /tm set multiLang \[lg_LG]
- /tm set playerOffset \[-23999 → 23999] \[all|player]
- /tm set playerTime \[ticks|daypart|HH:mm:ss|reset] \[all|player]
- /tm set refreshRate \[ticks]
- /tm set sleep \[true|false] \[all|world]
- /tm set speed \[multiplier] \[all|world]
- /tm set speedDay \[multiplier] \[all|world]
- /tm set speedNight \[multiplier] \[all|world]
- /tm set start \[ticks|daypart|HH:mm:ss] \[all|world]
- /tm set sync \[true|false] \[all|world]
- /tm set time \[ticks|daypart|HH:mm:ss] \[all|world]
- /tm set update \[none|bukkit|spigot|github]
- /tm set useCmds \[true|false]
### 权限节点
- timemanager.*
- timemanager.admin
- timemanager.now.*
- timemanager.now.cmd
- timemanager.now.display
- timemanager.now.world
**timemanager.admin:** 提供或拒绝对带有所有参数的/tm 子命令的访问。
**timemanager.now:** 提供或拒绝对/now 子命令的访问,无论是否有参数。
### 教程
[](https://www.youtube.com/playlist?list=PLPTZNgSLmtr9PxHD_7Y2VFhbSqH8gKBad)
### 兼容性
v1.8.2: MC 1.8.8 到 1.20.4
### TODO
* ~~Command: 在 '/tm checktime' 命令中添加一个 [all|world] 参数以显示单个世界的详细信息。~~
* ~~Command: 创建一个 '/tm checkconfig' 命令,可以显示当前配置的摘要 (所有细节,除了世界细节)。~~
* ~~Command: 创建一个 '/tm set initialtick' 命令。~~
* ~~Command: 允许在 '/ tm set start'、'/ tm set time' 和 '/ tm set initialtick' 的第一个参数中使用 'HH:mm:ss' 格式。~~
* ~~Day & Night : 使白天和夜晚的乘数不同。~~
* ~~Calendar: 创建新的占位符以显示经过的天数和 yyyy-mm-dd 格式的日期。~~
* ~~Scheduler: 创建一个调度器,允许在特定时间执行命令。~~
* ~~Sleep/Sync: 提供同步一个世界到指定世界的设置,检测有人睡眠后新的一天的到来。~~
* ~~Tab completer: 尝试改进管理世界名称中的空格的当前黑客。 (直到 MC 1.12.2 有用)~~
* ~~Command: 允许玩家单独设置其时间。~~
* ~~Worlds: 将 _nether_ 和 _the end_ 包含在世界列表中或将其链接到其参考世界。~~
* ~~Worlds: 添加一个每世界选项,用于服务器启动时的计时器行为。~~
* ~~Placeholder: 允许在书籍和告示牌中使用占位符。~~
* ~~cmds.yml file: 允许在命令行之间使用'pause'。~~
* ~~Placeholder: 添加一个占位符以显示每周的当前天数。~~
* ~~Colors: 添加十六进制颜色识别。~~
* ~~Placeholder: 允许玩家在聊天消息中使用占位符。~~
* ~~Placeholder: 允许外部命令使用占位符。~~
Command: 允许玩家显示占位符列表。
Placeholder: 创建显示刷新占位符的告示牌。
Player Item: 创建自定义项目(以及相关的权限和选项)以使用 '/now' 命令。