Skip to content

Changelog

Release history for InviteMe. Versions follow a date-based scheme: YY.MM.DD.PATCH.


  • Optimized invite revocation for expired and inactive invites — more efficient cleanup on expiry checks
  • Improved importAction method to preserve original timestamps when importing action log entries
  • Handle duplicate column error gracefully when running database migrations on existing installs
  • Updated Paper API dependency to 1.21.11
  • Updated PostgreSQL driver with improved error handling in connection pool
  • Migration command now validates arguments before executing and provides clearer error messages

  • Player Stats Storage — new storage interface tracking XP boost sessions and boost time per player
    • JSON, SQLite, and MySQL/PostgreSQL implementations
    • Stats visible via /invite menu → Self button and /im profile
  • /im stats command — server-wide statistics with top inviters ranking
    • Usage: /im stats (top 5) or /im stats N (custom count)
  • Invite tree command with header message formatting
  • importAction method for action log — supports seeding historical data
  • Build system updated with dynamic version computation from git tags
  • Dependency versions pinned in versions.json for reproducible builds

  • PostgreSQL support — full parity with MySQL backend using SqlDialect enum
    • SqlDialect.POSTGRESQL handles SERIAL vs AUTO_INCREMENT and upsert differences
  • HikariCP connection pool — shared pool across MySQL and PostgreSQL backends for efficiency
  • /im migrate command — migrate data between backends with zero downtime
    • Automatic backup: original file renamed to .migrated
    • Supports: sqlite, mysql, postgresql
  • Access control mode plugin — InviteMe takes full control via AsyncPlayerPreLoginEvent
    • Set white-list=false in server.properties to use
    • OPs and invite.admin always bypass
  • LuckPerms integration — reflection-based, safe if LP not installed
    • invite.number.X permission for per-player limits
    • group-limits in config for per-group limits
    • getPrimaryGroup() for group detection
  • PlaceholderAPI expansion%inviteme_*% placeholders available
  • Default storage backend changed from json to sqlite
  • Permission invite.bypass.limit removed — merged into invite.admin
  • InviteCommand and ImCommand now use full dispatcher pattern — each subcommand in its own class
  • Whitelist sync properly handles players added outside InviteMe
  • Tab completer for /im log shows correct subcommands

InviteMe was initially developed with JSON storage and a simpler command structure. The 2026 rewrites introduced the multi-backend storage system and LuckPerms integration.


Versions follow YY.MM.DD.PATCH:

  • 26 — year 2026
  • 05 — month May
  • 18 — day 18
  • .1 — patch number within that day

This makes it easy to see exactly when a version was released.