MacTime

只有正确追踪时间,你才能管理好时间。 一个对管理员友好的插件,用于追踪服务器工作人员的出勤情况。

资源图片
# MacTime 本插件允许追踪玩家的在线时长。
# 特性 - 唯一一个更新到最新 Minecraft 版本的在线时长追踪插件 - 几乎所有信息都可以在 messages.yml 中进行配置 - GUI 展示的玩家各种在线数据(以可配置的间隔实时更新)(v1.21+) - 单个实例在追踪超过 50 名工作人员 (*通过 spark*) 时,线程占用率低至 0% - MySQL 支持 - Folia 支持 - 管理员友好的命令、权限节点和错误消息,以便快速定位问题 - Discord Webhook 支持 - 除 /mactime gui 之外的所有命令都可以在控制台中执行 - 可配置信息支持 Hex 颜色 - PlaceholderAPI 支持 - AFK 时间追踪 (与 EssentialsX 联动) # 命令 ### 管理员命令 * `/mactime export [用户名]` * 如果启用了 Discord Webhook,则允许你导出所有追踪玩家的在线数据,无论是针对特定玩家 还是所有被追踪的玩家。 * `/mactime gui [分组名:在线:离线:其他]` * 打开一个 GUI,展示所有玩家及其在线数据。如果你在服务器上安装了 Luckperms,你可以按组权重对玩家在 GUI 中进行排序。 * 你还可以设置 GUI 的实时更新间隔(如果你不想使用此功能,可以在 config.yml 中将 `gui.updateinterval` 设置为 `0`)。 * 如果你想要查看特定组中的玩家的在线时长,你可以指定任何包含分组名称,并运行 `/mactime gui [分组名]`。 * 你还能够通过运行 `/mactime gui [在线:离线]` 来选择查看在线玩家或离线玩家的数据。 * 如果玩家曾经在 `gui.whitelisted-groups` 中指定的分组中,但现在不在了,你可以通过运行 `/mactime gui [其他]` 来查看他们的数据。
(如果你希望他们在下次加入服务器时,如果他们不再拥有 `mactime.track` 权限,自动清空他们的数据,你可以在 config.yml 中启用 `other.remove-if-no-perm`。) * `/mactime help` * 显示帮助菜单 * `/mactime reload [config:messages]` * 重新加载 config.yml 文件或 messages.yml 文件。如果不指定选项,则会同时重新加载两个文件。 * `/mactime reset <玩家:分组> <分组名:用户名>` * 重置特定玩家或分组(如果你的服务器上安装了 Luckperms)的在线数据。
*如果你希望在运行此命令后永久删除服务器上的用户数据,你可以在 config.yml 中将 `reset.delete-data-on-reset` 设置为 `true`。* * `/ontime <用户名>` * 查看特定玩家的在线数据 ### 玩家命令 * `/ontime` * 根据玩家的权限显示在线数据。 # 权限 | 权限 | 描述 | | ------------- |:-------------:| |`mactime.*`| 授予所有权限.| |`ontime.track`| 允许插件追踪玩家的在线时长.| |`mactime.admin`| 提供访问 /mactime 命令的权限.| |`mactime.command.*`| 提供访问所有 /mactime 命令及其子命令的权限.| |`mactime.command.help`| 授予访问 /mactime help 的权限.| |`mactime.command.reload`| 授予访问 /mactime reload [config:messages] 的权限.| |`mactime.command.export`| 如果启用了 discord webhooks,则允许你将玩家的在线数据导出到 webhook.| |`mactime.command.reset`| 授予访问 /mactime reset 命令的权限.| |`mactime.command.gui`| 授予访问 /mactime gui 命令的权限.| |`ontime.own`| 允许使用 /ontime 命令。| |`ontime.own.*`| 提供查看所有在线统计数据的权限。| |`ontime.own.afk`| 提供查看 AFK 时间的 /ontime 权限。| |`ontime.own.daily`| 提供查看每日时间的 /ontime 权限。| |`ontime.own.weekly`| 提供查看每周时间的 /ontime 权限。| |`ontime.own.monthly`| 提供查看每月时间的 /ontime 权限。| |`ontime.own.yearly`| 提供查看每年时间的 /ontime 权限。| |`ontime.own.alltime`| 提供查看总时间的 /ontime 权限。| |`ontime.others`| 允许使用 /ontime <用户名> 查看其他玩家的在线时长。| |`ontime.others.*`| 提供查看所有其他玩家的在线统计数据的权限。| |`ontime.others.afk`| 提供查看其他玩家的 AFK 时间的 /ontime 权限。| |`ontime.others.daily`| 提供查看其他玩家的每日时间的 /ontime 权限。| |`ontime.others.weekly`| 提供查看其他玩家的每周时间的 /ontime 权限。| |`ontime.others.monthly`| 提供查看其他玩家的每月时间的 /ontime 权限。| |`ontime.others.yearly`| 提供查看其他玩家的每年时间的 /ontime 权限。| |`ontime.others.alltime`| 提供查看其他玩家的总时间的 /ontime 权限。| # 占位符 | 权限 | 描述 | | ------------- |:-------------:| | `%mactime_current%`| 显示查看占位符的用户当前在线时长| | `%mactime_daily%`| 显示查看占位符用户的每日在线时长| | `%mactime_weekly%`| 显示查看占位符用户的每周在线时长| | `%mactime_monthly%`| 显示查看占位符用户的每月在线时长| | `%mactime_yearly%`| 显示查看占位符用户的每年在线时长| | `%mactime_alltime%`| 显示查看占位符用户的总在线时长| | `%mactime_afktime%`| 显示查看占位符用户的 AFK 时间| | `%mactime_lastonline%`| 这将始终返回“Player is currently online!”| 对于其他玩家,你可以在占位符末尾添加他们的用户名。
例如, - `%mactime_daily_notch%` * 这将返回 "Notch" 的每日在线时长。
*如果指定的玩家没有数据,则占位符将显示“Player has no data.”*
对于 `%mactime_lastonline_notch`,这会返回玩家上次离线的时间。 如果你想要原始秒数值,你可以在任何时间相关占位符末尾添加 `_raw`。 例如, - `%mactime_daily_raw%` - 如果我拥有 5 分钟的每日在线时间,这会返回 `300` # 钩子 此插件与 3 个插件集成,以实现可选功能 - - - * Luckperms * MacTime 与 luckperms 集成以启用按权重排序的分组以及在 GUI 中添加玩家的前缀 * EssentialsX * 用于启用 AFK 时间跟踪 * PlaceholderAPI * 用于占位符。 # 展示
GUI ![mactime_gui_example](https://i.ibb.co/G5N9VGT/mactime-gui-example.gif)
Ontime 命令 ![mactime_ontime_command_example](https://i.ibb.co/bLYrT03/mactime-ontime-command-example.png)
Discord Webhook ![discord_webhook](https://i.ibb.co/qg0D489/mactime-discord-webhook-example.png)
占位符 ![mactime_placeholders_example](https://i.ibb.co/VjTKgfJ/mactime-placeholders-example.gif)
默认 config.yml ```yml # MacTime, by AjMaacc # 存储选项 # 数据存储在 plugins/MacTime/playerdata/mactime.db # 默认存储类型为 SQLite sql: # 要使用 MySQL,请将以下内容设置为 true # 默认: false enabled: false # 数据库服务器地址 address: '127.0.0.1:3306' # 数据库名称、用户名和密码 database: "" username: "" password: "" # 选项 usessl: false # 每周末,可以将玩家的在线时长保存到文件中,以排行榜的形式 ontime-saving: # 启用此功能 # 默认: true enabled: true # 每周的哪一天将保存在线时长 # 选项: 星期一, 星期二, 星期三, 星期四, 星期五, 星期六, 星期日 # 默认: 星期一 dayofweek: 'Monday' # 按什么次序排序 # 选项: Alphabetical, Ascending, Descending, Group. # Group 将按 Luckperms 组排序,需要安装 Luckperms! # 默认: "Descending" order: "Descending" # MacTime 管理员命令配置 # 重置 # /mactime reset 命令的选项 reset: # 在任何未确认的 /mactime 重置查询被取消之前的延迟,以秒为单位 # 默认: 10 delay: 10 # 永久删除数据还是在重置后重启计数 # 默认: false delete-data-on-reset: false # 谁可以执行 /mactime 重置命令 *(重置所有人的在线时长)* # 选项: "None", "Console", "Player", "All" # 默认: None wildcard-reset: 'None' # AFK 检查器 # 玩家的 AFK 状态由 MacTime 与 Essentials 集成确定 # 要使此功能正常工作,需要在服务器上安装 Essentials。 afk-checker: # 启用 AFK 时间追踪 # 默认: false enabled: false luckperms: # 用于按组排序的 Luckperm 组 # 要使此功能起作用,需要在服务器上安装 Luckperms # 默认: # - owner # - manager # - admin # - jradmin # - dev # - srmod # - mod # - jrmod # - helper whitelisted-groups: - owner - manager - admin - jradmin - dev - srmod - mod - jrmod - helper # GUI # /mactime gui 命令的选项 gui: # 通过 Luckperm 组排序 /mactime gui # 你的服务器上需要安装 Luckperms 才能使其起作用! # 默认: false sort-by-luckperm-group: false # 更新 GUI 的时长(秒) # 将此设置为 0 以禁用此功能 # 默认: 10 update-interval: 10 # Discord Webhook webhook: # 启用此功能 # 默认: false enabled: false # Webhook url url: '' # Webhook 的用户名。如果未设置 (或为空),则默认为“MacTime” username: '' join: # 发送玩家加入 webhook # 默认: true enabled: true # 如果你希望此特定嵌入发送到单独的 webhook, # 在此处添加辅助 webhook 的 url # 如果为空,则默认为使用主 webhook url (定义在 "webhook.url" 下) url: '' # 如果你希望 webhook 的用户名与原始用户名(webhook.username)不同, # 留下此项为空则默认为 webhook.username username: '' leave: # 发送玩家离开 webhook # 默认: true enabled: true url: '' username: '' afkstart: # 发送玩家进入 afk 的 webhook # 默认: true enabled: true url: '' username: '' afkend: # 发送玩家退出 afk 的 webhook # 默认: true enabled: true url: '' username: '' print: # 启用 "/mactime export" 命令并允许将玩家数据发送到 webhook # 默认: true enabled: true url: '' username: '' saving: # 在 ontime-saving 部分保存每周数据时发送 webhook # 默认: true enabled: true url: '' username: '' other: # 启用启动时 MacTime 在控制台中漂亮的签名 # 如果你不想看到这个,将以下内容设置为 false # 默认: true signature: true # 如果玩家不再拥有 `ontime.track` 权限,则删除玩家的在线数据 # 玩家下次加入服务器时,会清除他们的数据 # 默认: false remove-if-no-perm: false # 你的时区 # 使用 https://pastebin.com/mfdYhnu7 来查找适合你时区的形式 timezone: "America/New_York" # ontime 首次开始记录的时间 # 当你执行 /mactime reset 时,将重置此时间 # 请不要修改 # start: '' # 配置版本(不要修改,否则你会得疟疾) version: '1.0.4' ```
默认 messages.yml ```yml version: '1.0.3' prefix: '&e☀ &e&lMacTime &8&l» ' online: '&a●' offline: '&c●' afk: '&8[&7&lAFK&8]' no-permission: '&cNo Permission' # %player_name% = 玩家用户名 command: ontime: player: # /ontime 的标题 self-header: '&7&m &r &a%player_name%''s Ontime &7&m &r' # /ontime <用户名> 的标题 other-header: '&a%player_name%''s Ontime' no-ontime-data: '&c %player_name% &c没有在线数据!' divider: '&7&l&m ' console: invalid: '此命令不能在控制台中执行。' player-does-not-have-data: '此玩家没有在线数据!' # %player_name% = 玩家用户名 # {0} = Luckperm 前缀 # {1} = 总玩家数 reset: expired: player: '&c%player_name% 的在线数据重置请求已过期!' group: '&c{0} 组的在线数据重置请求已过期!' wild: '&c所有玩家的在线数据重置请求已过期!' confirm: player: '&7你确定要重置 &f%player_name%&7 的在线数据吗? &7[点击确认]' group: '&7你确定要重置 &f{0}&7 组的玩家的在线数据吗? &7[点击确认]' wild: '&c你确定要重置所有在线统计数据吗? &7[点击确认]' success: player: '&7已重置 &f%player_name%&7 的在线数据!' group: '&7已重置 &f{1}&7 位玩家在 &f{0}&7 组的在线数据!' wild: '&7已重置 &f{1}&7 位玩家的在线统计数据!' invalid: player: '&c你输入了无效的用户名!' group: '&c你输入了无效的组名!' wild: '&c此操作当前已禁用!' player-does-not-have-data: ' &c%player_name% 没有在线数据!' # %command% - 重置命令,例如 "/mactime reset player Notch" hover-msg: '&a&l点击我&r' # # /ontime 命令 (/ontime) # ontime: player: current-ontime: '&f当前在线时长 &8➡ &e%mactime_current%' daily-ontime: '&f每日在线时长 &8➡ &e%mactime_daily%' weekly-ontime: '&f每周在线时长 &8➡ &e%mactime_weekly%' monthly-ontime: '&f每月在线时长 &8➡ &e%mactime_monthly%' yearly-ontime: '&f每年在线时长 &8➡ &e%mactime_yearly%' alltime-ontime: '&f总在线时长 &8➡ &e%mactime_alltime%' afk-time: '&f总 AFK 时间 &8➡ &e%mactime_afktime%' last-online: '&f上次在线 &8➡ &e%mactime_lastonline% &f前' console: current-ontime: '* 当前在线时长 ➡ %mactime_current%' daily-ontime: '* 每日在线时长 ➡ %mactime_daily%' weekly-ontime: '* 每周在线时长 ➡ %mactime_weekly%' monthly-ontime: '* 每月在线时长 ➡ %mactime_monthly%' yearly-ontime: '* 每年在线时长 ➡ %mactime_yearly%' alltime-ontime: '* 总在线时长 ➡ %mactime_alltime%' afk-time: '* AFK 时间 ➡ %mactime_afktime%' last-online: '* 上次在线 ➡ %mactime_lastonline%' # # GUI 信息配置 (/mactime gui) # gui: # 玩家在线时长 # {0} = 总玩家数 po: title: '工作人员在线时长 ({0})' online: '&a&l在线' offline: '&c&l离线' current-ontime: '&e| &f当前在线时长 &8➡ &e%mactime_current%' daily-ontime: '&e| &f每日在线时长 &8➡ &e%mactime_daily%' weekly-ontime: '&e| &f每周在线时长 &8➡ &e%mactime_weekly%' monthly-ontime: '&e| &f每月在线时长 &8➡ &e%mactime_monthly%' yearly-ontime: '&e| &f每年在线时长 &8➡ &e%mactime_yearly%' alltime-ontime: '&e| &f总在线时长 &8➡ &e%mactime_alltime%' afk-time: '&e| &f总 AFK 时间 &8➡ &e%mactime_afktime%' last-online: '&e| &f上次在线 &8➡ &e%mactime_lastonline% &f前' # 排序后的玩家在线时长 (GUI 没有 luckperms 排序) # {0} = 总玩家数 spo: title: '工作人员在线时长 ({0})' # 单个分组的在线时长 (/mactime gui [分组名]) # {0} = Luckperms 分组前缀 # {1} = 总玩家数 igo: titles: main: '{0}&8在线时长 ({1})' other: '其他成员的在线时长 ({1})' error: invalid-group: '&c无效的分组' group-does-not-exist: '&c该分组在 luckperms 中不存在!' # 单个玩家的在线数据菜单 # 这是当您点击 /mactime gui 中玩家头像时显示的菜单 io: title: '玩家 %player_name% 的数据' # 排序后的在线时长 # {0} = Luckperms 分组前缀 # {1} = 总玩家数 so: title: '{0} &8玩家在线时长 ({1})' # {0} = 日期(例如:1/20,3/10) # {1} = 时间 history-item: title: '过去 7 天的在线时长' entry: '&3{0} &8➡ &3{1}' empty: '&c玩家在过去 7 天内没有登录!' # AFK 通知记录到控制台 # {0} = AFK 总时长 (格式为 hh:mm:ss) AFK-Detection: afk: '现在为 afk' not-afk: '不再为 afk' afk-time: 'afk 了 {0}' # # Webhook 嵌入 # webhook: join: title: $username 已加入 color: 0x00ff00 # 可用占位符 # $time - 玩家加入服务器的时间戳 content: - "• 加入时间: `$time`" leave: title: $username 已离开 color: 0xff0000 # 可用占位符 # $time_joined - 玩家加入服务器的时间戳 # $time_left - 玩家离开服务器的时间戳 # $time_online - 玩家在服务器上的总时长 content: - "• 加入时间: `$time_joined`" - "• 离开时间: `$time_left`" - "• 总在线时间: `$time_online`" afk-start: title: $username 现在为 afk color: 0xff9a00 # 可用占位符 # $time - 玩家开始 afk 的时间戳 # $afk_time - 玩家在服务器上总共 afk 的时间 content: - "• Afk 开始时间: `$time`" - "• 总 AFK 时间: `$afk_time`" afk-end: # 可用占位符 ($username) title: $username 不再为 afk color: 0xff9a00 # 可用占位符 # $time - 玩家 afk 的时间 # $afk_time - 玩家 afk 的时间 # $total_afk_time - 玩家总共 afk 的时间 content: - "• Afk 自: `$time`" - "• Afk 时间: `$afk_time`" - "• 总 AFK 时间: `$total_afk_time`" print: title: $username 的在线统计信息 color: 0xffffff # 可用占位符 # $date # $uuid # $daily_ontime # $weekly_ontime # $monthly_ontime # $yearly_ontime # $alltime_ontime # $afk_time # $last_online content: - "• 日期: `$date`" - "• UUID: `$uuid`" - "• 每日在线时长: `$daily_ontime`" - "• 每周在线时长: `$weekly_ontime`" - "• 每月在线时长: `$monthly_ontime`" - "• 每年在线时长: `$yearly_ontime`" - "• 总在线时长: `$alltime_ontime`" - "• Afk 时间: `$afk_time`" - "• 上次登录: `$last_online`" saving: # 可用占位符 ($range) title: $range 的每周在线时长 color: 0xffffff ```
# 支持与联系 要报告错误、建议功能或任何其他内容,请通过 Discord 联系我。 - 直接联系 * -> [ajmac](http://discord.com/users/643604666634076179) # bStats ![bStats](https://bstats.org/signatures/bukkit/mactime.svg)