PlayerLogger
PluginMIT

PlayerLogger

PlayerLogger logs player joins, quits, commands, playtime, and online status to a SQLite or MySQL database and provides admin commands for statistics and management.

6
Downloads
0
Followers
2 months ago
Updated
📦
1
Versions

📖About PlayerLogger

PlayerLogger – Advanced Playtime & Command Logging

PlayerLogger is a lightweight yet powerful Paper plugin that logs player activity to a database, including joins, quits, commands, total playtime, and online status.

Designed for server administrators who need accurate tracking, moderation insights, or statistical data.

Supports SQLite and MySQL out of the box.

What Does PlayerLogger Track?

  • Player Join & Quit Events
  • Total Playtime (with live session calculation)
  • Online / Offline Status
  • Command Execution Logs
  • First Seen & Last Seen timestamps
  • Historical Session Data

All data is stored efficiently in a database with optimized indexing for performance.

Features

⚡ Optimized for Paper 1.21+

💾 SQLite (default) or MySQL support

🔄 Real-time playtime calculation

🌍 Multi-language support (English & German)

📃 Configurable command filtering (e.g., ignore /login, /register)

🧵 Async database handling (non-blocking)

🧹 Automatic offline correction after crashes

📈 Top 10 playtime ranking

✒️ Admin tools for adjusting or deleting data

Commands

/plog stats
/plog stats <player>
/plog top
/plog reload
/plog delete <player>
/plog add <player> <time>

Permissions included for each subcommand.

Permissions

Player Permissions

Permission Description
playerlogger.stats Allows viewing own playtime
playerlogger.stats.other Allows viewing other players' playtime
playerlogger.top Allows viewing the top ranking

Admin Permissions

Permission Description
playerlogger.Admin.reload Allows reloading the plugin
playerlogger.Admin.delete Allows deleting stored player data
playerlogger.Admin.add Allows viewing the top ranking

Database Structure

Tables:

player
sessions
command_logs
  • UPSERT support (MySQL + SQLite)
  • Indexed queries
  • Foreign keys
  • Optimized schema for large servers

Configuration

  • SQLite or MySQL
  • Command logging toggle
  • Join/Quit logging toggle
  • Command blacklist filter
  • Language selection
config.yml
database:
  type: SQLITE # SQLITE or MYSQL
  sqlite-file: playerlogger.db

  mysql:
    host: localhost
    port: 3306
    database: minecraft
    user: minecraft
    password: ""

language: de #de or en
language-auto: false

logging:
  join-quit: true
  commands: true

command-filter:
  enabled: true
  deny-prefixes:
    - "/login"
    - "/register"
    - "/changepassword"

Use Cases

  • Staff activity monitoring
  • Player engagement tracking
  • Server statistics
  • Moderation investigation
  • Playtime-based rewards
  • Admin auditing

Performance

  • Uses a dedicated async database thread
  • No main-thread blocking queries
  • Safe shutdown handling
  • Scales well for medium to large servers

Compatibility

  • Paper 1.21+
  • Java 21
  • Works on Windows, Linux, and hosting providers
  • Compatible with MySQL & MariaDB

Why Choose PlayerLogger?

Unlike simple playtime plugins, PlayerLogger provides:

  • Command history logging
  • Persistent session tracking
  • Database-level integrity
  • Clean and structured codebase
  • Multilingual support

If you're looking for a reliable, database-driven player tracking solution for Paper servers — PlayerLogger delivers.