OnTime

Bukkit Plugins
111,791 Downloads Last Updated: Mar 8, 2016 Game Version: 1.9

Commands

Feb 25, 2015 Revision 46 View Revisions

In Game Commands

Terms used here:

  • OnTime = Time on the server. (The ‘epoch’ event is the first time that OnTime service is installed and started on the server.)
  • current OnTime = Time on the server since last login event.
  • today OnTime = Time on the server for the current day (since midnight)
  • total OnTime = Time on the server since the first login.

General Usage:

/ontime [keyword] <parameters> {optional}


All commands (except where noted) can be executed from the console or in game.


Command keywords can be shortened to the first three or four characters in most cases.


For example: >ontime rewards add command warp_command 1h monthly ==> >ontime rw add com warp_command 1h mon


Player Commands:

/ontime

Provides the sender with their current OnTime, daily/weekly OnTime, and total OnTime. This command cannot be executed from the console.

/ontime help

Provides the sender with a list of available OnTime commands according to their permission settings.

/ontime rewards purchase <shopID/shopTag>

Executes a purchase of a shop reward from the shop with the specified ID/Tag. The player must have sufficient points or funds available for the reward to be successfully issued.

/ontime top <#>

Provides the sender with a list of players ranked by total OnTime. The number of players to include in the list must be specified <#>.

/referred by <playerName>

Executed by a player who has been referred to the server by another player. The referring player and player executign the command cayn receive rewards, once the referred player has been on the server for a time, as specified by the administrator.


If the player specified as the referring player cannot be found in the server's records, a selection of close matches to the name provided will be shown to the user.


Player/Administrator Commands:

/ontime <player name> {<world name> | [all]}

This provides the sender with information such as the # days on, # different days, last login, current OnTime, daily/weekly OnTime, voting statistics, and total OnTime, and scheduled reward(s) for the specified player. If the player is online then shortened versions of the ID can be used. If offline, the complete player name must be specified.

If per-world OnTime tracking is enabled, a player's time in a particular world can be seen by specifying the name of the world. Specifying a partial world name will show data for all worlds that start with that sub-string. (e.g. "ontime edge209 pvp" would show my OnTime for both the "pvp" and "pvp_nether" worlds i have defined on my server.) If "all" is specified then the data for all defined worlds on the server will be shown. If no world is specified, then the standard 'full server" (a.k.a. all worlds combined) data will be displayed.

The output including the content, wording, and color is configurable.

/ontime top {<#> [afk/playtime/points/refer/vote] [total/today/week/month] {[+login/+rank/+today/+week/+month]} {[players/sites]}

Provides the sender with a list of players ranked by afk time, total OnTime, points, referrals, or votes. The number of players to include in the list can be specified by <#>. If no number is specified the max number configured will be used. The {[players/sites]} keyword options only apply to the "vote" top list. If "vote" is specified but 'player' nor 'sites' is specified, then 'players' is assumed.

The scope of the list can be specified to be total (alltime), daily, weekly, or monthly. If no scope is specified 'total' time will be used. (For AFK, 'total' is not collected, so 'daily' is the default. For 'points', daily, weekly, and monthly are not supported.)

When 'playtime total' is specified, each listed player's last login (+login), highest rank (+rank), or daily/weekly/monthly (+today or +weekly or +monthly) data can be added to the output. Only one extended info ( '+login'/+rank/+today/+week/+month') can be specified in a single command.

The "votes" option will show which players have voted the most times for the server, or which web sites have provided the most votes. For the sites, total is supported but not daily, weekly, or monthly.

The "afk" option will show which players have spent the most time AFK, or Away From Keyboard. AFK data is collected on daily, weekly, and monthly basis, but not all-time (total). So, 'total' is not valid, and 'daily' is used as the default if no time reference is supplied in the command.

The "points" option will show the players with the most accumulated "loyalty" points. Points totals are only collected, so 'daily', 'weekly', and 'monthly' order cannot be displayed.

"afk", "points", "refer" and "vote" top lists require the use of MYSQL dataStorage option for OnTime.


Examples

/ontime top

/ontime top 5

/ontime top 10 play weekly

/ontime top 10 playtime total +login

/ontime top 10 vote monthly

/ontime top 5 refer today

/ontime top 10 vote sites

/ontime top 10 afk weekly

/ontime online [total]

Provides the sender with a list of players that are currently online showing their total OnTime. This is the default if neither ‘current’ nor ‘total’ is specified after the ‘online’ keyword.

/ontime online current

Provides the sender with a list of players that are currently online showing their current OnTime.


/referred list <playerName>

Provides a list of all player's referred to the server for the specified player.


Example:

/referred list Edge209



Admin Commands:

/ontime add [player/point/total] <player name> {<points>/<dd>D <hh>H <mm>M}

Allows an admin to add a player to OnTime's database, and to add value to existing players' total playtime and point data.

Adding a Player:

Example: /ontime add player Edge209

This will create an OnTime record for Edge209. All of this player's records will be initialized at zero, except for 'total playtime' which will be set to the number of minutes specified by 'purgeTimeMin' as specified in the config.yml. This value is used so that the new player is not automatically purged by OnTime if the purge function is enabled. Upon the player's login, their 'first login' and 'server join' data will be updated.

Adding Points

Example: /ontime add points Edge209 100

In this example the admin is adding 100 points to Edge209's point total.

Adding Total Time

Example: /ontime add total Edge209 1D 8H 30M

In this example, the admin has increased Edge209's total OnTime (play time) by 1 day, 8 hours, and 30 minutes.

/ontime backup

Generates backup versions of the OnTime .yml file in the /plugin/ontime/backup directory.

/ontime console enable <level>

Changes the level of detail OnTime displays in the console as it executes, especially during plugin enable and disable. Valid values for <level> are (1,2, & 3), where 1 is the greatest detail and 3 is the least amount of detail.

/ontime export [mysql/yml] {<first> <last>}

Exports the player data to the specified format. This command would be used when the admin wants to change from one storage method to another, or they want to export OnTime data for other uses.


<first> & <last> optional parameters are only valid for '/ontime export mysql'. By supplying a 'first' record number and 'last' record number the OP can control the size of the export. On very large databases some OPs have seen lag or server reset because the task takes so long. You should only use the <first> and <last> if you see problems running the command without these optional parameters.

/ontime help {<keyword>}

There are some special help topics available for OnTime. Here are some examples:

  • /ontime help potions

Get the IDs for different potions that can be used as rewards.

  • /ontime help enchantment

Get the IDs for the different enchantments that can be put on item rewards

Note: that any portion of the words 'potions' and 'enchantment' will generate the help output, for example: 'poti', 'po', 'enchant', 'ench', etc. Note: Help for all potions or enchantments that have to do with 'fire' can be output using: '/ontime help fire'. The same is true for any words found within the /plugins/ontime/help.yml file.

/ontime import logblock {[replace]}

Imports player data (playerName, total playtime) from the MYSQL data table created by the logblock plugin. (See Ohter Functions Page for more info.) If the keyword 'replace' is included at the end of the command any player's total OnTime that is already stored in the OnTime database, will be replaced with the contents of the imported database.

/ontime import report <filename> {replace} {<playerName>}

Imports player names and total OnTime (play time) from a specified OnTime daily, weekly, monthly or total OnTime report.

If the keyword 'replace' is included in the command, any player's data that is already stored in the OnTime database, will be replaced with the contents of the imported file.

If a playerName is specified, only that player's data will be imported. If the player's data already exists in the OnTime database, the 'replace' keyword must be used to overwrite the old data.

Note that the standard OnTime report names include a space (" "), and spaces are not supported by this command, so the file may need to be renamed before the data can be imported.

/ontime import yml <filename> {replace} {<playerName>}

Imports player data from an .yml file. This provides a method to create total OnTime data file from another plugin or hand edited file. This file can be of the format found in this page, or it can be a standard OnTime playerdata.yml formatted file. (See Other Functions Page for more info.)

If the keyword 'replace' is included in the command, any player's data that is already stored in the OnTime database, will be replaced with the contents of the imported file.

If a playerName is specified, only that player's data will be imported. If the player's data already exists in the OnTime database, the 'replace' keyword must be used to overwrite the old data.

/ontime logfile [enable/disable] {<level>}

Enables/Disables/Changes the level of detail OnTime records in the /plugins/OnTime/OnTimeLog.txt file as it executes. Valid values for <level> are (1,2, & 3), where 1 is the greatest detail and 3 is the least amount of detail.

/ ontime message add <msgTag> <message string>

shorthand: '/ontime msg add <msgTag> <message string>'
Adds a new preset message to set of available messages, or a new lint to an existing preset message. <msgTag> is a single word 'tag' used in other commands and by the plugin to identify this message. <message string> is a message of any length to be added to group of preset messages. This message can contain variable identifiers, such as "[player]" which will be replaced with relative information at the time it is displayed. Please see the /plugins/ontime/messages.yml file for a list of supported variables.

/ ontime message list

shorthand: '/ontime msg l
Generates a list of all defined pre-set messages as well as any currently active adhoc messages.

/ ontime message remove <msgTag>

shorthand: '/ontime msg l
Removes a preset or adhoc message from group of available messages.

/ ontime message set <playerName> [delta/login/ontime/real] {<dd> <hh> <mm>} [<msgTag>/<adhoc msg>]

Schedules a message to be issued to a player (identified by <playerName>) to be issued at the specified time. The time setting for automated execution of the message specified by <msgTag> will be replaced with the relative time specified as <dd> = days, <hh> = hours, and <mm> = minutes.


This relative time will be interpreted as:

  • delta = Message will be issued when the player has been online for the specified amount of time longer from their current Total OnTime
  • login = Message will be issued on the player's next server login. (<dd> <hh> <mm> are not needed in this case)
  • ontime = Message will be issued when the player's Total OnTime reaches the specified time.
  • real = Message will be issued the specified amount of real (server) time in the future. If the player is not online when this time is reached, the award will be issued on the player's next login to the server.


Adhoc Messages

If the 'message set' command is issued without specifying a valid <msgTag> the remaining text provided in the command will be interpreted as the (adhoc) message to be set to the player. Once delivered the adhoc message will be automatically removed from the OnTime Messages database.

> Example: /ontime msg set Edge209 login Edge, please cease your greifing or you will be banned. We are watching you!

The above message would be issued to me upon my next login. The message will be retained through server restarts and plugin reloads, etc. But once it has been delivered it will be erased from memory.

/ontime online next

alternative: '/ontime rewards next' Displays the time until and value of the next reward(s) to be issued to each player currently online.

/ontime reload {[all/config/messages/output/players/rewards]} {[offline]}

Reloads the OnTime data files. This command is intended to give the administrator the ability to reload, or reset, the various OnTime components.


/ontime reload =OR= /ontime reload all

This command will reload all configuration settings, message data, output settings, player data and reward data

/ontime reload config

This command will reload the contents of the config.yml, applying any changes made since the plugin enable or a previous reload.

/ontime reload messages

this will reload what is found in the /plugins/ontime/messages.yml file.

/ontime reload output

This will reload what is found in the /plugins/ontime/output.yml file.

/ontime reload players

This command will reload all stored player data. Be aware that if players are online at the time this is executed, all accumulated time for their current login will be lost. When the YAML storage option is used this data loss cannot be avoided. If MYSQL data option is used the "offline" keyword can be provided such that only data for players not online will be loaded, and hence avoiding the loss of current login times. (e.g. /ontime reload players offline)
Note that the 'offline' keyword cannot be used with the 'all' keyword.

/ontime reload rewards

This will first save all scheduled rewards for players online at the time the command is executed. It will then reload all of the reward configurations, and then re-issue the appropriate rewards for players that are online.

Note that this will reset all AFK status for any players currently AFK.

/ontime report

Generates a report (.txt or .htm) file in the /plugin/ontime directory containing a list of players in the OnTime data files, showing total OnTime and timestamp of last login, ordered by total OnTime. The file name includes the date of the report generation request.

Also generates a report (.txt or .htm) file in the same directory containing a list of players on the server for the current day, week, or month, ordered by daily/weekly/monthly OnTime. This file name includes the date of the data included in the report.

Previous versions of report files will be overwritten. The format (.txt vs. .htm) and enabled reporting periods (daily. weekly, monthly) are all set via the OnTime config.yml.

/ontime remove <player name>

Removes the specified user from the OnTime data files. This can only be run for offline players.

/ontime resume

Resumes OnTime functions if OnTime has been suspend. (See /ontime suspend)

/ontime rewards absence <rewardID>

Changes the 'event' status of an existing reward with the specified rewardID to an 'absence' reward. Absence rewards are issued to players that have not logged into the server for a configured number of days. Any reward that is to be an 'absence' reward must have a time setting of at least 1 full day. Rewards of type: item, kit, and XP cannot be designated as absence rewards.

/ontime rewards add [addgroup/addperm/command/denial/demotion/econ/item/kit/message/perm/points/promotion/rmgroup/rmperm/xp] {[total/daily/weekly/monthly]} {[real/delta/total]} {[tag=]<RewardTag>} {[world=]<world name>} {additional parameters see below}

  • Adds a new OnTime Reward to the reward set. When a player with permission to receive OnTime Rewards meets the conditions of a reward, they will be automatically issued the reward specified. The remainder of the format of the command depends on the type of reward as specified below.
  • When time is a parameter it can be expressed in any combination of days (<dd>D), hours (<hh>H), and minutes (<mm>M). Where <dd>, <hh>, <mm> are numbers and 'D', 'H', & 'M' are 'keyword' designators. If no time is specified then "0D 0H 0M" is assumed.
  • The "time scope" of the reward can be specified, which indicates if the reward should be issued based on total playtime, or on a daily, weekly, or monthly basis. If no time scope is specified then total playtime is assumed. See this tutorial for more information.
  • The "time reference" can also be specified as real, delta, or total. Under most circumstances this should be set to 'total' which is the default if no time reference is specified. The use of "real" and "delta" is only needed when a reward is linked behind some other reward. See this tutorial for more information.
  • Each reward has a unique RewardTag that can be used to identify a reward in commands, and is the unique component of the permission string. The RewardTag can be set by the admin using “Tag=<RewardTag>”. A RewardTag can be any string of any length, but cannot contain spaces. OnTime will auto-generate a tag if one is not specified.
    A reward can be specific to a specified world, such that a player will only receive earned rewards when they are in or return to that world. The specific world is set by the admin using "world=<world name>". The world must be a configured world for the server for the reward to work.

Add Addgroup Reward

/ontime rewards add addgroup <group name> {[total/daily/weekly/monthly]} {[real/delta/total]} {[absence/death]} {<dd>d <hh>h <mm>m} {[tag=]<RewardTag>} {[world=]<world name>}

The reward time is specified as <dd> = days, <hh> = hours, and <mm> = minutes. <group name> is the name of the permissions group to which a player should be added. (This not a promotion, but an additional group to the groups to which a player perviously belonged.)

Example: To add a new reward of group add to 'Builder' when a player has been on the server for 1 hour:

/ontime rewards add addgroup Builder 1h

Add Addperm Reward

See "Add Permission Reward"

Add Command Reward

/ontime rewards add command <commandID> {[total/daily/weekly/monthly]} {[real/delta/total]} {[absence/death]} {<dd>d <hh>h <mm>m} {[tag=]<RewardTag>}

shorthand: '/ontime rw add cmd <commandID> {[tot/dai/wee/mon]} {[real/delt/tota]} {[absence/death]} {<dd>d <hh>h <mm>m} {[tag=]<RewardTag> {[world=]<world name>}}'

The reward time is specified as <dd> = days, <hh> = hours, and <mm> = minutes. <commandID> is the command identifier defined in the rewards.yml file for execution.

Example: To give a player 'creative mode' when a player has been on the server for 3 day and 1 hour:

/ontime rewards add command creative 3d 1h NOTE: This requires 'creative' to be defined in the rewards.yml file.

Add Economics Reward

/ontime rewards add econ {[-]}<amount> {[total/daily/weekly/monthly]} {[real/delta/total]} {[absence/death]} {<dd>d <hh>h <mm>m} {[tag=]<RewardTag>} {[world=]<world name>}

The reward time is specified as <dd> = days, <hh> = hours, and <mm> = minutes. <amount> is the size of the economics award/tax granted.

If the amount specified is proceeded by a negative [-] sign, the 'reward' will be a 'tax' instead, and will remove that amount of econ units from the player's balance. There is configurable output for the 'tax' in addition to the more standard 'econ' reward, so a server can have both taxes and econ rewards.

Example: To add a new reward of $100 when a player has been on the server for 1 day:

/ontime rewards add econ 100 1d

Example: To tax a player $1 for every hour of playtime:

/ontime rewards add econ -1 daily 1h

Add Demotion Reward

/ontime rewards add demotion <group name> {[total/daily/weekly/monthly]} {[real/delta/total]} {[absence/death]} {<dd>d <hh>h <mm>m} {[tag=]<RewardTag>} {[world=]<world name>}

The reward time is specified as <dd> = days, <hh> = hours, and <mm> = minutes. <group name> is the name of the permissions group to which a player should be demoted. A demotion will also result in the player being removed from their current lowest priority group.

Example: To add a new reward of demotion to 'Noobie' when a player has been on the server for 1 hour:

/ontime rewards add demotion Noobie 1h

Add Denial Reward (aka permission removal)

/ontime rewards add denial <permission> {[total/daily/weekly/monthly]} {[real/delta/total]} {[absence/death]} {<dd>d <hh>h <mm>m} {[tag=]<RewardTag>} {[world=]<world name>}

/ontime rewards add rmperm <permission> {[total/daily/weekly/monthly]} {[real/delta/total]} {[absence/death]} {<dd>d <hh>h <mm>m}

The reward time is specified as <dd> = days, <hh> = hours, and <mm> = minutes. <permission> is the permission to be removed from a player.

Example: To take away a players ability to execute the '/ontime <playerName>' command after 1d of playtime:

/ontime rewards denial ontime.other 1d -also- /ontime rewards rmperm ontime.other 1d

Add Item Reward

/ontime rewards add item <quantity> [<item ID>/<item name>] {[:/+] data} {[total/daily/weekly/monthly]} {[real/delta/total]} {[death]} {<dd>d <hh>h <mm>m} {[tag=]<RewardTag>} {[world=]<world name>}

The reward time is specified as <dd> = days, <hh> = hours, and <mm> = minutes. <quantity> is the number of the items to give the player. The MC item can be specified by Item ID or Item Name. Example: To add a new reward of 2 Diamonds when a player has been on the server for 1 day 12 hours:

/ontime rewards add item 2 DIAMOND 1d 12h


Example: To add a reward of an iron sword with "smite" enchantment to player on for 2 days:

/ontime rewards add item 1 iron_sword+17 2d

NOTE: The "+" in the syntax is the indication that the next number is an enchantment. The '17' above is the code for "smite". The various enchantment codes can be found in game with the command '/ontime help enchantment'.


Example: To add a reward of a "Harming Potion" to be rewarded at 2 days 6 hours of playtime:

/ontime rewards add item 1 potion:8204 2d 6h

NOTE: The ":" in the syntax above is the indication that the next number is an item data value. In this case it is the type of potion. 8204 is for a Harming Potion, and this number can be seen in game also with a "help" command: '/ontime help potion'

Add Kit Reward

/ontime rewards add kit <kitname> {[total/daily/weekly/monthly]} {[real/delta/total]} {[death]} {<dd>d <hh>h <mm>m} {[tag=]<RewardTag>} {[world=]<world name>}

The reward time is specified as <dd> = days, <hh> = hours, and <mm> = minutes. <kitname> is the name of the kit to be rewarded. Kits are defined by directly editing the /ontime/rewards.yml file.

Example: To add a new reward of the kit 'testkit1' when a player has been on the server for 2 day 12 hours:

/ontime rewards add kit testkit1 2d 12h

Add Permission Reward

/ontime rewards add perm <permission> {[total/daily/weekly/monthly]} {[real/delta/total]} {[absence/death]} {<dd>d <hh>h <mm>m} {[tag=]<RewardTag>} {[world=]<world name>}

/ontime rewards add addperm <permission> {[total/daily/weekly/monthly]} {[real/delta/total]} {[absence/death]} {<dd>d <hh>h <mm>m} {[tag=]<RewardTag>}

The reward time is specified as <dd> = days, <hh> = hours, and <mm> = minutes. <permission> is the permission string to be added to the player's permission list at the specified time.

Example: To add a permission reward of 'ontime.other' when a player has been on the server for 1 day and 1 hour:

/ontime rewards add permission ontime.other 1d 1h -also-
/ontime rewards addperm ontime.other 1d 1h

Add Points Reward

/ontime rewards add points <# points> {[total/daily/weekly/monthly]} {[real/delta/total]} {[absence/death]} {<dd>d <hh>h <mm>m} {[tag=]<RewardTag>} {[world=]<world name>}

The reward time is specified as <dd> = days, <hh> = hours, and <mm> = minutes. <points> is the amount of points (loyalty points) to award to the player at the specified time.

Example: To add a new reward of 100 points when a player has been on the server for 30 minutes:

/ontime rewards add points 100 30m

Add Promotion Reward

(Previously known as a "group" reward) /ontime rewards add promotion <group name> {[total/daily/weekly/monthly]} {[real/delta/total]} {[absence/death]} {<dd>d <hh>h <mm>m} {[tag=]<RewardTag>} {[world=]<world name>}

The reward time is specified as <dd> = days, <hh> = hours, and <mm> = minutes. <group name> is the name of the permissions group to which a player should be promoted. A promotion will also result in the player being removed from their current highest priority group.

Example: To add a new reward of promotion to 'Builder' when a player has been on the server for 1 hour:

/ontime rewards add promotion Builder 1h

Add Remove Group Reward

/ontime rewards add rmgroup <group name> {[total/daily/weekly/monthly]} {[real/delta/total]} {[absence/death]} {<dd>d <hh>h <mm>m} {[tag=]<RewardTag>} {[world=]<world name>}

The reward time is specified as <dd> = days, <hh> = hours, and <mm> = minutes. <group name> is the name of the permissions group from which a player should be removed. (This not a demotion but a removal of the player from the specified group.)

Example: To add a new reward of group add to 'Builder' when a player has been on the server for 1 hour:

/ontime rewards add addgroup Builder 1h

Add XP Reward

/ontime rewards add xp <points> {[total/daily/weekly/monthly]} {[real/delta/total]} {[death]} {<dd>d <hh>h <mm>m} {[tag=]<RewardTag>} {[world=]<world name>}

The reward time is specified as <dd> = days, <hh> = hours, and <mm> = minutes. <points> is the amount of XP (experience points) to award to the player at the specified time.

Example: To add a new reward of 100 XP when a player has been on the server for 30 minutes:

/ontime rewards add xp 100 30m

/ontime rewards death <rewardID/rewardTag>

Changes the 'event' status of an existing reward with the specified rewardID or rewardTag to an 'death' reward. Death rewards are issued to players upon each occurrence of their death.

/ontime rewards delete <player name>

shorthand: '/ontime rw delete <player name>'

Deletes any individual (indi) awards pending for the specified player.

/ontime rewards edit <rewardID/rewardTag> [tag/time/world] {<dd>d <hh>h <mm>m} {<rewardTag>/<world name>}

Enables administrator to modify the total OnTime for the reward with the specified rewardID or RewardTag. This command can also be used to edit the reward 'RewardTag' or specific world.

/ontime rewards exclusive <rewardID/rewardTag> [add/remove] {<group List>}

shorthand: '/ontime rw excl <rewardID/rewardTaG> [add/remove] {<group List>}

Also see '/ontime rewards general'

Makes an OnTime Reward exclusive to specific permissions 'groups'. The groups listed when the 'add' keyword is used will become eligible to receive the specified reward. The groups listed when the 'remove' keyword is used will no longer be eligible to receive the specified reward.

/ontime rewards general <rewardID/rewardTag>

shorthand: '/ontime rw gen <rewardID/rewardTag>

Also see '/ontime rewards exclusive'

Makes an OnTime Reward available to all players. (No longer requires permission group membership.) The rewardID is the order number provided by the '/ontime rewards list' command.

/ontime rewards indi <rewardID/rewardTag>

Makes an existing reward an 'individual only' reward. The rewardID is the order number provided by the '/ontime rewards list' command. An individual reward will never be issued automatically. NOTE: When a rewards 'individual' flag is set, it will automatically be put to the end of the rewards list, so the RewardID may change.

/ontime rewards info [all]/<rewardID>

Displays the detailed definition of the specified reward. The rewardID is the order number provided by the '/ontime rewards list' command. The information included is:

  • RewardID
  • Reward Type
  • Reward Flags
  • Reward Issue time
  • RewardTag
  • Reward Recurrence interval (for recurring/perpetual rewards)
  • Reward Permission String (for exclusive rewards)
  • Reward Permission Groups (for exclusive rewards)
  • Reward Count (for recurring, referral, and votifier rewards)

/ontime rewards perp <rewardID/rewardTag> {<dd>d <hh>h <mm>m}

Makes an existing reward a perpetual reward at the interval specified by <dd> = days, <hh>=hours, <mm>=minutes. The rewardID is the order number provided by the '/ontime rewards list' command. This is only applicable to command, econ, item and xp reward types. The difference between 'perpetual' and 'recurring' rewards is that 'perpetual' rewards are given forever once the start Total OnTime is reached, and therefore multiple perpetual rewards can be active at the same time for a given player. A 'recurring' reward will only repeat until the next defined reward time is reached, and only one 'recurring' reward is ever active at one time.

/ontime rewards list [tags]

shorthand: '/ontime rw l [tags]'

List the currently configured OnTime Rewards. The 'RewardID' used in other commands is provided by this command. If the ‘tags’ keyword is used, the RewardTag for each reward will be shown.

/ontime rewards next

alternative: '/ontime online next' Displays the time until and value of the next reward to be issued to each player currently online.

/ontime rewards purchase <rewardID/rewardTag> <playerName>

Executes a purchase of a shop reward with the specified ID/Tag for the specified player. This command requires the 'ontime.rewards.admin' permission and is intended for admin/moderator use, not player use. The reward specified must be a Points or Econ Shop reward, and the player must have sufficient points or funds available for the reward to be successfully issued.

/ontime rewards purge <rewardID/rewardTag>

Makes an existing reward a 'reward' to be issued when a player is purged from the OnTime database. Since a player is being removed due to lack of play, the only 'reward' type that makes sense is a 'command' reward. Using this function an administrator can define a 'command reward' in the rewards.yml , and then these commands can be executed on the player at the time they are purged. This could be used to remove players from other plugins' records such as a permission plugin.

/ontime rewards recur <rewardID/rewardTag> {[count=]<count>}{<dd>d <hh>h <mm>m}

Makes an existing reward a recurring reward at the interval specified by <dd> = days, <hh>=hours, <mm>=minutes. The rewardID is the order number provided by the '/ontime rewards list' command. This is only applicable to command, econ, item and xp reward types. The difference between 'perpetual' and 'recurring' rewards is that 'perpetual' rewards are given forever once the start Total OnTime is reached, and therefore multiple perpetual rewards can be active at the same time for a given player.

A 'recurring' reward on the other hand can have a limited number of occurrences, and only one 'recurring' reward is ever active at one time. If the <count> parameter is specified, the reward will repeat at the recurring interval for number of times specified by count=<count>. If <count> is not specified then the recurring reward will repeat until the next defined reward time is reached, but in this case if the 'recurring' reward is the last one defined it will continue as if it were a perpetual reward.

/ontime rewards refer <rewardID/rewardTag> {[source/target]} {[count=]<count>}

shorthand: '/ontime rw refer <rewardID/rewardTag> {[source/target]} {[count=]<count>}'

Identifies a reward as a 'referred by' reward. The specified total OnTime for the reward is the total OnTime the referred player must play before the reward(s) will be issued.

Referral Source Rewards

A 'source' reward is a reward to be issued to player that 'referred another ('target') player. If neither 'source' nor 'target' is specified in the command then 'source' is assumed. Multiple referral 'source' rewards can be defined.


For 'source' rewards a 'count' can be specified. When this is done the reward will be issued to the source player only after they have achieved the specified number of successful referrals of that many other players.

Referral Target Rewards

A 'target' reward is a reward to be issued to the payer that was referred by another ('source') player. (This is the player that executes the /referred by <playerName> command.) Multiple referral 'target' rewards can be defined.
A 'count' is not applicable to a referral target reward.


/ontime rewards remove <rewardID/rewardTag>

shorthand: '/ontime rw rem <rewardID/rewardTag>'

Removes the reward with the specified rewardID or RewardTag from the reward set. The rewardID is the reward order number displayed in the '/ontime reward list' command output. Please note that new 'order numbers' are reassigned after each removal, so be careful when removing multiple rewards at one time.

/ontime rewards shop [econ/points] <RewardID/RewardTag> <amount>

Establishes a reward as a ‘shop’ reward that can be purchased through ‘shop signs’ created with the companion plugin “OnSign”. A reward shop can be “points” or “economy” based, as specified. The RewardID is the numerical identifier that can be found by executing the ‘/ontime rewards list’ command. The <amount> is the cost in “points” or “econ units” needed to purchase the reward.

/ontime rewards single <rewardID/rewardTag>

Makes an existing reward a single occurrence reward. The rewardID is the order number provided by the '/ontime rewards list' command.

/ontime rewards set <rewardID/rewardTag> [delta/login/ontime/real] <player name> {<dd>d <hh>h <mm>m}

Sets an individual (indi) reward for the specified player. The rewardID is the order number provided by the '/ontime rewards list' command, and can be any reward in the reward list. The time setting for automated execution of the reward specified by <rewardID/rewardTag> will be replaced with the relative time specified as <dd> = days, <hh> = hours, and <mm> = minutes. This relative time will be interpreted as:

  • delta = Reward will be issued when the player has been online for the specified amount of time longer from their current Total OnTime
  • login = Reward will be issued on the player's next server login. (<dd> <hh> <mm> are not needed)
  • ontime = Reward will be issued when the player's Total OnTime reaches the specified time.
  • real = Reward will be issued the specified amount of real (server) time in the future. If the player is not online when this time is reached, the award will be issued on the player's next login to the server.

/ontime rewards top <rewardID/rewardTag> [play/point/refer/vote] [daily/weekly/monthly/total] <startPlace> {<endPlace>}

Makes an existing reward a "top player" reward. At the start of each new day the system will check for 'top' rewards and if configured will issue rewards to the 1st, 2nd, 3rd, etc. player in that list, per the configuration.

Top rewards can be issued for having the most playtime (play), 'loyalty' points, votifier votes (vote), or player referrals (refer). These rewards can be issued for daily, weekly, monthly, or total stats. ('top points' only works for total, and not for daily/weekly/monthly.)

For this command, the <rewardID> is the order number for the intended 'top player' reward, as provided by the '/ontime rewards list' command. [play/vote/refer] specifies what statistic is to be rewarded, and [daily, weekly, monthly, total] indicates which 'top list' should be used to determine which player's get rewards. <StartPlace> is a required parameter and is the place ("1"st, "2"nd, "3"rd, etc.) that is to receive the reward. The optional <EndPlace> can be specified and all places in the range between and including <StartPlace> and <EndPlace> will receive the reward.


/ontime rewards votifier <rewardID/rewardTag> {[count=]<count>} {[perpetual/single]}

Makes an existing reward a "votifier" reward. If you have installed the votifier plugin, and set up votifier via websites such as PlanetMineCraft or MineStatus, any OnTime Reward designated as a Votifier reward will be issued to a player when they cast a vote. The reward will be issued based on the target timeframe set for reward. So it is possible that a player may be rewarded for their vote only if they have also played on the server for the time specified. Defining the reward with a time of 0 Days, 0 Hours, 0 Min will issue the reward immediately upon casting of the vote.


If a "count" is specified when a reward is designated as a 'votifier' reward, it will not be issued to a player until they have made the specified number of votes for the server. By specifying “perpetual” or “single” in conjunction with the “count”, the admin can control if the reward will be issued only once (single) when the count is reached, or issued every “x” votes (perpetual) where “x” is the “count”. “Perpetual” is the default if nothing is specified.

One of the benefits of the OnTime solution for Votifier is that the player does NOT have to be online at the time the vote is cast. If they are offline OnTime will issue the reward upon their next login.

/ontime save

Performs a forced save of in-memory data to disk storage files. (Configuration allows for scheduled saves to occur, and a save is always done on server shutdown.)

/ontime set [days/first/points/total] <player name> {<# points>}/{<dd>D} {<hh>H} {<mm>M}

'set days' will set the player's different days on to the number of days specified by <dd>D

'set first' will set the player's fist login timestamp to be <dd> days prior to the current day. Time will be set to midnight.

'set point' will set the player's point total to the value specified.

Example: /ontime set points Edge209 100

'set total' will set the player's Total OnTime to the time specified by <dd>D=days, <hh>H=hours, and <mm>M=minutes.

/ontime subtract [point/total] <player name> {<points>/<dd>D <hh>H <mm>M}

Allows an admin to subtract values from existing players' total playtime and point data.

Subtracting Points

Example: /ontime subtract points Edge209 100

In this example the admin is subtracting 100 points to Edge209's point total.

Subtracting Total Time

Example: /ontime subtract total Edge209 1D 8H 30M

In this example, the admin has decreased Edge209's total OnTime (play time) by 1 day, 8 hours, and 30 minutes.

/ontime suspend {<dd>D} {<hh>H} {<mm>M}

Suspends OnTime functions for the time specified. If no time is specified it will default to a 10 minutes suspension. When suspended OnTime will not track player time, and it will issue no rewards. This function allows admins to make adjustments to OnTime rewards etc. without having to worry about what it means to players active on the system at that time.

/ontime test login <player name> <time offset>

Adds a ‘player’ to the OnTime data. <time offset> can be a positive or negative number.

If <time offset > is positive the ‘player’ login time stamp will be <time offset> hours prior to the current (command execution) time, and their total OnTime will be set to <time offset> hours.

If <time offset > is negative the ‘player’ login time stamp will be <time offset> days prior to the current (command execution) time, and their total OnTime will still be set to <time offset> hours.

If <time offset> is zero the ‘player’ login time stamp will be the current (command execution) time, and their total OnTime will be still be set to zero.

This was originally added for development purposes, but I thought it might have some use on a player server. (Make your server look more popular that it really is …. ;-))

/ontime test yesterday

This will change the 'day' for the recorded today OnTime data to the previous day. After this is done the next player login/quit event or server reset may result in the auto generation of a 'daily/weekly' report and clearing of the daily data file for a 'new' day/week.

/ontime test today

This will force OnTime to perform a check to see if a new day has started. This normally happen automatically at Midnight. If used in conjunction with /ontime test yesterday an administrator can test functions such as auto-report generation, and daily/weekly/monthly/total top reward generation, without having to actually wait until midnight.

/ontime test votifier <playerName> <vote source>

To OnTime this command will make it look like the specified player issued a vote from the specified source (website name e.g. "PlanetMineCraft"). Any defined votifier rewards will be issued to the player if this command is used.

/ontime uuid [clean / find / merge / purge / replace] {<player name 1> <player name 2>}

This set of commands were added to help the transition into the utilization of UUIDs, instead of player names, as the main identifier for a player. Because OnTime existed before any UUID support was introduced by MC, there is a lot of 'old' OnTime data out there will the UUIDs are still missing (or null).

CLEAN: This keyword will do the following:

  • Remove any records that have a uuid=null and playtime=0
  • Remove any duplicates where there is a single player name but one record with uuid='null' and one uuid=<valid uuid>. In this case the uuid=null record will be dropped.
  • Remove any duplicates where there are multiple instances where playername and uuid are both the same in the entries, and the playtime and logintime are also the same.
  • Any duplicates that don't meet these criteria will be reported in the console, but they will not be removed automatically.

NOTE: For systems with very large player databases it can take a very long time for this process to complete, so it is recommended that it only be run off-hours, or when the server is very lightly loaded with players. While this is running OnTime data collection for online players will suspended, and players will not receive credit for time play, receive rewards, get vote credit, etc.

Example: /ontime uuid clean

FIND: This keyword will attempt to find all missing UUIDs (null) based on player names, by contacting Mojang's online UUID database. Only records missing UUIDs will be impacted by this command.

Example: / ontime uuid find

MERGE: This keyword combines records for the specified player name(s)

  • The various play time values (total, daily, afk, etc.) will be summed.
  • Counts for votes cast, referrals, etc. will also be summed.
  • The earliest (non zero) first login will be retained, as well as the latest 'last login' time stamp.

If a single player name is specified, any records found with the same UUID as the specified name will be merged. The specified name will be retained for the final result. This use of the command is only supported for systems using MySQL for player data storage.

Example: /ontime uuid merge edge209

If two player names are specified records which contain the two player names, regardless of the UUIDs, will be merged into a single record. The second player name specified, and its associated UUID, will be retained for the final result. This command use is supported for by MySQL and YML storage of player data.

Example: /ontime uuid merge edgeOLD edge209

PURGE: This keyword will result in the removal/deletion of all player records that are without a UUID. This command is more impacting than the "clean" command as it does not take into account any other elements of the players record.

Example: /ontime uuid purge

REPLACE: This keyword is similar to the "FIND" keyword, but it will impact all OnTime records replacing all stored UUIDs along with any NULLs found.

NOTE: For systems with very large player databases it can take a very long time for this process to complete, so it is recommended that it only be run off-hours, or when the server is very lightly loaded with players. While this is running OnTime data collection for online players will suspended, and players will not receive credit for time play, receive rewards, get vote credit, etc.

Example: /ontime uuid replace

/referred undo <player name>

This command removes the flags the prevents a player from issuing additional 'referred by' commands. If the undo is for a 'referred by' command that has not yet resulted in the issue of the associated rewards, the rewards will be cancelled. If rewards have been issued or are already pending for the referral source, they cannot be undone or cancelled. See here for more info.


Comments

Posts Quoted: