TimeManager

TimeManager - 时间管理大师

增加或减少速度,同步世界,设置并显示实际时间和日期……
Bukkit / Spigot 作者 ArVdC 支持版本 1.9 - 1.21
服务器使用量
155
服务玩家数
313
下载量
13,784
插件详细介绍

TimeManager 是一款功能强大的 Spigot 插件,用于精细控制和管理服务器中各个世界的时间流速、显示与睡眠机制。它提供了高度可定制的时间系统,支持多语言、占位符、计划命令等功能,并能与 PlaceholderAPI 等插件集成。

核心功能

时间管理

  • 为每个世界定义独立的起始时间和速度倍率。
  • 时间流速最高可加速或减速至 20 倍,或设置为与现实 UTC 时间同步(可附加本地偏移)。
  • 可为白天和夜晚分别设置不同的速度倍率,适用于 RPG 或小游戏场景。
  • 服务器启动或重载时,世界列表和时间器会自动更新并同步。
  • 支持通过游戏内命令修改时间与速度,或在手动修改配置文件后重载生效。
  • 可为每位玩家设置特定的时间偏移。

睡眠管理

  • 管理睡眠所需玩家数量、跳过夜晚时的动画效果、世界间的唤醒同步等。
  • 可设置睡眠为允许、禁止,或与其他世界“链接”同步。
  • 支持基于玩家个体的权限控制。

计划命令

  • TimeManager 可以按照 cmds.yml 文件中的设定,在指定时间执行命令。
  • 计划命令可以使用下文列出的占位符({tm_player} 除外)。

命令覆写

  • 本插件覆写了原版的 /time 命令。
  • 改变单个世界时间的命令是 /tm set time [ticks|daypart|HH:mm:ss] [world]

玩家命令 /now

格式

/now <display> <world>

功能

  • 使用单一命令,通过自定义消息显示时间、日期、已过去的天数或周数等信息。
  • 消息支持使用占位符,并可通过 lang.yml 文件实现多语言自动适配玩家语言环境。
  • 通过权限节点,可以控制玩家是否能选择 display 参数和/或 world 参数。
  • 下界和末地世界可以拥有特定的显示消息。
  • YAML 配置文件中支持使用十六进制颜色代码。

参数说明

  • <display>:显示方式,可选值:
  • msg:在聊天栏显示。
  • title:在屏幕标题显示。
  • actionbar:在快捷栏上方显示。
  • <world>:指定要查看时间的世界。

可用占位符

以下占位符区分大小写,可用于 lang.ymlcmds.yml 文件,以及告示牌、书、聊天消息和命令中。

  • 玩家与世界
  • {tm_player}:玩家名称。
  • {tm_world}:世界名称。
  • 时间与时刻
  • {tm_tick}:当前游戏刻。
  • {tm_time12}:当前时间 (hh:mm:ss,12小时制,1→12)。
  • {tm_time24}:当前时间 (HH:mm:ss,24小时制,0→23)。
  • {tm_hours12}:当前小时 (2位数,12小时制,1→12)。
  • {tm_hours24}:当前小时 (2位数,24小时制,0→23)。
  • {tm_minutes}:当前分钟 (2位数)。
  • {tm_seconds}:当前秒数 (2位数)。
  • {tm_ampm}:当前是 AM 或 PM。
  • {tm_daypart}:当前时段名称(根据语言文件显示四个时段之一)。
  • 日期与日历
  • {tm_currentday}:当前天数 (1 → ∞)。
  • {tm_elapseddays}:已过去的天数 (0 → ∞)。
  • {tm_dayname}:当前日期名称(基于 lang.yml 文件)。
  • {tm_yearday}:一年中的第几天 (1 → 365)。
  • {tm_yearweek}:一年中的第几周 (1 → 52)。
  • {tm_week}:已过去的周数 (1 → ∞)。
  • {tm_monthname}:当前月份名称(基于 lang.yml 文件)。
  • {tm_dd}:日期中的“日”部分 (2位数)。
  • {tm_mm}:日期中的“月”部分 (2位数)。
  • {tm_yy}:日期中的“年”部分 (2位数)。
  • {tm_yyyy}:日期中的“年”部分 (4位数)。

依赖与集成

TimeManager 可以通过以下插件显示其占位符:

只需将对应的 API 插件放入插件文件夹,并在 TimeManager 的 config.yml 文件中将相关节点设置为 true 即可。

管理员命令 /tm

检查与信息类

  • /tm checkConfig:管理员和后台可查看 config.ymllang.yml 文件的摘要。
  • /tm checkSql:根据 config.yml 中的配置检查 MySQL 服务器的可用性(仅检查 IP 地址和端口)。
  • /tm checkTime [all|server|world]:显示调试/管理信息,包括服务器启动时间、当前服务器时间,以及特定世界(或所有世界)的当前时间、起始时间和速度。
  • /tm checkUpdate [bukkit|spigot|github]:检查所选更新源是否有插件新版本(仅限 MC 1.8.8+)。
  • /tm help [cmd] [<subCmd>]:显示目标命令和子命令的正确用法及简短描述。

操作与执行类

  • /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 天。
  • time [ticks|daypart|HH:mm:ss] [all|world]:为指定世界(或所有世界)设置当前时间。建议使用此命令代替原版 /time 命令。Tab 补全提供便捷预设,如 “day”、“noon”、“night”、“midnight” 等。
  • elapsedDays [0 → ∞] [all|world]:为指定世界(或所有世界)设置已过去的天数。设为 0 将使世界回到第一天。
  • initialTick [ticks|HH:mm:ss]:修改服务器的初始游戏刻。
  • 速度与时长
  • speed [0.0 → 10.0] [all|world]:用小数倍率设置世界速度。0.0 冻结时间,0.10.9 减速,1.0 正常速度,1.110.0 加速。设为 24.0realtime 可使世界时间与现实时间同步。
  • speedDay [0.0 → 10.0] [all|world]speedNight [0.0 → 10.0] [all|world]:分别为白天和夜晚设置不同的速度倍率。
  • duration [00d-00h-00m-00s] [all|world]:通过期望的时长(而非速度倍率)来设置世界速度。
  • durationDay [00d-00h-00m-00s] [all|world]durationNight [00d-00h-00m-00s] [all|world]:分别为白天和夜晚设置不同的时长。
  • 起始与同步
  • start [ticks|daypart|HH:mm:ss|timeShift] [all|world]:定义指定世界(或所有世界)在服务器启动时的时间。默认所有世界从第 0 刻开始。时间器将立即重新同步。若世界使用现实时间速度,此值将决定 UTC 时间偏移,可接受如 +1-1 的值。
  • firstStartTime [default|previous|start] [all|world]:强制世界在服务器启动时的起始时间。default 为通常的启动同步,start 强制使用世界配置中 start 节点的时间,previous 恢复服务器关闭前的时间。
  • sync [true|false] [all|world]:定义速度调整方式是增减世界的实际游戏刻,还是根据服务器时间拟合理论刻值。默认所有世界为 false。基于现实时间或冻结的世界不使用此选项。
  • 玩家特定
  • playerOffset [-23999 → 23999] [all|player]:为玩家客户端定义相对于世界时间的特定偏移(世界速度仍然生效)。设为 0 可取消。
  • playerTime [ticks|daypart|HH:mm:ss|reset] [all|player]:为玩家客户端定义特定时间(世界速度仍然生效)。使用 reset 参数可取消。
  • 功能与杂项
  • sleep [true|false|linked] [all|world]:定义玩家在指定世界(或所有世界)是否可以睡眠至次日。默认所有世界为 true,除非其时间器设置为现实时间(此时必须为 false)。linked 功能允许多个世界组共同度过夜晚,保持时间同步。
  • refreshRate [ticks]:设置更新速度拉伸/压缩效果的延迟(单位:游戏刻)。必须是 220 之间的整数。默认值为 10,请注意过小的值可能导致服务器卡顿。
  • multiLang [true|false]:设置是否为 /now 命令使用自动翻译。
  • defLang [lg_LG]:选择当玩家语言环境在 lang.yml 中不存在或 useMultiLangfalse 时使用的翻译。
  • useCmds [true|false]:设置为 true 以启用自定义命令调度器。详见 cmds.yml 文件。
  • update [none|bukkit|spigot|github]:定义检查更新的源服务器(仅限 MC 1.8.8+)。
  • debugMode [true|false]:设置为 true 可在控制台启用彩色详细消息,有助于理解插件机制。

命令速查

玩家命令

  • /now <msg|title|actionbar> <world>

管理员命令 (`/tm`)

  • checkConfig
  • checkSql
  • checkTime [all|world]
  • checkUpdate [bukkit|spigot|github]
  • help [cmd] [<subCmd>]
  • now [msg|title|actionbar] [player|all|world]
  • reload [all|config|lang|cmds]
  • resync [all|world]
  • set date [today|yyyy-mm-dd] [all|world]
  • set debugMode [true|false]
  • set defLang [lg_LG]
  • set duration [00d-00h-00m-00s] [all|world]
  • set durationDay [00d-00h-00m-00s] [all|world]
  • set durationNight [00d-00h-00m-00s] [all|world]
  • set elapsedDays [0 → ∞] [all|world]
  • set firstStartTime [default|previous|start] [all|world]
  • set initialTick [ticks|HH:mm:ss]
  • set multiLang [true|false]
  • set playerOffset [-23999 → 23999] [all|player]
  • set playerTime [ticks|daypart|HH:mm:ss|reset] [all|player]
  • set refreshRate [ticks]
  • set sleep [true|false|linked] [all|world]
  • set speed [multiplier] [all|world]
  • set speedDay [multiplier] [all|world]
  • set speedNight [multiplier] [all|world]
  • set start [ticks|daypart|HH:mm:ss] [all|world]
  • set sync [true|false] [all|world]
  • set time [ticks|daypart|HH:mm:ss] [all|world]
  • set update [none|bukkit|spigot|github]
  • set useCmds [true|false]

权限节点

  • timemanager.*:所有权限。
  • timemanager.admin:提供或拒绝访问所有 /tm 命令及其参数。
  • timemanager.now.*:所有 /now 相关权限。
  • timemanager.now.cmd:提供或拒绝访问 /now 命令(可限制可用参数)。
  • timemanager.now.display:允许选择 display 参数。
  • timemanager.now.world:允许选择 world 参数。
  • timemanager.placeholders:允许在聊天中使用占位符。
  • timemanager.sleep.*:所有睡眠相关权限。
  • timemanager.sleep.allowed:指定玩家是否被允许上床睡觉(但仍可设置重生点)。
  • timemanager.sleep.counted:指定玩家是否被计入跳过夜晚所需的人数。

配置文件 (YAML)

各文件的详细说明可在文件头部找到。

  • config.yml

主要包含每个世界的信息以及通用选项,如参考游戏刻、SQL 数据库使用、占位符激活等。

  • lang.yml

包含不同的翻译文本。可以修改现有翻译或添加新语言。还可以根据每个玩家的语言环境激活自动翻译。

  • cmds.yml

允许您在特定的时间和日期调度执行命令,并可根据选择的周期重复执行。参考时间和日期可以是任何世界的时间,也可以是实际时间。

开发者 API

虽然本插件并非专为作为 API 设计,但您仍可以通过导入 PlaceholdersHandler 类在 Java 代码中使用各种占位符:

import net.vdcraft.arvdc.timemanager.mainclass.PlaceholdersHandler;

然后使用以下方法之一来替换字符串中的占位符

  • String replaceAllPlaceholders (String msg, String world, String lang, Player p)
  • String replaceAllPlaceholders (String msg, String world, String lang)
  • String replaceAllPlaceholders (String msg, World w, String lang, Player p)
  • String replaceAllPlaceholders (String msg, World w, String lang)

要获取客户端语言,可导入以下类

import net.vdcraft.arvdc.timemanager.mainclass.PlayerLangHandler;

然后使用以下方法之一

  • String setLangToUse (CommandSender sender)
  • String setLangToUse (Player p)

兼容性

  • v1.10.0 版本:兼容 MC 1.9.4 至 1.21.3。

如果您有特定的功能建议或遇到任何错误,请在 GitHub 上提交 Issue。

测试支持版本
1.9 1.10 1.11 1.12 1.13 1.14 1.15 1.16 1.17 1.18 1.19 1.20 1.20.6 1.21
版本分布
基本信息
插件名称 TimeManager
作者 ArVdC
平台 Bukkit / Spigot
支持版本 1.9 - 1.21
点赞数 11
Modrinth 下载 857
最近版本
1.10.2 64
2.0.0 17
1.8.2 17
2.1.0 13
1.10.1 9
1.12.2 8
1.12.3 6
1.9.1 4
1.7.1 4
1.10.0 3
1.9.0 2
1.6.0 2

友情链接: 网易我的世界 | 泰拉瑞亚 | ocent云计算 | 米饭Minecraft插件文档 | 友链合作

历史访问人数:2,689,333  |  历史访问人次:3,260,836

今日访问人数:8,935  |  今日访问人次:10,240

昨日访问人数:26,372  |  昨日访问人次:31,574

Copyright © 2019-2026 我的世界服务器列表站. All rights reserved.

Powered by GermMC 京ICP备17023959号-6