ActiveTime ⏳ The Simple Playtime Logger

Hate to repost the same question, but how is it going with being able to check for ontime for a week/month. Our server is kinda needing it, so I am just double checking. :slight_smile:

Whoops! I’ve gotten a bit carried away with some of the other projects I’ve been working on and completely forgot about this! Are you able to create a GitHub issue for this, I tend to loose tracks of things otherwise xD

1 Like

Alrighty, let’s rock and roll!

A per requested, this version introduces /ActiveTime Report, a command that generates an activity report for a use based on the available log files. There’s still a lot more things I’d like to do with this system, but this will handle most use cases and give some real testing to the new system. Future statisticians; enjoy!

I’ve also added in a bit of new system to handle limiting the time a player can be on the server by using permission options. For those of you that have a use for it, information on how to set that up can be found here.

Back by popular demand, we also have the return of ye o’l /ActiveTime Top in the form of /ActiveTime Leaderboard - it does basically the same thing, but somehow better!

Changelog:

  • Added system to generate user activity reports
  • Added system to limit user playtime
  • Added commands Leaderboard and Report
  • Cleaned up outdated code
  • Improved message formatting
  • Change some code to async (yay performance!)

Issues should be reported with the version [1.2.1]


@Elrol_Arrowsend That should take care of what you need! If you have any other suggestions, feel free to let me know or (better yet) create a GitHub issue so I don’t forget again xD

1 Like

After scrambling around through a jungle of issues, I’m pleased to say that ActiveTime 1.2.4 is here and better than ever! This version fixes a lot of bugs and issues present since 1.2.1, so it is strongly recommended to update - plus, it’s like twice as cool!

If you are using Nucleus, please update to v1.1.3 (1.10.2 & 1.11.2) or v1.2.0-pr1.2 (1.12.1) as an error dealing with checking a player’s AFK status on login has been fixed.

Changelog:

  • Fixed reports being bugged (a lot) and cutting off dates
  • Reports now display a list of days, weeks, and months
  • Changed some formatting aspects for viewing pleasure
  • Converted command responses to PaginationLists
  • Fixed Report’s signature in the documentation

Issues should be reported with the version [1.2.4]


@yepidoodles This should address the armada of bugs you’ve found. Thanks for helping me test things out and make sure this release is perfect! :heart:

@anon34495435 Likewise, the issues you’ve been experiencing have been fixed (I swear!) for this version. Please update Nucleus to fix the NullPointerException issue.

@Elrol_Arrowsend With report working properly, you should be able to view a player’s activity for the current day, week (starting on the past Sunday), and month (the 1st). You can now also view a list of individual days, weeks, and months in the report, however you’ll have to be on the server as it uses Pagination.

3 Likes

Can we add rewards to playing a certain amount of time?

IE -playing for 1 hour gives 1k money
-playing for 10 hours can give a crate key
-playing for 20hours can do a broadcast

You can handle that cumulatively through the use of Milestones. This only applies to a player’s total activetime, not daily - I’ll be implementing that when I make the update to API 7.

So I am updating from 1.0.4 but when I do the plugin just creates a new directory and does not carry over the players play time. Is there a way to import data from the old format? I have tried to update from 1.0.4 => 1.2.0 too but no luck

There is not a way to import previous data. These versions were created months apart, and v1.2.0 implements a couple features that do not merge nicely with the logs from v1.0.4 (daily logs, tracking both activetime and afktime, milestones). For that reason, I opted against having a converter because the resulting data wouldn’t be accurate (and, admittedly, I may have been a bit lazy :disappointed_relieved:).

If it’s a necessity, PM me the old configuration file and I can convert it into the new format for you.

1 Like

At long last, API 7 has finally come to ActiveTime - rejoice!

In addition to API 7, this update also has some internal improvements and cleans up some messages, such as empty results in reports. For developers, I have also introduced a simple ActiveTimeAPI class with a variety of methods for getting activity information about a user.

Finally, I have reached the point where I no longer have any ideas or projects left for ActiveTime that I feel capable of implementing. I’m open to any ideas people have for new features and ways to improve ActiveTime, but beyond that releases will be primarily limited to bug fixes.


Changelog

  • Update to Sponge API 7
  • Added a developer API
  • Cleaned up activetime/afktime calculations
  • Reports no longer show empty days
  • Fixed various formatting/spelling issues

GitHub Release: ActiveTime v1.3.0


@anon34495435, @Krosta8, @amiroslo: Enjoy API 7 - it’s certainly been long enough!

@Eufranio: I took some steps to set up a basic API that documented and contains a majority of the actions you might need. If there’s something I’m missing, feel free to let me know ^^

2 Likes

Nice!
Thank you a lot!
With any problem, I will give you feedback immediately.

Good morning everyone! Today’s update comes with a variety of internal changes as well as some external improvements helping us move towards the next major release. One of these features is the daily report system which shows an activity log for the entire server - give that one a go! I’d also like to point out that while this build was designed for API 7, it should work fine on API 5 and 6 - if that’s not the case, please let me know and I’ll look into a fix.

The next version from here might end up being 2.0.0 - I have a couple things I’d like to do, but the largest of which is going to be moving log data into a database. I’d also like to keep track of when a player is active, afk, or simple offline rather than just an amount and provide some interpretations on this as well. A version that saves this data should be released by the end of the year, although it may be a bit longer before I have anything set up internally to process it - storing the data is pretty simple, but displaying it in a readable way is the tricky part.


Changelog:

  • Added a variety of utility methods to simplify code
  • Added daily reports of users activity
  • Made preparations for future major changes
  • Most command arguments now have default values
  • Reports now have an upper limit of 365
  • Fixed formatting of dates and some coloring issues (they absolutely refuse to stay inside the lines!)

GitHub Release: ActiveTime v1.3.1

1 Like

Not sure if directly updating from 1.0.4 to 1.3.1 had anything to do with this, or maybe the 1.3.x versions just don’t work on API 5/6?

An issue like this should have been caught during compile, and sure enough I can’t replicate this on my server (5.2.0-2731). I think your Sponge version is outdated and thus missing these methods.

In the slight chance that this isn’t the case, please migrate this over to an issue on GitHub that includes the versions you’re running and the stacktrace of the error, which should have been printed to console by Sponge.

1 Like

I’m on SF 5.2.0-BETA-2698, one version behind 2731

Not sure if updating would fix it as it would be such a coincidence, but I’ll try that first.

Hello, I tried setting up your plugin today, but I have some problems getting the command to work.

I am using LuckPerms for permissions and have given appropriate permissions as described in the setup. However, none of the commands work unless the permission “activetime” or “activetime.*” is given.

Currently I have the default group with the permissions “activetime.log.base” and “activetime.check.base”, moderators inherint these and include “activetime.check.other”. However, none of the groups are able to use any variant of “/atime” or “/activetime”.

The plugin seems to be working though, it is just the command that is refusing to work with the described permissions.

Thanks in advance,
Hisha

EDIT: Version info
spongevanilla-1.11.2-6.1.0-BETA-27
ActiveTime-s5.2-v1.3.1

You’re missing the activetime.base permission, which is required for the parent command of /activetime. See the documentation for more info.

As a further note, * type permissions are not supported in Sponge - activetime is the replacement for activetime.*. LuckPerms supports this because it has a Spigot version as well, but just note it’s an implementation feature and not one native to Sponge.

2 Likes

Thank you for the reply, of course I should have checked the documentation, my bad.
I just followed the OP and assumed that would be enough.
Woops.

Hiya everyone! I’m going to type quickly as I’m on a bit of a time limit xD

This version contains a couple fixes and minor updates to make things a bit smoother. This should also be universal between API 5, 6, and 7, but if you find an issue let me know so I can create a separate build.

I’ve also been building a bit of a roadmap for future versions, one of which is repeatable milestones (aka, every hour). Additionally, I’ll also be looking migrating things to a database and store the exact times a player has been active - that’ll probably a v2.0.0 there!


Changelog:

  • Updated to Sponge 7.1.0-SNAPSHOT
  • Cleaned up in-game documentation
  • Fixed Check testing the target instead of source (Fixes #10)
  • Report no longer requires the target to be currently logged
  • Added/fixed checks on config variables
  • Loading milestones no longer print a false error message

GitHub Release: ActiveTime v1.3.2


@ryantheleach I met my end of the bargain - where’s your plugin? :wink:

2 Likes

ActiveTime has been migrated to Ore! To stay up to day with new releases, please keep an eye on the following:

See you all there!

3 Likes