BaconTime - A very simple playtime tracker that allows you to also import data from ActiveTime

This is a discussion topic for the Ore project, BaconTime. View the full project on Ore for downloads and more information.


BaconTime

  • A very simple playtime tracker that allows you to also import data from ActiveTime.
  • Made for Sponge API 7.2.0
  • Requires Nucleus (Working on both api 1.0 and 2.0 since version 1.1.0)

1.Commands and permissions

1.1 Commands

  • /playtime check (Allows you to check your current afk or active time. Or specify a user to check)
  • /playtime leaderboard <afk/active> (Shows you the leaderboard of top active or afk players)
  • /playtime reload (Reload the plugin)
  • /playtime import (Import data from another plugin into this one. Currently only activetime is supported)
  • /playtime set <afk/active> (Set someones afk or active time. Amount is in seconds)
  • /playtime removeall (Removes a players milestones and all activetime, afktime and runs all removal commands of milestones)

1.2 Permissions

  • bacontime.command.base (Base command)
  • bacontime.command.leaderboard (Leaderboard command)
  • bacontime.command.check (Check command)
  • bacontime.admin.reload (Reload command)
  • bacontime.admin.import (Import command)
  • bacontime.admin.set (Set command)
  • bacontime.milestones (Required for users to get milestones. Example bacontime.milestones.banana would allow the user to reach the banana milestone)
  • bacontime.setting.checkmilestonetime (Required to view time left till milestone is reached in the check command)
  • bacontime.admin.removeall (Required to use the removeall command)

2.Config

# The aliases the plugin uses for commands. The first value is always displayed when running the base command!
# Requires server restart to change!
 Aliases=[
  playtime,
  bacontime,
  bt,
  ptime
]
#Intervals {
   # The interval in seconds between milestone checks, will be disabled if there are no milestones.
   milestone=180
   # The interval in seconds between saving the playtime data.
   save=120
   }
#milestones {
"example_milestone" {
    commands=[
        "give <player> minecraft:apple 10",
        "msg <player> Apple time!"
    ]
    commands-On-Remove=[
        "ci <player>",
        "msg <player> Apple time is no more since I ate your inventory!"
    ]
    repeatable=true
    requiredTime=3600
}

2.1 Placeholders

  • Note that all of these need to be surrounded with <>. These are the placeholders used in the milestone commands.
  • playtimeHours (Replaced with amount of hours the player getting the milestone has played (Active time))
  • player (Replaced with username of the player getting the milestone)

3.Examples

4.Support

  • For support join my discord server and tag me in the #general channel or pm me (kristi71111 | BacoNetworks#0001)

Thanks for this plugin! I was wondering how the milestone will get triggered for both repeatable and non-repeatable if the player already has a certain amount of time logged before the milestone rewards were set.

For simplicity, for example, if repeatable is true, requiredTime is 60 and the player already has 180 seconds play time. Would they get 3 rewards straight off the bat or does it only happen on the next milestone at 240 seconds? How about if repeatable is false?

Hope you don’t mind me asking here, as it would help other people understand if they also have the same question and wanna try the plugin :> Also would be nice to have a time-played placeholder for the commands so something like msg <player> You have played for <playtimeHours> hours in total! Congratulations, here's an apple! or something like that

For the milestone as long as he has enough time it should trigger regardless of when it was added into the milestone rewards.

In your example it would only get triggered once if it was repeatable and added after someone reached the required amount. So they would only get one reward straight off the bat. Same thing for repeatable false it will give them the milestone on the next milestone check cycle.

I’ll add the placeholder on next release. Hopefully this anwsers your questions :slight_smile:

1 Like

A new version has been released for BaconTime, it is available for download here.


  • Change colours on base command
  • Implement permission node that is required to show how much time is left till a milestone on /playtime check.
  • Actually get the config defined alias and display/run commands from that on base command.
  • Run importing data into hashmap async.
  • Remove watermark on check command
  • Better leaderboard formatting
  • More logical milestone checking
  • Add placeholder to commands.
1 Like

I see, that makes sense. Thank you! and thanks for the update as well!

A new version has been released for BaconTime, it is available for download here.


Fix permission check on showmilestonetimeoncheck

A new version has been released for BaconTime, it is available for download here.


Adds support for nucleus 2.0 and above.

A new version has been released for BaconTime, it is available for download here.


Added support for nucleus api 1.0 and api 2.0 all in one build.

A new version has been released for BaconTime, it is available for download here.


Add ability to run removal commands when the /playtime removeall command is ran. This command will wipe a players playtime and all milestones.

A new version has been released for BaconTime, it is available for download here.


Better handling of supporting multiple nucleus api versions.

A new version has been released for BaconTime, it is available for download here.


Fix import command not adding command on remove

Thanks for keeping us posted!