Skip to content

PlayTimeManager is a plugin designed to track and store players' playtime using SQLite and HikariCP.

Notifications You must be signed in to change notification settings

TheGaBr0/PlayTimeManager

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

alt text


Hello and welcome to PlayTimeManager! I initially created this plugin for the server on which I am currently a developer. We don't have thousands or hundreds of players, but we had to find a way to track players' playtime to promote one whenever it reaches a certain amount. I looked around on the web, but I couldn't find any plugin that was able to satisfy our issue: we needed a playtime plugin, somewhat efficient, that could automatically execute a specific task like promoting a player through Luckperms. Well, that's what this plugin is supposed to do!

I thought this could be useful to other server administrators as well, so I decided to share it on Spigot! If interest arises, I'll keep it updated happily :) ## What's PlayTimeManager? PlayTimeManager is a high-performance plugin that tracks and rewards player engagement through efficient playtime monitoring. It features a comprehensive goal system where you can: - **Set** custom playtime goals - **Grant** automatic permissions and group promotions (Thanks to a LuckPerms integration) - **Execute** custom commands upon goal completion - **Play** celebration sounds - **Display** custom messages

The plugin's efficiency comes from smart technical strategies:

  • Caching: Intelligent in-memory caching reduces database calls and computational load.
  • Database Optimization: Uses lightweight SQLite for fast, low-impact storage with high-concurrency reads.
  • Connection Management: HikariCP ensures quick, pre-established database connections with no delays. This ensures lightning-fast performance with negligible server resource consumption.

PlaceHoldersApi (PAPI) is supported, allowing you to create leaderboards or let players view their own playtime through the use of placeholders.

While the plugin primarily supports English, player-facing messages can be customized in the config.yml. It also includes an automatic configuration update system that utilizes a config-version field, ensuring your config.yml file stays up to date with the latest settings while preserving your customizations. Additionally, the plugin seamlessly manages database and file updates, with a backup automatically created before any updates to the database. This ensures that your data remains secure while benefiting from the latest features and improvements.

Both Paper and Spigot are supported.

Commands and permissions

For a complete list of commands, permissions, and placeholders, please visit the PlayTimeManager Wiki.

Examples of use

Commands

  • /playtime TheGabro add 1d -> This command will manually add 1 day of playtime to the specified player.
    If a player with playtime.others.modify permission tries to get the playtime of TheGabro (who has a manually modified playtime), he will also be shown the added/removed time in addition to the normal time.
    alt text
    Multiple time formats at a time are supported (e.g. 1d,4h,3m,4s)
  • /playtimepercentage 1d:
    alt text
    Multiple time formats at a time are supported (e.g. 1d,4h,3m,4s)
  • /playtimegoal set veteran time:40d:
    alt text
    If not specified, the goal will be set to inactive by default. This means that the plugin will not check for its completion until it is set to active through GUI, command, or by editing the veteran.yaml config.

Placeholders

alt text
alt text

To do

  • Anti-afk system?
  • Add possibility to give custom items upon goal completion

About

PlayTimeManager is a plugin designed to track and store players' playtime using SQLite and HikariCP.

Topics

Resources

Stars

Watchers

Forks

Packages

No packages published

Languages