{"id":97276,"date":"2026-06-05T16:54:14","date_gmt":"2026-06-05T13:54:14","guid":{"rendered":"https:\/\/vpesports.com\/minecraft\/mods\/mactime\/"},"modified":"2026-06-05T16:54:14","modified_gmt":"2026-06-05T13:54:14","slug":"mactime","status":"publish","type":"mod","link":"https:\/\/vpesports.com\/minecraft\/mods\/mactime\/","title":{"rendered":"MacTime"},"content":{"rendered":"<p># MacTime<\/p>\n<p>This plugin allows tracking of the online time for players.<\/p>\n<p># Features<br \/>\n&#8211; Only online time tracking plugin that is updated to the latest minecraft version<br \/>\n&#8211; Almost every message is configurable via messages.yml<br \/>\n&#8211; GUI which showcases various ontime data for players (Updates in real time at an interval which can be configured) (v1.21+)<br \/>\n&#8211; 0% thread usage on a single instance with over 500 players while tracking more than 50 staff members (*via spark*)<br \/>\n&#8211; MySQL support<br \/>\n&#8211; Folia Support<br \/>\n&#8211; Administrator friendly commands, permission nodes, and error messages to pinpoint issues<br \/>\n&#8211; Discord Webhook support<br \/>\n&#8211; All commands (besides \/mactime gui) can be executed by console<br \/>\n&#8211; Hex support for configurable messages<br \/>\n&#8211; PlaceholderAPI Support<br \/>\n&#8211; AFK time tracking (with EssentialsX)<br \/>\n# Commands<br \/>\n### Admin Commands<br \/>\n* `\/mactime export <all:player> [username]`<br \/>\n  * If discord webhooks are enabled, this allows you to export all ontime data for either a specific player<br \/>\n  or all players being tracked.<br \/>\n* `\/mactime gui [groupname:online:offline:other]`<br \/>\n  * Opens a GUI with all players showcasing their ontime data. If you have luckperms on your server, you can sort players in the gui by group weights.<br \/>\n  * You are also able to set the real time update interval for the GUI (If you would not like this, set `gui.updateinterval` to `0` in config.yml)<br \/>\n  * If you would like to view players&#8217; ontimes that are in a specific group, you can specify any included groups under `gui.whitelisted-groups` and run `\/mactime gui [groupname]`<br \/>\n  * You are also able to specify viewing online players or offline players data by running `\/mactime gui [online:offline]`<br \/>\n  * If a player was previously in a group specified under `gui.whitelisted-groups` but now isn&#8217;t, you can view their data by running `\/mactime gui [other]` <br \/>\n    (If you would like their data wiped on their next join if they no longer have the `mactime.track` permission node, you can enable `other.remove-if-no-perm` in config.yml)<br \/>\n* `\/mactime help`<br \/>\n  * Displays the help menu<br \/>\n* `\/mactime reload [config:messages]`<br \/>\n  * Reloads either the config.yml file or messages.yml file. If no choice is specified, both will be reloaded.<br \/>\n* `\/mactime reset <player:group> <groupname:username>`<br \/>\n  * Resets ontime data for either a player or a group (if luckperms is on your server). <br \/>\n  *If you would like the user data to be permanently removed from your server after running this command, you can set `reset.delete-data-on-reset` to `true` in the config.yml.*<br \/>\n* `\/ontime <username>`<br \/>\n  * View ontime data for a specific player<\/p>\n<p>### Player Commands<br \/>\n* `\/ontime`<br \/>\n  * Displays ontime data based on the player&#8217;s permissions.<\/p>\n<p># Permissions<\/p>\n<p>| Permission        | Description|<br \/>\n| &#8212;&#8212;&#8212;&#8212;- |:&#8212;&#8212;&#8212;&#8212;-:|<br \/>\n|`mactime.*`| Grants all permissions.|<br \/>\n|`ontime.track`| Allows the plugin to track the player&#8217;s on-time.|<br \/>\n|`mactime.admin`| Provides access to \/mactime command.|<br \/>\n|`mactime.command.*`| Provides access to all \/mactime commands and their subcommands.|<br \/>\n|`mactime.command.help`| Grants access to \/mactime help.|<br \/>\n|`mactime.command.reload`| Grants access to \/mactime reload [config:messages].|<br \/>\n|`mactime.command.export`| if discord webhooks are enabled, this allows you to export player\u2019s ontime data to a webhook.|<br \/>\n|`mactime.command.reset`| Grants access to \/mactime reset command.|<br \/>\n|`mactime.command.gui`| Grants access to the \/mactime gui command.|<br \/>\n|`ontime.own`| Allows use of \/ontime command.|<br \/>\n|`ontime.own.*`| Provides access to see all on-time statistics.|<br \/>\n|`ontime.own.afk`| Provides access to see AFK time via \/ontime.|<br \/>\n|`ontime.own.daily`| Provides access to see daily time via \/ontime.|<br \/>\n|`ontime.own.weekly`| Provides access to see weekly time via \/ontime.|<br \/>\n|`ontime.own.monthly`| Provides access to see monthly time via \/ontime.|<br \/>\n|`ontime.own.yearly`| Provides access to see yearly time via \/ontime.|<br \/>\n|`ontime.own.alltime`| Provides access to see all-time via \/ontime.|<br \/>\n|`ontime.others`| Allows usage of \/ontime <username> to view other player&#8217;s on-times.|<br \/>\n|`ontime.others.*`| Provides access to see all on-time statistics for other players.|<br \/>\n|`ontime.others.afk`| Provides access to see AFK time via \/ontime for other players.|<br \/>\n|`ontime.others.daily`| Provides access to see daily time via \/ontime for other players.|<br \/>\n|`ontime.others.weekly`| Provides access to see weekly time via \/ontime for other players.|<br \/>\n|`ontime.others.monthly`| Provides access to see monthly time via \/ontime for other players.|<br \/>\n|`ontime.others.yearly`| Provides access to see yearly time via \/ontime for other players.|<br \/>\n|`ontime.others.alltime`| Provides access to see all-time via \/ontime for other players.|<\/p>\n<p># Placeholders<br \/>\n| Permission        | Description|<br \/>\n| &#8212;&#8212;&#8212;&#8212;- |:&#8212;&#8212;&#8212;&#8212;-:|<br \/>\n| `%mactime_current%`| Displays the current ontime of the user looking at the placeholder|<br \/>\n| `%mactime_daily%`| Displays the daily ontime of the user looking at the placeholder|<br \/>\n| `%mactime_weekly%`| Displays the weekly ontime of the user looking at the placeholder|<br \/>\n| `%mactime_monthly%`| Displays the monthly ontime of the user looking at the placeholder|<br \/>\n| `%mactime_yearly%`| Displays the yearly ontime of the user looking at the placeholder|<br \/>\n| `%mactime_alltime%`| Displays the alltime ontime of the user looking at the placeholder|<br \/>\n| `%mactime_afktime%`| Displays the afktime of the user looking at the placeholder|<br \/>\n| `%mactime_lastonline%`| This will always return `Player is currently online!`|<\/p>\n<p>For other players, you can add their username to the end of the placeholder. <br \/>\nFor example,<\/p>\n<p>&#8211; `%mactime_daily_notch%`<br \/>\n    * This will return the daily ontime for &#8220;Notch&#8221;. <br \/>\n     *If the player specified has no data, then the placeholder will display `Player has no data.`* <br \/>\nFor `%mactime_lastonline_notch%`, this will return how long it has been since the player logged off of the server.<\/p>\n<p>If you would like the raw value in seconds, you can add `_raw` to the end of any time related placeholder.<br \/>\nFor example,<br \/>\n&#8211; `%mactime_daily_raw%`<br \/>\n  &#8211; If I had 5 minutes of daily ontime, this would return `300`<br \/>\n# Hooks<br \/>\nThis plugin hooks into 3 plugins for optional features<br \/>\n&#8211; &#8211; &#8211;<br \/>\n* Luckperms<br \/>\n  * Mactime hooks into luckperms to enable group sorting by weights and adding the player&#8217;s prefix inside the GUI<br \/>\n* EssentialsX<br \/>\n  * For enabling the tracking of time spent afk<br \/>\n* PlaceholderAPI<br \/>\n  * For placeholders.<\/p>\n<p># Showcase<\/p>\n<details>\n<summary>GUI<\/summary>\n<p>![mactime_gui_example](https:\/\/i.ibb.co\/G5N9VGT\/mactime-gui-example.gif) <br \/>\n<\/details>\n<details>\n<summary>Ontime Command<\/summary>\n<p>![mactime_ontime_command_example](https:\/\/i.ibb.co\/bLYrT03\/mactime-ontime-command-example.png) <br \/>\n<\/details>\n<details>\n<summary>Discord Webhook<\/summary>\n<p>![discord_webhook](https:\/\/i.ibb.co\/qg0D489\/mactime-discord-webhook-example.png) <br \/>\n<\/details>\n<details>\n<summary>Placeholders<\/summary>\n<p>![mactime_placeholders_example](https:\/\/i.ibb.co\/VjTKgfJ\/mactime-placeholders-example.gif) <br \/>\n<\/details>\n<details>\n<summary>Default config.yml<\/summary>\n<p>&#8220;`yml<br \/>\n# MacTime, by AjMaacc<\/p>\n<p># Storage options<br \/>\n# Data is stored in plugins\/MacTime\/playerdata\/mactime.db<br \/>\n# Default storage type is SQLite<\/p>\n<p>sql:<br \/>\n  # To use MySQL, set below to true<br \/>\n  # Default: false<br \/>\n  enabled: false<br \/>\n  # Your database&#8217;s server address<br \/>\n  address: &#8216;127.0.0.1:3306&#8217;<\/p>\n<p>  # Database name, username and password.<br \/>\n  database: &#8220;&#8221;<br \/>\n  username: &#8220;&#8221;<br \/>\n  password: &#8220;&#8221;<\/p>\n<p>  # options<br \/>\n  usessl: false<\/p>\n<p># At the end of every week you can save players ontimes to a file in leaderboard fashion<br \/>\nontime-saving:<\/p>\n<p>  # Toggle this feature on\/off<br \/>\n  # Default: true<br \/>\n  enabled: true<\/p>\n<p>  # Day of the week ontime will be saved<br \/>\n  # Options: Monday, Tuesday, Wednesday, Thursday, Friday, Saturday, Sunday<br \/>\n  # Default: Monday<br \/>\n  dayofweek: &#8216;Monday&#8217;<\/p>\n<p>  # Order of which times will sort by<br \/>\n  # Options: Alphabetical, Ascending, Descending, Group.<br \/>\n  # Group will sort by Luckperms group, requires Luckperms to be installed!<br \/>\n  # Default: Descending<br \/>\n  order: &#8220;Descending&#8221;<\/p>\n<p># MacTime Admin Command Configurations<\/p>\n<p># Reset<br \/>\n# Options for the \/mactime reset command<br \/>\nreset:<br \/>\n  # Delay before any un-confirmed \/mactime reset queries are cancelled in seconds<br \/>\n  # Default: 10<br \/>\n  delay: 10<\/p>\n<p>  # Removes data entirely versus restarting the count after reset<br \/>\n  # Default: false<br \/>\n  delete-data-on-reset: false<\/p>\n<p>  # Sets who is able to use \/mactime reset * (resets everyone&#8217;s ontime)<br \/>\n  # Options: &#8220;None&#8221;, &#8220;Console&#8221;, &#8220;Player&#8221;, &#8220;All&#8221;<br \/>\n  # Default: None<br \/>\n  wildcard-reset: &#8216;None&#8217;<\/p>\n<p># AFK Checker<br \/>\n# The AFK Status of a player is determined by MacTime hooking into Essentials.<br \/>\n# You will need to have essentials on your server for this to work.<br \/>\nafk-checker:<br \/>\n  # Enable AFK time tracking<br \/>\n  # Default: false<br \/>\n  enabled: false<\/p>\n<p>luckperms:<br \/>\n  # Luckperm groups to be included for sorting by groups<br \/>\n  # You must have Luckperms installed for this to be relevant<br \/>\n  # Default:<br \/>\n  #  &#8211; owner<br \/>\n  #  &#8211; manager<br \/>\n  #  &#8211; admin<br \/>\n  #  &#8211; jradmin<br \/>\n  #  &#8211; dev<br \/>\n  #  &#8211; srmod<br \/>\n  #  &#8211; mod<br \/>\n  #  &#8211; jrmod<br \/>\n  #  &#8211; helper<br \/>\n  whitelisted-groups:<br \/>\n    &#8211; owner<br \/>\n    &#8211; manager<br \/>\n    &#8211; admin<br \/>\n    &#8211; jradmin<br \/>\n    &#8211; dev<br \/>\n    &#8211; srmod<br \/>\n    &#8211; mod<br \/>\n    &#8211; jrmod<br \/>\n    &#8211; helper<\/p>\n<p># GUI<br \/>\n# Options for the \/mactime gui command<br \/>\ngui:<br \/>\n  # Sorts \/mactime gui by Luckperm groups specified under &#8220;luckpermgroups&#8221;<br \/>\n  # You need to have Luckperms on your server for this to work!<br \/>\n  # Default: false<br \/>\n  sort-by-luckperm-group: false<\/p>\n<p>  # Duration in seconds to update the gui<br \/>\n  # Set this to 0 to disable this feature<br \/>\n  # Default: 10<br \/>\n  update-interval: 10<\/p>\n<p># Discord Webhooks<br \/>\nwebhook:<br \/>\n  # Enable this feature<br \/>\n  # Default: false<br \/>\n  enabled: false<br \/>\n  # Webhook url<br \/>\n  url: &#8221;<br \/>\n  # Username for the webhook. If this is not set (or empty), this will default to &#8220;MacTime&#8221;<br \/>\n  username: &#8221;<\/p>\n<p>  join:<br \/>\n    # Enables player join webhooks to be sent<br \/>\n    # Default: true<br \/>\n    enabled: true<br \/>\n    # If you want this specific embed to be sent to a separate webhook,<br \/>\n    # add the secondary webhook&#8217;s url here<br \/>\n    # If left empty, this defaults to use the main webhook url defined under &#8220;webhook.url&#8221;<br \/>\n    url: &#8221;<br \/>\n    # If you would like the webhook&#8217;s username to differ from the original username (webhook.username)<br \/>\n    # Leaving this blank defaults to webhook.username<br \/>\n    username: &#8221;<\/p>\n<p>  leave:<br \/>\n    # Enables player leave webhooks to be sent<br \/>\n    # Default: true<br \/>\n    enabled: true<br \/>\n    url: &#8221;<br \/>\n    username: &#8221;<\/p>\n<p>  afkstart:<br \/>\n    # Enables webhooks to be sent for when a player goes afk<br \/>\n    # Default: true<br \/>\n    enabled: true<br \/>\n    url: &#8221;<br \/>\n    username: &#8221;<\/p>\n<p>  afkend:<br \/>\n    # Enables webhooks to be sent when a player returns from being afk<br \/>\n    # Default: true<br \/>\n    enabled: true<br \/>\n    url: &#8221;<br \/>\n    username: &#8221;<\/p>\n<p>  print:<br \/>\n    # Enables the &#8220;\/mactime export&#8221; command and allows playerdata to be sent by the webhook<br \/>\n    # Default: true<br \/>\n    enabled: true<br \/>\n    url: &#8221;<br \/>\n    username: &#8221;<\/p>\n<p>  saving:<br \/>\n    # Enables weekly data saved during the ontime-saving section to be sent by the webhook<br \/>\n    # Default: true<br \/>\n    enabled: true<br \/>\n    url: &#8221;<br \/>\n    username: &#8221;<\/p>\n<p>other:<br \/>\n  # Enables the beautiful MacTime signature in console on startup<br \/>\n  # If you don&#8217;t want this, set below to false<br \/>\n  # Default: true<br \/>\n  signature: true<\/p>\n<p>  # Removes a player&#8217;s ontime data if they are no longer have the `ontime.track` permission<br \/>\n  # This deletes their data on the player&#8217;s next join<br \/>\n  # Default: false<br \/>\n  remove-if-no-perm: false<\/p>\n<p>  # Your timezone<br \/>\n  # Use https:\/\/pastebin.com\/mfdYhnu7 to find the format for your timezone<br \/>\n  timezone: &#8220;America\/New_York&#8221;<\/p>\n<p># Date of when ontime first started recording<br \/>\n# This resets when you do \/mactime reset *<br \/>\n# Don&#8217;t touch pls<br \/>\nstart: &#8221;<\/p>\n<p># Config version (don&#8217;t touch or u get malaria)<br \/>\nversion: &#8216;1.0.4&#8217;<br \/>\n&#8220;`<br \/>\n<\/details>\n<details>\n<summary>Default messages.yml<\/summary>\n<p>&#8220;`yml<br \/>\nversion: &#8216;1.0.3&#8217;<br \/>\nprefix: &#8216;&#038;e\u2600 &#038;e&#038;lMacTime &#038;8&#038;l\u00bb &#8216;<br \/>\nonline: &#8216;&#038;a\u25cf&#8217;<br \/>\noffline: &#8216;&#038;c\u25cf&#8217;<br \/>\nafk: &#8216;&#038;8[&#038;7&#038;lAFK&#038;8]&#8217;<br \/>\nno-permission: &#8216;&#038;cNo Permission&#8217;<\/p>\n<p># %player_name% = Player&#8217;s Username<br \/>\ncommand:<br \/>\n  ontime:<br \/>\n    player:<br \/>\n      # Header for \/ontime<br \/>\n      self-header: &#8216;&#038;7&#038;m    &#038;r &#038;a%player_name%&#8221;s Ontime &#038;7&#038;m    &#038;r&#8217;<br \/>\n      # Header for \/ontime <username><br \/>\n      other-header: &#8216;&#038;a%player_name%&#8221;s Ontime&#8217;<br \/>\n      no-ontime-data: &#8216;&#038;c %player_name% &#038;chas no ontime data!&#8217;<br \/>\n      divider: &#8216;&#038;7&#038;l&#038;m                              &#8216;<br \/>\n    console:<br \/>\n      invalid: &#8216;This Command cannot be executed by console.&#8217;<br \/>\n      player-does-not-have-data: &#8216;This player does not have any ontime data!&#8217;<br \/>\n  reload:<br \/>\n    messages: &#8216;&#038;7Successfully Reloaded Module: &#038;fMessages&#038;7.&#8217;<br \/>\n    config: &#8216;&#038;7Successfully Reloaded Module: &#038;fConfiguration&#038;7.&#8217;<br \/>\n    all: &#8216;&#038;7Successfully Reloaded Modules: &#038;fConfigurations &#038;7and &#038;fMessages&#038;7.&#8217;<\/p>\n<p>  # %player_name% = Player&#8217;s Username<br \/>\n  # {0} = Luckperm group prefix<br \/>\n  # {1} = Total players<br \/>\n  reset:<br \/>\n    expired:<br \/>\n      player: &#8216;&#038;cOntime removal request for %player_name% has expired!&#8217;<br \/>\n      group: &#8216;&#038;cOntime removal request for {0} group has expired!&#8217;<br \/>\n      wild: &#8216;&#038;cOntime removal request for all users have expired!&#8217;<br \/>\n    confirm:<br \/>\n      player: &#8216;&#038;7Are you sure you want to reset &#038;f%player_name%&#8221;s &#038;7ontime stats? &#038;7[Click to Confirm]&#8217;<br \/>\n      group: &#8216;&#038;7Are you sure you want to reset ontimes for players in the &#038;f{0}&#038;7 group? &#038;7[Click to Confirm]&#8217;<br \/>\n      wild: &#8216;&#038;cAre you sure you want to reset all ontime statistics? &#038;7[Click to Confirm]&#8217;<br \/>\n    success:<br \/>\n      player: &#8216;&#038;7Reset ontime for &#038;f%player_name%&#038;7!&#8217;<br \/>\n      group: &#8216;&#038;7Reset ontime for &#038;f{1} &#038;7players in &#038;f{0}&#038;7 group!&#8217;<br \/>\n      wild: &#8216;&#038;7Reset ontime statistics for &#038;f{1} &#038;7players!&#8217;<br \/>\n    invalid:<br \/>\n      player: &#8216;&#038;cYou have entered an invalid username!&#8217;<br \/>\n      group: &#8216;&#038;cYou have entered an invalid group name!&#8217;<br \/>\n      wild: &#8216;&#038;cThis action is currently disabled!&#8217;<br \/>\n    player-does-not-have-data: &#8216; &#038;c%player_name% has no ontime data!&#8217;<br \/>\n    # %command% &#8211; Reset command ex. &#8220;\/mactime reset player Notch&#8221;<br \/>\n    hover-msg: &#8216;&#038;a&#038;lCLICK ME&#038;r&#8217;<\/p>\n<p>#<br \/>\n# Ontime Command (\/ontime)<br \/>\n#<br \/>\nontime:<br \/>\n  player:<br \/>\n    current-ontime: &#8216;&#038;fCurrent Ontime &#038;8\u27a1 &#038;e%mactime_current%&#8217;<br \/>\n    daily-ontime: &#8216;&#038;fDaily Ontime &#038;8\u27a1 &#038;e%mactime_daily%&#8217;<br \/>\n    weekly-ontime: &#8216;&#038;fWeekly Ontime &#038;8\u27a1 &#038;e%mactime_weekly%&#8217;<br \/>\n    monthly-ontime: &#8216;&#038;fMonthly Ontime &#038;8\u27a1 &#038;e%mactime_monthly%&#8217;<br \/>\n    yearly-ontime: &#8216;&#038;fYearly Ontime &#038;8\u27a1 &#038;e%mactime_yearly%&#8217;<br \/>\n    alltime-ontime: &#8216;&#038;fAll-Time Ontime &#038;8\u27a1 &#038;e%mactime_alltime%&#8217;<br \/>\n    afk-time: &#8216;&#038;fTotal AFK Time &#038;8\u27a1 &#038;e%mactime_afktime%&#8217;<br \/>\n    last-online: &#8216;&#038;fLast Online &#038;8\u27a1 &#038;e%mactime_lastonline%&#8217;<br \/>\n  console:<br \/>\n    current-ontime: &#8216;* Current Ontime \u27a1 %mactime_current%&#8217;<br \/>\n    daily-ontime: &#8216;* Daily Ontime \u27a1 %mactime_daily%&#8217;<br \/>\n    weekly-ontime: &#8216;* Weekly Ontime \u27a1 %mactime_weekly%&#8217;<br \/>\n    monthly-ontime: &#8216;* Monthly Ontime \u27a1 %mactime_monthly%&#8217;<br \/>\n    yearly-ontime: &#8216;* Yearly Ontime \u27a1 %mactime_yearly%&#8217;<br \/>\n    alltime-ontime: &#8216;* All-Time Ontime \u27a1 %mactime_alltime%&#8217;<br \/>\n    afk-time: &#8216;* AFK Time \u27a1 %mactime_afktime%&#8217;<br \/>\n    last-online: &#8216;* Last Online \u27a1 %mactime_lastonline%&#8217;<\/p>\n<p>#<br \/>\n# GUI message configuration (\/mactime gui)<br \/>\n#<br \/>\ngui:<br \/>\n  # Player Ontimes<br \/>\n  # {0} = Total Players<br \/>\n  po:<br \/>\n    title: &#8216;Staff On-Times ({0})&#8217;<br \/>\n    online: &#8216;&#038;a&#038;lONLINE&#8217;<br \/>\n    offline: &#8216;&#038;c&#038;lOFFLINE&#8217;<br \/>\n    current-ontime: &#8216;&#038;e| &#038;fCurrent Ontime &#038;8\u27a1 &#038;e%mactime_current%&#8217;<br \/>\n    daily-ontime: &#8216;&#038;e| &#038;fDaily Ontime &#038;8\u27a1 &#038;e%mactime_daily%&#8217;<br \/>\n    weekly-ontime: &#8216;&#038;e| &#038;fWeekly Ontime &#038;8\u27a1 &#038;e%mactime_weekly%&#8217;<br \/>\n    monthly-ontime: &#8216;&#038;e| &#038;fMonthly Ontime &#038;8\u27a1 &#038;e%mactime_monthly%&#8217;<br \/>\n    yearly-ontime: &#8216;&#038;e| &#038;fYearly Ontime &#038;8\u27a1 &#038;e%mactime_yearly%&#8217;<br \/>\n    alltime-ontime: &#8216;&#038;e| &#038;fAll-Time Ontime &#038;8\u27a1 &#038;e%mactime_alltime%&#8217;<br \/>\n    afk-time: &#8216;&#038;e| &#038;fTotal AFK Time &#038;8\u27a1 &#038;e%mactime_afktime%&#8217;<br \/>\n    last-online: &#8216;&#038;e| &#038;fLast Online &#038;8\u27a1 &#038;e%mactime_lastonline% &#038;fAgo&#8217;<\/p>\n<p>  # Sorted player ontimes (GUI Without luckperms sorting)<br \/>\n  # {0} = Total Players<br \/>\n  spo:<br \/>\n    title: &#8216;Staff On-Times ({0})&#8217;<\/p>\n<p>  # Individual Group Ontimes (\/mactime gui [groupname])<br \/>\n  # {0} = Luckperms group prefix<br \/>\n  # {1} = Total Players<br \/>\n  igo:<br \/>\n    titles:<br \/>\n      main: &#8216;{0}&#038;8On-Times ({1})&#8217;<br \/>\n      other: &#8216;Other Members On-Times ({1})&#8217;<br \/>\n    error:<br \/>\n      invalid-group: &#8216;&#038;cInvalid Group&#8217;<br \/>\n      group-does-not-exist: &#8216;&#038;cGroup does not exist in luckperms!&#8217;<br \/>\n  # Individual Player Ontime Data Menu<br \/>\n  # This is the menu that is shown when you click a player head inside \/mactime gui<br \/>\n  io:<br \/>\n    title: &#8216;Data for %player_name%&#8217;<\/p>\n<p>  # Sorted Ontimes<br \/>\n  # {0} = Luckperms Group Prefix<br \/>\n  # {1} = Total Players<br \/>\n  so:<br \/>\n    title: &#8216;{0} &#038;8Player On-Times ({1})&#8217;<\/p>\n<p>  # {0} = Date (ex. 1\/20, 3\/10)<br \/>\n  # {1} = Time<br \/>\n  history-item:<br \/>\n    title: &#8216;Past 7 days of ontime&#8217;<br \/>\n    entry: &#8216;&#038;3{0} &#038;8\u27a1 &#038;3{1}&#8217;<br \/>\n    empty: &#8216;&#038;cPlayer has not logged on in the past 7 days!&#8217;<\/p>\n<p># AFK notifications logged to console<br \/>\n# {0} = Total time AFK (formatted as hh:mm:ss)<br \/>\nAFK-Detection:<br \/>\n  afk: &#8216;is now afk&#8217;<br \/>\n  not-afk: &#8216;is no longer afk&#8217;<br \/>\n  afk-time: &#8216;was afk for {0}&#8217;<\/p>\n<p>#<br \/>\n# Webhook Embeds<br \/>\n#<\/p>\n<p>webhook:<br \/>\n  join:<br \/>\n    title: $username has joined<br \/>\n    color: 0x00ff00<br \/>\n    # Available Placeholders<br \/>\n    # $time &#8211; Timestamp when the player joined the server<br \/>\n    content:<br \/>\n      &#8211; &#8220;\u2022 Time Joined: `$time`&#8221;<br \/>\n  leave:<br \/>\n    title: $username has left<br \/>\n    color: 0xff0000<br \/>\n    # Available Placeholders<br \/>\n    # $time_joined &#8211; Timestamp when the player joined the server<br \/>\n    # $time_left &#8211; Timestamp when the player left the server<br \/>\n    # $time_online &#8211; Total time the player was on the server for<br \/>\n    content:<br \/>\n      &#8211; &#8220;\u2022 Time Joined: `$time_joined`&#8221;<br \/>\n      &#8211; &#8220;\u2022 Time Left: `$time_left`&#8221;<br \/>\n      &#8211; &#8220;\u2022 Total time online: `$time_online`&#8221;<br \/>\n  afk-start:<br \/>\n    title: $username is now afk<br \/>\n    color: 0xff9a00<br \/>\n    # Available Placeholders<br \/>\n    # $time &#8211; Timestamp when the player became afk<br \/>\n    # $afk_time &#8211; Total time the player has been afk on the server<br \/>\n    content:<br \/>\n      &#8211; &#8220;\u2022 Afk Starting at: `$time`&#8221;<br \/>\n      &#8211; &#8220;\u2022 Total AFK Time: `$afk_time`&#8221;<br \/>\n  afk-end:<br \/>\n    # Available placeholder ($username)<br \/>\n    title: $username is no longer afk<br \/>\n    color: 0xff9a00<br \/>\n    # Available Placeholders<br \/>\n    # $time &#8211; Timestamp when the player was afk<br \/>\n    # $afk_time &#8211; Time the player was afk for<br \/>\n    # $total_afk_time &#8211; Total time the player has been afk<br \/>\n    content:<br \/>\n      &#8211; &#8220;\u2022 Afk Since: `$time`&#8221;<br \/>\n      &#8211; &#8220;\u2022 Time Afk: `$afk_time`&#8221;<br \/>\n      &#8211; &#8220;\u2022 Total AFK Time: `$total_afk_time`&#8221;<br \/>\n  print:<br \/>\n    title: Ontime Statistics for $username<br \/>\n    color: 0xffffff<br \/>\n    # Available Placeholders<br \/>\n    # $date<br \/>\n    # $uuid<br \/>\n    # $daily_ontime<br \/>\n    # $weekly_ontime<br \/>\n    # $monthly_ontime<br \/>\n    # $yearly_ontime<br \/>\n    # $alltime_ontime<br \/>\n    # $afk_time<br \/>\n    # $last_online<br \/>\n    content:<br \/>\n      &#8211; &#8220;\u2022 Date: `$date`&#8221;<br \/>\n      &#8211; &#8220;\u2022 UUID: `$uuid`&#8221;<br \/>\n      &#8211; &#8220;\u2022 Daily Ontime: `$daily_ontime`&#8221;<br \/>\n      &#8211; &#8220;\u2022 Weekly Ontime: `$weekly_ontime`&#8221;<br \/>\n      &#8211; &#8220;\u2022 Monthly Ontime: `$monthly_ontime`&#8221;<br \/>\n      &#8211; &#8220;\u2022 Yearly Ontime: `$yearly_ontime`&#8221;<br \/>\n      &#8211; &#8220;\u2022 All time Ontime: `$alltime_ontime`&#8221;<br \/>\n      &#8211; &#8220;\u2022 Afk time: `$afk_time`&#8221;<br \/>\n      &#8211; &#8220;\u2022 Last Online: `$last_online`&#8221;<br \/>\n  saving:<br \/>\n    # Available placeholder ($range)<br \/>\n    title: Weekly Ontimes for $range<br \/>\n    color: 0xffffff<br \/>\n&#8220;`<br \/>\n<\/details>\n<p># Support &#038; Contact<br \/>\nTo report bugs, suggest a feature, or anything else, contact me via discord.<br \/>\n&#8211; Direct Contact<br \/>\n  * -> ajmac<\/p>\n<p># bStats<br \/>\n![bStats](https:\/\/bstats.org\/signatures\/bukkit\/mactime.svg)<\/p>\n","protected":false},"excerpt":{"rendered":"<p>You can only manage time if you track it right.<br \/>\nAn administrator friendly plugin to track the ontime of staff members on your server.<\/p>\n","protected":false},"featured_media":97277,"template":"","meta":{"_minecraft_slug":"mactime","_minecraft_project_id":"D6RzuXXH","_minecraft_author":"ajmac","_minecraft_license":"LGPL-3.0-only","_minecraft_downloads":1679,"_minecraft_follows":5,"_minecraft_client_side":"unsupported","_minecraft_server_side":"required","_minecraft_storage_type":"zip","_minecraft_archive_name":"mactime.zip","_minecraft_size_bytes":53163190,"_minecraft_version_count":15,"_minecraft_updated_at":"2026-05-16T06:54:16.196593Z","_minecraft_date_created":"2024-03-17T06:36:14.976230Z","_minecraft_date_modified":"2026-04-07T13:39:14.948875Z","_minecraft_project_url":"https:\/\/modrinth.com\/mod\/mactime","_minecraft_icon_attachment_id":97277,"_minecraft_imported_at":"2026-06-05T13:54:15+00:00","_minecraft_import_hash":"5aebaa3c03188afd43c65f308c72df4f","_minecraft_versions":"","_minecraft_links":"","_minecraft_gallery":"","_minecraft_api_metadata":""},"mod_category":[124,125,126,127,128,867,129,92],"mod_loader":[130,131,132,133,134],"minecraft_version":[59,36,60,93,94,101,102,62,37,40,41,73,74,38,78,79,80,81,82],"class_list":["post-97276","mod","type-mod","status-publish","has-post-thumbnail","hentry","mod_category-bukkit","mod_category-folia","mod_category-management","mod_category-paper","mod_category-purpur","mod_category-social","mod_category-spigot","mod_category-utility","mod_loader-bukkit","mod_loader-folia","mod_loader-paper","mod_loader-purpur","mod_loader-spigot","minecraft_version-1-20","minecraft_version-1-20-1","minecraft_version-1-20-2","minecraft_version-1-20-3","minecraft_version-1-20-4","minecraft_version-1-20-5","minecraft_version-1-20-6","minecraft_version-1-21","minecraft_version-1-21-1","minecraft_version-1-21-10","minecraft_version-1-21-11","minecraft_version-1-21-2","minecraft_version-1-21-3","minecraft_version-1-21-4","minecraft_version-1-21-5","minecraft_version-1-21-6","minecraft_version-1-21-7","minecraft_version-1-21-8","minecraft_version-1-21-9"],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v27.6 - https:\/\/yoast.com\/product\/yoast-seo-wordpress\/ -->\n<title>MacTime - Minecraft<\/title>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/vpesports.com\/minecraft\/mods\/mactime\/\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"MacTime - Minecraft\" \/>\n<meta property=\"og:description\" content=\"You can only manage time if you track it right. An administrator friendly plugin to track the ontime of staff members on your server.\" \/>\n<meta property=\"og:url\" content=\"https:\/\/vpesports.com\/minecraft\/mods\/mactime\/\" \/>\n<meta property=\"og:site_name\" content=\"Minecraft\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:label1\" content=\"Est. reading time\" \/>\n\t<meta name=\"twitter:data1\" content=\"13 minutes\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\\\/\\\/schema.org\",\"@graph\":[{\"@type\":\"WebPage\",\"@id\":\"https:\\\/\\\/vpesports.com\\\/minecraft\\\/mods\\\/mactime\\\/\",\"url\":\"https:\\\/\\\/vpesports.com\\\/minecraft\\\/mods\\\/mactime\\\/\",\"name\":\"MacTime - Minecraft\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/vpesports.com\\\/minecraft\\\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\\\/\\\/vpesports.com\\\/minecraft\\\/mods\\\/mactime\\\/#primaryimage\"},\"image\":{\"@id\":\"https:\\\/\\\/vpesports.com\\\/minecraft\\\/mods\\\/mactime\\\/#primaryimage\"},\"thumbnailUrl\":\"https:\\\/\\\/vpesports.com\\\/minecraft\\\/wp-content\\\/uploads\\\/2026\\\/06\\\/mactime-icon-342a081cc85ca88bd8c0156c8c7282b3b918dc47_96.webp\",\"datePublished\":\"2026-06-05T13:54:14+00:00\",\"breadcrumb\":{\"@id\":\"https:\\\/\\\/vpesports.com\\\/minecraft\\\/mods\\\/mactime\\\/#breadcrumb\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\\\/\\\/vpesports.com\\\/minecraft\\\/mods\\\/mactime\\\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\\\/\\\/vpesports.com\\\/minecraft\\\/mods\\\/mactime\\\/#primaryimage\",\"url\":\"https:\\\/\\\/vpesports.com\\\/minecraft\\\/wp-content\\\/uploads\\\/2026\\\/06\\\/mactime-icon-342a081cc85ca88bd8c0156c8c7282b3b918dc47_96.webp\",\"contentUrl\":\"https:\\\/\\\/vpesports.com\\\/minecraft\\\/wp-content\\\/uploads\\\/2026\\\/06\\\/mactime-icon-342a081cc85ca88bd8c0156c8c7282b3b918dc47_96.webp\",\"width\":96,\"height\":96},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\\\/\\\/vpesports.com\\\/minecraft\\\/mods\\\/mactime\\\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\\\/\\\/vpesports.com\\\/minecraft\\\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Mods\",\"item\":\"https:\\\/\\\/vpesports.com\\\/minecraft\\\/mods\\\/\"},{\"@type\":\"ListItem\",\"position\":3,\"name\":\"MacTime\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\\\/\\\/vpesports.com\\\/minecraft\\\/#website\",\"url\":\"https:\\\/\\\/vpesports.com\\\/minecraft\\\/\",\"name\":\"Minecraft\",\"description\":\"\",\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\\\/\\\/vpesports.com\\\/minecraft\\\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"en-US\"}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"MacTime - Minecraft","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/vpesports.com\/minecraft\/mods\/mactime\/","og_locale":"en_US","og_type":"article","og_title":"MacTime - Minecraft","og_description":"You can only manage time if you track it right. An administrator friendly plugin to track the ontime of staff members on your server.","og_url":"https:\/\/vpesports.com\/minecraft\/mods\/mactime\/","og_site_name":"Minecraft","twitter_card":"summary_large_image","twitter_misc":{"Est. reading time":"13 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"WebPage","@id":"https:\/\/vpesports.com\/minecraft\/mods\/mactime\/","url":"https:\/\/vpesports.com\/minecraft\/mods\/mactime\/","name":"MacTime - Minecraft","isPartOf":{"@id":"https:\/\/vpesports.com\/minecraft\/#website"},"primaryImageOfPage":{"@id":"https:\/\/vpesports.com\/minecraft\/mods\/mactime\/#primaryimage"},"image":{"@id":"https:\/\/vpesports.com\/minecraft\/mods\/mactime\/#primaryimage"},"thumbnailUrl":"https:\/\/vpesports.com\/minecraft\/wp-content\/uploads\/2026\/06\/mactime-icon-342a081cc85ca88bd8c0156c8c7282b3b918dc47_96.webp","datePublished":"2026-06-05T13:54:14+00:00","breadcrumb":{"@id":"https:\/\/vpesports.com\/minecraft\/mods\/mactime\/#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/vpesports.com\/minecraft\/mods\/mactime\/"]}]},{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/vpesports.com\/minecraft\/mods\/mactime\/#primaryimage","url":"https:\/\/vpesports.com\/minecraft\/wp-content\/uploads\/2026\/06\/mactime-icon-342a081cc85ca88bd8c0156c8c7282b3b918dc47_96.webp","contentUrl":"https:\/\/vpesports.com\/minecraft\/wp-content\/uploads\/2026\/06\/mactime-icon-342a081cc85ca88bd8c0156c8c7282b3b918dc47_96.webp","width":96,"height":96},{"@type":"BreadcrumbList","@id":"https:\/\/vpesports.com\/minecraft\/mods\/mactime\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/vpesports.com\/minecraft\/"},{"@type":"ListItem","position":2,"name":"Mods","item":"https:\/\/vpesports.com\/minecraft\/mods\/"},{"@type":"ListItem","position":3,"name":"MacTime"}]},{"@type":"WebSite","@id":"https:\/\/vpesports.com\/minecraft\/#website","url":"https:\/\/vpesports.com\/minecraft\/","name":"Minecraft","description":"","potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/vpesports.com\/minecraft\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"en-US"}]}},"_links":{"self":[{"href":"https:\/\/vpesports.com\/minecraft\/wp-json\/wp\/v2\/mod\/97276","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/vpesports.com\/minecraft\/wp-json\/wp\/v2\/mod"}],"about":[{"href":"https:\/\/vpesports.com\/minecraft\/wp-json\/wp\/v2\/types\/mod"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/vpesports.com\/minecraft\/wp-json\/wp\/v2\/media\/97277"}],"wp:attachment":[{"href":"https:\/\/vpesports.com\/minecraft\/wp-json\/wp\/v2\/media?parent=97276"}],"wp:term":[{"taxonomy":"mod_category","embeddable":true,"href":"https:\/\/vpesports.com\/minecraft\/wp-json\/wp\/v2\/mod_category?post=97276"},{"taxonomy":"mod_loader","embeddable":true,"href":"https:\/\/vpesports.com\/minecraft\/wp-json\/wp\/v2\/mod_loader?post=97276"},{"taxonomy":"minecraft_version","embeddable":true,"href":"https:\/\/vpesports.com\/minecraft\/wp-json\/wp\/v2\/minecraft_version?post=97276"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}