OnTime

/ontime <playername>

OnTime

Now every MineCraft server can track the playing time (current login, daily, weekly, monthly, and all time) for all players with this powerful, full function plugin. With OnTime a “top 10” list can be generated in game, current and total playing statistics can be displayed (also in game), and daily/weekly/monthly reports of all players can be generated and viewed (off line). Administrators can define OnTime Rewards which will result in econ amounts, items (including enchanted items and potions), item kits, group add/delete, group promotion/demotion, permission grant/denial, command executions, personalized messages, and XP to be automatically issued to a player when they have achieved a specified amount of daily, weekly, monthly, or total playtime on the server. Rewards can also be issued when players refer other players to the server, voted for the server, played for a specified number of different days, or they achieve status as a top player. A built in Votifier Listener makes issuing of rewards for web-site voting a snap. Vault is used so OnTime Rewards and permissions are supported by multiple economy and permission plugins.

Plugin Notes

NTR

Online Support

If I am online you may find me here for IRC

bpermissions plugin compatibility

Please make sure you are using a version of Vault (v1.2.24) or later in order to maximize the compatibility between OnTime and bpermissions.

Integration with AFK Terminator

I have created a new, independent plugin "AFKTerminator" that will detect and potentially eliminate AFK Machines. An "AFK Machine" allows a player to avoid "AFK" detection through continual movement. See the [|Other Function] page for more details.

Integration with OnSign

There is a second companion plugin for OnTime, which I have named OnSign. OnSign allows players to create MC signs that will show a player's current online/offline status, time of last login/logout, and various OnTime play time statistics.

OnSign and OnTime version compatibility

  • OnTime v3.8.1 or earlier will work with OnSign v1.0.0
  • OnTime v3.8.2 or later will only work with OnSign v1.1.0 or later

DAT File Support

SUPPORT OF "*.DAT" FILES FOR PLAYER DATA WAS DISCONTINUED WITH V3.5.0. IF YOU ARE PLANNING TO UPGRADE FROM ANY VERSION EARLIER THAN V3.5.0, AND YOU ARE STILL USING .DAT FILES FOR STORAGE, YOU MUST DO A DATA CONVERSION IN ORDER TO RETAIN COLLECTED PLAYER DATA BEFORE YOU UPGRADE TO VERSION 3.8.x.

IMPORTANT NOTES on V3.8.1 & V3.8.2

The recommended setting in the rewards.yml file for the "worlds:" keyword has changed/been expanded. Set this list as follows:

  • " - global" - If your permissions plugin supports a "global" group/player configuration files.
  • " - all" - If your permissions plugin supports multiple group/player configuration files (e.g. one per wrold)
  • To a list of specific worlds if your permission plugin supports multiple group/configuration files (one per world), but you want rewards to only be active in certain worlds.
  • Click here for more information

NOTE: In V3.8.0 I had introduced the use of the word 'default' for the "worlds" setting. I've decided that was confusing, when I really meant 'global'. OnTime will still handle 'default' and will update your rewards.yml file automatically to 'global'

IMPORTANT NOTES on V3.8.0

  • If you are upgrading from V3.6.1, I have reverted back to an internal version of the SQLibrary, so if you added SQLibrary.jar when you upgraded to OnTime v3.6.1, you can now delete that jar from your plugin directory.

  • This release supports CraftBukkit versions 1.5.2, 1.5.1, 1.4.7, 1,4.6, 1.4.5, 1.4.4, and 1.42 !

  • When upgrading from v3.7.2 or earlier, this version will perform auto updates to the ontime/config.yml ontime/rewards.yml and ontime/output.yml files. It is recommended that you make backups of your current copies of these files before installing and running this version for the first time.

  • For a detailed list of changes see here.

Features:

(Items in BOLD are new in the latest 3.8.x release of OnTime)

Player Statistics

  • Display your own OnTime data: (configurable) plugin default: current login, daily, weekly, monthly, and total time on the server
  • Display anther player's OnTime data: (configurable) plugin default: days since first login, different days on server, current login time, AFK status, AFK time for login, today, week and month; current day, week, and month play time, total OnTime, next OnTime reward(s), and voting and referral statistics.
  • Display all online players’ current session and total time
  • Display ‘top #’ players, ranked by play time
  • Display ‘top #’ players, ranked by total time for the day, week, and month
  • Display 'top #' players who have voted for your server for today, week, month or total
  • Display the 'top # sites' to see where the votes are originating
  • Display the 'top #' players who have referred other players for today, week, month or total
  • Display list of players referred by a specified player.

Rewards

  • Define rewards issued to players for their time played on the server:
  • Cash! (Economy)
  • MineCraft Items
  • Enchanted Items
  • Potions
  • Item sub-types (e.g. Chiseled Stone)
  • MineCraft Item Kits
  • Permission Group Add/Remove
  • Permission Group Promotion/Demotion
  • Give Permissions
  • Take Away Permissions
  • Execute (almost) any command
  • XP (experience points)
  • Send a message


  • Issue Rewards based on daily, weekly, monthly, or total playtime
  • Define Econ, Item, Command, and XP rewards as recurring or perpetual
  • Define rewards for referring new players to the server
  • Define reward to be issued when a player identifies who referred them.
  • Define rewards to be issued when players vote online for your server (via Votifier)
  • Definition of Individual (or indi) Rewards, which can be issued to a specific player at a specified future time.
  • Issue some rewards to only members of certain permission groups. e.g. donors
  • Issue rewards to the 'top' playtime, voting, or referring players daily, weekly, and/or monthly
  • Give ‘temporary’ rewards such as rank/group memberships or permissions
  • Enable/disable display of 'reward issued' messages to all players
  • Enable/disable display of ‘reward issued’ messages on a per-reward basis
  • Customize displayed ‘reward issued’ message on a per-reward basis
  • Broadcast a message to all Online players when someone else receives a reward. (Good way to advertise rewards issued for voting and referring players.)
  • Display of the next rewards to be issued to all online players
  • Ability to suspend issue of rewards while a player is AFK.

Messages

  • Pre-define messages that can be issued to players at login, or based on time
  • Define messages adhoc (on the fly) that can be issued to players at login, or based on time
  • Assign customized messages to be displayed when rewards are issued
  • Send a message to a player based on play time (daily, weekly, monthly, or total play time)
  • Define 'welcome' messages to the player, and server announcements on player's login showing OnTime data
  • Enable/Disable server broadcast announcements per player via permissions node
  • Manage messages set via edit of .yml file or in-game/console add/remove/list commands.

Manipulate a Player's Data

  • Set a player's total OnTime
  • Set a player's number of different days on server
  • Set a player's first login to the server date
  • Add time to a player's total OnTime
  • Remove a player from the OnTime data files
  • Configure plugin to exclude players time 'AFK' from total and daily/weekly/monthly calculations
  • Import player names and their total OnTime (play time) data from YML files, OnTime Reports, or LogBlock plugin.

Generate Reports

  • HTML and TXT Report format options
  • Generate a report file of all players total time and time stamp of last login event
  • Generate a report file of all players time on your server today, for the week, or for the month
  • Generate a report of player's AFK time daily, weekly, and monthly
  • Configure the 'first day of the week' for weekly reports
  • Configure the 'first day of the month' for monthly reports.
  • Auto generation of total, daily, weekly, and monthly reports

Manage The OnTime Plugin

  • Automated detection of the availability of a new version of OnTime
  • Select method for storing the OnTime player data: .yml files (default), or MySQL database
  • Auto-purge inactive or players with low total OnTime from the data files
  • Scheduled saves of OnTime data to disk
  • Auto update of all online players data, file save, and data purge on server shutdown/reset
  • 'test’ commands to simulate login/logout events; creating fake OnTime records; test daily reports; test votifier rewards
  • Logging of OnTime auto purge activity, player login and quit events, and reward system events
  • Manual and Automated Generation of Backup versions of OnTime '.dat' files.
  • Import playername and total OnTime data from a .yml file.
  • Importplayername, total OnTime and last login data from the 'logblock plugin' MySQL database.
  • Configure OnTime Report file names and location
  • Administrator defined "help" information that players can easily access.
  • Suspend/Resume all OnTime activity while administering rewards or other OnTime data manipulation
  • Enable/Disable/Configure OnTime LogFile and Console data in game or from the console

Other Plugin Integration

  • Use of Vault for support of multiple economy and permission plugins [REQUIRED]
  • Integration with Vault Permissions for group changes and permissions add
  • Import playername, total OnTime and last login data from the 'logblock plugin' MySQL database.
  • Issue rewards when players vote for you server on website which also support Votifier.
  • Integration with "AfkTerminator" for discounting time spent AFK while using an AFK Machine
  • Integration with OnSign, to display and auto-update player information on user defined signs.
  • API: OnTime offers an APIto allow other plugin integration with access to OnTime's collected data for player's time on the server.
  • Collection of OnTime plugin usage data via MCStats


Please see the pages for permissions, configuration, commands, etc.


Installation

  1. Place ontime.jar in your plugin folder
  2. Download vault.jar and place that also in your plugin folder
  3. (Option) Download a Vault supported permissions plugin and place that in your plugin folder
  4. (Option) Download and install the AFKTerminator plugin
  5. (Option) Download and install the [http://dev.bukkit.org/server-mods/votifier/files/9-votifier-1-9/|Votifier] plugin
  6. Modify permissions groups to enable OnTime functions. (click here for permission nodes)
  7. Reset your server

    If the optional Permissions plugin is installed:
  8. Edit /plugin/ontime/rewards.yml, listing the permissions groups from lowest to highest under the 'groups:' keyword

    If the optional commands rewards are to be used:
  9. Edit /plugin/ontime/rewards.yml, defining the commands that can be 'rewarded' under the 'commands:' keyword

    If the optional 'kit' rewards are to be used:
  10. Edit /plugin/ontime/rewards.yml, defining the kits that can be 'rewarded' under the 'kits:' keyword

    If the optional MySQL database is to be used to maintain the player data:
  11. Edit the /plugin/ontime/config.yml, enabling the use of mysql and setting up the definition of the MySQL database.

    If the you want to change the output the plugin sends a player:
  12. Edit /plugin/ontime/output.yml, following the instructions found in that file.

    If the optional OnTime Messages is to be used to displayed timed messages to players:
  13. Edit the /plugin/ontime/messages.yml, to add any pre-defined messages you need. (editing this file is not required to use this feature.)

  14. If the config.yml, output.yml and/or rewards.yml have been modified, then you must reload this data with the command "/ontime reload all"

Future Enhancements Under Consideration

  • See BukkitDev Tickets tab for OnTime

Feature Requests:

If you want to request a feature to be added to this plugin, or you think any of the above should be given a higher priority, please submit a ticket or vote for existing ones.

Please Leave Comments

I'd love to hear what you think (good and bad) about this plugin. It will help me know if it's worth keeping up on the maintenance. Thanks. Edge

Change Log

For a more detailed change log, see here.

V3.8.2

Compiled with Bukkit 1.4.7-R1.0; Java7; Vault 1.2.25
Fixes
  • No longer including patpeter sqlibrary. Replaced with a lighter set of sql functions

V3.8.1

Compiled with Bukkit 1.4.7-R1.0; Java7; Vault 1.2.25
Fixes
  • Fixed error where OnTime reports would fail for servers with >9999 player entries (Ticket#269)
  • Fixed Issue with promotion rewards happening inconsistently (Ticket #267, #264)
  • Fixed issue with ontime.top.exclude not working due to plugin timing error (Ticket #260)

V3.8.0

Compiled with Bukkit 1.4.7-R1.0; Java7; Vault 1.2.25
Functional Enhancements
  • Added "top ten" lists for votes and referrals on a daily, weekly, monthly, and total basis (Tickets #231, #160)
  • Added function to display the names of all players referred by a specified player (Requires MYSQL) (Ticket #150)
  • Added function to suggest possible player names, when name used in the "referred by" command is not in the OnTime database (Requires MYSQL) (Ticket #232)
  • Added function to find players in database 'like' a name, when the exact name is not found. When there are multiple possible matches, they will be displayed to the user of the 'ontime <playerName>' command. (Requires MYSQL)
  • Global (multi & mirrored) world support of permission and group rewards. (Group changes/promotion/demotion and permission add/remove applied equally to all worlds where rewards are enabled.) (Ticket #215)
  • Admin configurable output for "referred by" commands
  • Admin configurable output for when no OnTime record is found for a player specified in a command
  • Added basic API to allow other plugins to access some OnTime data
  • Added Automated backup of output.yml, rewards.yml, and config.yml when OnTime does auto updates to these files.
New Commands
  • ontime top <#> vote [total/today/week/month]
  • ontime top <#> refer [total/today/week/month]
  • referred list <playerName>
New Permission
  • ontime.referredby.list

When true a player is able to execute the "referred list <playerName>" command.

Fixes
  • Fixed issue where long player names (>14 chars) were losing their first character when added to OnTime reports. (Ticket #209)

You must login to post a comment. Don't have an account? Register to get one!

  • Avatar of Edge209 Edge209 Jun 19, 2013 at 11:56 UTC - 0 likes

    @Macro201115: Go

    I'll need more info to help figure out what is wrong. Please open a fault ticket and provide all of the requested info.

    Thanks.

    My plugins:

    OnTime - Playing time tracking, auto-reward system
    OnSign - Displays player online and playtime status on signs
    afkTermnator - Find/ punish players using machines to avoid AFK detection

    BFAK:90639269,cc8ede1c827ab863e33f253fde1eb070fa3a817f9e515f4fd7d7ba357cfc88da

  • Avatar of Macro201115 Macro201115 Jun 19, 2013 at 09:33 UTC - 0 likes

    I am unable to get exclusive to work, I have many many perm groups only 2 of which will get these rewards. they are teams and each have a votifier reward where they get the command points but ive tried every combination of permissions and groups config however everyone with the ontime.rewards.recieve get the rewards.

  • Avatar of Edge209 Edge209 Jun 19, 2013 at 04:48 UTC - 0 likes

    @BlueFusion95: Go

    Hi, if you enable OnTime logfile and console logging, you will see messages from the import function that may offer some clues as to why some players are not imported:

    /ontime logfile enable 1

    /ontime console enable 1

    The logfile will be plugins/OnTime/OnTimeLog.txt

    Please provide the entire output from the NPE, and that may help me figure out what is going on.

    I cant explain the large number of days, unless you can perhaps share some of your "lb-players" data for the players that get this large number.

  • Avatar of Edge209 Edge209 Jun 18, 2013 at 13:22 UTC - 0 likes

    @jorisk322: Go

    It is possible , but you would need to do some editing of the yml file to get it into the format recognized by OnTime. You will find that here:

    http://dev.bukkit.org/bukkit-plugins/ontime/pages/import-yml/

    You would need the "minutes" set to true, and get all of the player names under the "players" keyword and do some global replacement to add " - " in front of each line, and change the ":" to ",".

    I see there are flaws in my design here to handle cases like this, but I can't get around to fixing it any time soon.

    If you are struggling, you can send me an IM with a link to you player YML data file, and I can try to get it into the right format. But please give it a shot first.

  • Avatar of jorisk322 jorisk322 Jun 18, 2013 at 07:35 UTC - 0 likes

    Just to make sure: Would this be able to import my data from the legacy plugin (http://dev.bukkit.org/bukkit-plugins/legacy/)? It stores it's data in a yml file in this format:

    username:playtime

    I think it stores seconds played. If it's possible to import the data I'm going to be using this plugin for sure, because it has some awesome features.

    Fly - A simple flight plugin with permissions and adjustable flight speed

    BacktoSpawn - Teleport players to spawn on join

    Enhanced Max Players - Create reserved slots for special people

    BuyRandom - Give players a random reward for their donation

  • Avatar of Macro201115 Macro201115 Jun 17, 2013 at 10:27 UTC - 0 likes

    Hey fantastic plugin! just a few points that could help you. Basically everything that is hyperlinked on this main page can you add to your dev.bukkit side bar ie links to commands and permissions. Also from a developers side point adding pvp rewards would be great and if the config files could have all parameters editable from config the autogenerated formats are hard to interpret. however this is a must have i would say for any competitive server

  • Avatar of BlueFusion95 BlueFusion95 Jun 16, 2013 at 19:37 UTC - 0 likes

    For some reason, the LogBlock import is still not working correctly. For some reason, not every player is imported, even if none of their data is null. Furthermore, when trying to use /ontime top after a import it gives me an NPE.

    These are the commands I am using: /ontime import logblock (replace) < Tried both using and not using replace /ontime export mysql /ontime save

    I have tried so many different things, none of them working. I really want to move over to this plugin, but I have almost 8 months of playtime logged in logblock.

    Any help would be appreciated!

    - BlueFusion12

    EDIT: Furthermore, it seems to be randomly setting people's playtime to 15872 days, which is completely insane and was not previously in the logblock database.

    Last edited Jun 16, 2013 by BlueFusion95

  • Avatar of Edge209 Edge209 Jun 16, 2013 at 19:19 UTC - 0 likes

    @Slind14: Go

    global = if your permissions plugin supports only one set of groups/permissions for all worlds, then use this setting

    all = if your permissions plugin supports different groups/permissions for different worlds, then use this setting.

    In both cases each promotion, group added or removed, each permission added/removed by OnTime will be applied the same across all worlds.

    If you list out your worlds instead of using "all", any world not included in the list will have no reward capability.

    OnTime does not support different rewards for different worlds. Its all or nothing and all worlds with rewards enabled (in that list) are treated the same.

  • Avatar of Slind14 Slind14 Jun 16, 2013 at 14:29 UTC - 0 likes
    " - global" - If your permissions plugin supports a "global" group/player configuration files.
    " - all" - If your permissions plugin supports multiple group/player configuration files (e.g. one per wrold)
    

    I dont realy understand what u mean with this. Could u explain this more detailed?

    Im using PEX, and every player is in 3 groups. The groups are the same for every world. But i have different permissions for each world (same group).

    Last edited Jun 16, 2013 by Slind14

Facts

Date created
Feb 25, 2012
Categories
Last update
May 13, 2013
Development stage
Release
Language
  • enUS
License
All Rights Reserved
Curse link
OnTime
Downloads
33,145
Recent files

Authors