time.lua 脚本创建一个小的用户列表条目,其名称会更改以显示当前时间。当 Verlihub hub 需要为国际用户、区域房间或跨时区协调的操作员提供可见的时区标记时,请使用它。
该脚本不需要单独的外部机器人进程。它使用 Verlihub Lua 插件在 hub 用户列表中创建一个类似机器人的条目。时钟条目可以如下所示:
!_US_06:30:00PM
您可以在加载脚本之前更改前缀、后缀、时间格式、更新间隔和时区偏移量。
该脚本的作用
该脚本由三个部分构建显示名称:
prefix + current time + postfix
输出示例:
!_US_06:30:00PM
可见的用户列表条目在计时器上更新,因此显示的时间保持最新。
使用此脚本用于:
- 显示 hub 时区。
- 显示区域时钟。
- 帮助国际用户协调时间。
- 在用户列表中创建一个简单的视觉标记。
- 添加小型实用程序机器人而无需运行外部软件。
要求
该脚本需要:
- Verlihub 已安装并正在运行。
- 已安装 Verlihub Lua 插件。
- Lua 插件在 Verlihub 中启用。
- 加载和卸载 Lua 脚本的权限。
- Verlihub Lua 文件的可写脚本目录。
在加载脚本之前,请确认 Lua 插件处于活动状态:
!pluglist
如果未列出 Lua 插件,请首先从父级 Lua 设置文章中加载或启用它。
推荐的文件位置
使用专用脚本目录:
mkdir -p /PATH/TO/HUB/scripts
将脚本放置在:
/PATH/TO/HUB/scripts/time.lua
对于生产系统,该目录只能由受信任的管理员或 Verlihub 服务用户写入。不要使该目录成为全局可写的。
加载和卸载命令
加载脚本:
!luaload /PATH/TO/HUB/scripts/time.lua
卸载脚本:
!luaunload /PATH/TO/HUB/scripts/time.lua
如果您编辑脚本,请将其卸载并再次加载:
!luaunload /PATH/TO/HUB/scripts/time.lua
!luaload /PATH/TO/HUB/scripts/time.lua
使用完整的绝对路径,除非您的 Verlihub Lua 插件配置支持相对路径。
脚本代码
name = ''
class = 3
description = 'Time Bot: US'
speed = '100'
email = ''
share = '0'
prefix = '!_US_'
postfix = ''
interval = 10
counter = 0
format = "%I:%M:%S%p"
offset = -5
function GetTime()
return os.date(format, os.time() + offset * 60 * 60)
end
function GetName()
time = GetTime()
return prefix..time..postfix
end
配置选项
name
name = ''
类似机器人条目的基本名称值。在此脚本中,可见名称由以下方式生成 GetName(), 所以 name 通常可以保持为空。
class
class = 3
控制类似机器人条目的显示类别或配置文件级别。类值的确切含义取决于hub配置。在许多hub设置中,较高的类别编号代表较高的用户角色。
使用适合您希望时钟条目在用户列表中显示方式的类值。
description
description = 'Time Bot: US'
显示类似机器人条目的描述。用它来解释条目代表什么。
description = 'Time Bot: US'
description = 'Time Bot: UTC'
description = 'Hub Clock'
description = 'Server Time'
speed
speed = '100'
为类似机器人的条目显示的连接速度值。这主要是装饰性的。它不控制脚本更新的频率。
email = ''
显示类似机器人条目的电子邮件字段。除非您想显示联系地址,否则请将其留空。
share
share = '0'
为类似机器人的条目显示的共享大小。对于时钟机器人来说,0 是适当的,因为它不是真正的文件共享用户。
prefix
prefix = '!_US_'
放置在生成时间之前的文本。这使得时钟在用户列表中易于识别。
prefix = '!_US_'
prefix = '!_UTC_'
prefix = '[TIME] '
prefix = 'Clock_'
选择在您的hub 用户列表中清晰排序的前缀。
postfix
postfix = ''
放置在生成时间之后的文本。
postfix = ''
postfix = '_EST'
postfix = '_UTC'
postfix = ' HubTime'
interval
interval = 10
控制脚本更新的频率,通常以秒为单位。保持合理的间隔。对于hub 用户列表条目来说,每秒更新一次通常是不必要的。
10:对于可见的基于秒的时钟很有用。30:对于许多hub来说是一个很好的平衡。60:最适合仅显示分钟的时钟。
如果您的格式不显示秒,请使用 60.
format = "%I:%M%p"
interval = 60
counter
counter = 0
脚本使用的内部计数器。除非您要修改脚本逻辑,否则请勿更改此设置。
format
format = "%I:%M:%S%p"
控制时间的显示方式。这使用 Lua os.date 格式化。默认格式显示 12 小时制时间,带秒和 AM/PM。
输出示例:
06:30:00PM
常见格式:
format = "%I:%M:%S%p" -- 06:30:00PM
format = "%I:%M%p" -- 06:30PM
format = "%H:%M:%S" -- 18:30:00
format = "%H:%M" -- 18:30
format = "%Y-%m-%d %H:%M" -- 2026-07-02 18:30
对于用户列表条目,较短的格式通常更易于阅读。
offset
offset = -5
时区与服务器时间的差异(以小时为单位)。该脚本使用以下方法计算时间:
os.time() + offset * 60 * 60
示例:
offset = 0 -- same as server time
offset = -5 -- five hours behind server time
offset = 1 -- one hour ahead of server time
offset = 5.5 -- five and a half hours ahead, if fractional offsets work in your Lua environment
这是一个固定的偏移量。除非调整服务器时间和偏移量,否则它不会自动处理夏令时规则。对于夏令时更改,请在需要时更新偏移量。
配置示例
美国东部时间风格
description = 'Time Bot: US Eastern'
prefix = '!_US_'
postfix = ''
interval = 60
format = "%I:%M%p"
offset = -5
显示示例:
!_US_06:30PM
世界标准时间
description = 'Time Bot: UTC'
prefix = '!_UTC_'
postfix = ''
interval = 60
format = "%H:%M"
offset = 0
显示示例:
!_UTC_23:30
24 小时 hub 时钟
description = 'Hub Clock'
prefix = '!_TIME_'
postfix = ''
interval = 60
format = "%H:%M"
offset = 0
显示示例:
!_TIME_18:30
推荐的生产设置
对于大多数hub,使用仅分钟时钟:
prefix = '!_US_'
postfix = ''
interval = 60
format = "%I:%M%p"
offset = -5
这减少了不必要的更新,同时保持时钟可读。
仅当您想要实时时钟效果时才使用秒:
interval = 10
format = "%I:%M:%S%p"
对于hub 用户列表条目来说,一秒的更新间隔通常是不必要的:
interval = 1
测试脚本
加载脚本后,检查hub 用户列表中生成的时间条目。
确认:
- 该条目仅出现一次。
- 显示的时间是正确的。
- 前缀和后缀看起来是正确的。
- 更新间隔不太激进。
- 卸载脚本后该条目消失。
- 重新加载脚本不会创建重复项。
如果时间错误,请检查服务器时区和配置的偏移量。
在服务器上,检查当前系统时间:
date
timedatectl
故障排除
脚本无法加载
检查 Lua 插件是否处于活动状态:
!pluglist
检查文件路径是否正确:
!luaload /PATH/TO/HUB/scripts/time.lua
如果相对路径不起作用,请使用绝对路径。
时间不正确
查看:
- 服务器时区。
offset价值。- 夏令时。
- 服务器时钟是否同步。
服务器检查:
date
timedatectl
如果服务器时间正确但显示的时钟错误,请调整 offset.
该脚本创建重复条目
卸载脚本并确认旧条目消失:
!luaunload /PATH/TO/HUB/scripts/time.lua
然后再次加载:
!luaload /PATH/TO/HUB/scripts/time.lua
如果仍有重复项,请在维护时段重新启动 Lua 插件或 Verlihub 服务。
时钟更新太频繁
增加间隔。
interval = 60
format = "%I:%M%p"
如果显示秒,请使用:
interval = 10
format = "%I:%M:%S%p"
用户对条目感到困惑
让前缀或描述更清晰。
prefix = '!_HUB_TIME_'
description = 'Hub Time Clock'
安全注意事项
这个脚本很小,但它仍然在 Verlihub Lua 环境中运行。让脚本专注于计算当前时间和更新显示名称。
不要添加:
- 外部 HTTP 请求。
- 数据库查询。
- 文件扫描。
- 长循环。
- 阻止睡眠呼叫。
保养注意事项
更改脚本之前保留备份:
cp /PATH/TO/HUB/scripts/time.lua /PATH/TO/HUB/scripts/time.lua.bak
如果使用 Git:
cd /PATH/TO/HUB/scripts
git add time.lua
git commit -m "Update time.lua clock settings"
仅更改前缀、后缀、格式、间隔或偏移量时,不需要更改代码逻辑。