Welcome to the Hangar Open Beta. Please report any issue you encounter on GitHub!
Avatar for SyntaxDevTeam

Advanced punishment system for Minecraft servers with warnings, mutes, bans, kicks and more.

Report PunisherX?

Release
1.6.0

WieszczY released PunisherX version 1.6.0 on December 10, 2025

Changelog

Functional changes:

  • Added full support for Minecraft 1.21.11.
  • Extended configuration for releasing players after a sentence.
    • /setspawn was replaced with /setunjail to avoid conflicts with EssentialsX, FoliEssentials, and similar plugins.
    • config.yml now lets you choose one of five spawn modes:
      1. unjail – coordinates defined in unjail_location (via /setunjail).
      2. last_location – the player position before receiving the punishment.
      3. bed – the player's last bed.
      4. essx – spawn point from EssentialsX/FoliEssentials (/setspawn).
      5. world – the default world spawn (/setworldspawn).
    • New configuration layout:
      unjail:
          unjail_location:
              world: "world"
              x: 0.0
              y: 64.0
              z: 0.0
              yaw: 0.0
              pitch: 0.0
          spawn_type_select:
              set: unjail
      
  • Expanded automatic actions that can run when a punishment ends.
    • /warn now executes commands based on the warning count:
      actions:
        kicked:
        - "eco take {player} 1000"
        mute:
        - "eco take {player} 500"
        warn:
          count:
            3:  "kick {player} You have received your 3rd warning."
            4:  "ban {player} 30m You have received your 4th warning."
            5:  "ban {player} 5h You have received your 5th warning."
            6:  "ban {player} 7d You have received your 6th warning."
            7:  "ban {player} 30d You have received your {warn_no}th warning."
            10: "ban {player} You have received your 10th warning."
      
  • Added an action-bar countdown for active punishments (mute/jail) with configurable settings:
    notifications:
      punishment_bar:
        # Show the countdown in the action bar.
        enabled: true
        # Update frequency (20 ticks = 1 second).
        period_ticks: 20
    
  • Protected ModernLoginListener.onPreLogin from overwriting whitelist decisions.
  • Improved compatibility with Folia forks.
  • Added a new language file translated by Not QauT (https://github.com/vQauT).
  • Moved heavy operations off the main thread:
    • GeoIP lookups are now async.
    • PunishmentChecker performs async queries.
    • Folia reload runs in an async task.
  • Added new API methods.
  • Added Sync-Bridge modules for both BungeeCord and Velocity.
  • Introduced a diagnostic command.
  • Version 1.6.0 debuts an automatic config.yml migration system:
    • The plugin checks the config version on startup and upgrades it if needed.
    • Custom administrator values are preserved.
    • Missing options are added with defaults, and deprecated ones are removed.
    • Note: a backup of the original config is created automatically before any change.

Technical changes:

  • DatabaseHandler now targets SyntaxCore 1.2.5-SNAPSHOT.
    • Supports asynchronous database operations.
    • Improved error handling and logging.
    • Optimized queries to reduce overhead.
    • Added MSSQL support.
  • Added a server-type detection utility.
  • Migrated to the standalone pl.syntaxdevteam:messageHandler component.
  • Centralized the warning system into a dedicated class.
  • Implemented shared platform components and a safe teleport service.
  • Extracted material logic into its own class.
  • Punishment commands now rely on placeholders and execute configured actions.
  • Libraries and dependencies updated to the latest versions.

Bug fixes:

  • HOTFIX: fixed argument suggestions for all commands.
  • HOTFIX: corrected the usage message for /setunjail.
  • HOTFIX: resolved teleport logic issues and unsafe destination handling.
  • HOTFIX: removed a critical /whitelist issue (duplicate event.allow() in ModernLoginListener).
  • HOTFIX: repaired H2 database connections.
  • HOTFIX: fixed a bug that removed a mute too early.
  • Eliminated an occasional unknown registry key error.
  • Fixed sporadic plugin library loading problems.
  • Removed duplicate entries for online/offline players in the GUI.
  • Corrected IP and geolocation displays.
  • Solved Folia vs. Paper API dependency conflicts.
  • Fixed UninitializedPropertyAccessException during reload.

Experimental (testing phase):

  • Added a graphical interface for managing punishments (kick, ban, mute, etc.).
    • Data is loaded asynchronously to avoid GUI-induced lag.
    • Includes a player nickname search.
    • Supports sorting by online/offline/punishment status.
  • Added /report command

Information

Published onDecember 10, 2025
Downloads132

Platforms

Paper Paper (1.20.6-1.21.11)

Dependencies

Paper Paper
Edit Plugin Dependencies: Paper