[1] Plugin doesn't crash on servers without WorldGuard anymore. WorldGuard is optional, but the safezone code needed it just to start up, so without it the whole plugin shut itself down. That part only loads when WorldGuard is actually installed now. No WorldGuard just means no safezone handling, everything else runs fine.
[2] Server stopped freezing on startup. It was downloading the MySQL and MariaDB database drivers on every boot even though most servers run SQLite, and on a slow connection that hung the whole startup. Only SQLite and H2 load now. MySQL and MariaDB still work if their driver is there, otherwise it quietly uses SQLite.
[3] No more wall of red "DataSource is not initialized" errors. Those were left over from the plugin shutting down in the middle of starting up. It stops cleanly now.
[4] Elytra is blocked in combat. No gliding or firework-boosting away to escape a fight, and you get dropped out of glide if you're hit mid air. Turn it off withrestrictions.elytra.enabled, bypass withjustcombat.bypass.elytra.
[5] The combat-log NPC respects keepInventory now. If you log out in a keepInventory world you keep your items and XP, nothing drops and nothing gets wiped on reconnect. You can also turn the NPC off per world withnpc.disabled_worlds.
[6] The jar is about half the size now, roughly 4.5MB down from 9.6MB. It was bundling netty and a couple of other things the server already has. (Older but forgot to mention)
[7] Works on Paper 1.21.11 and 26.1.2, plus Folia and Spigot.
[1] You can't stand inside a safezone and hit players outside it anymore. It used to only check where the victim was, not the attacker.
[2] Golden and notch apple cooldowns work now. The bypass permission was set to OP by default, so admins never saw a cooldown and figured it was broken. It's off by default now, so give it to staff manually if you want them exempt.
[3] Safezone barrier blocks don't get stuck on your screen after a fight ends anymore.
[4] Killstreak messages like your streak counter and "streak ended" weren't showing right. They were reading from an old language file that never updated. Fixed now.
[5] Console doesn't get spammed with a debug line every time something hits a mob. That only logs for real player fights now, and only when debug is on.
[6] Combat log NPC now works. Log out in the middle of a fight and it leaves a killable copy of you with your gear, instead of just killing you on the spot. It's off by default.
[7] Essentials can't take over /pvp and /combat anymore.
[8] You can hide the extra command names and keep just /combat if you want it cleaner.
[9] Flight bypass and the apple bypass are separate permissions now. Your config updates itself on the first start and keeps anything you changed.
[10] Works on Paper 1.21.11, 26.1.x, Folia and Spigot.
### CRITICAL FIXES
[1] Big one: blocked commands actually stay blocked now./fly,/pvp,/homeand the rest aren't slipping through anymore, and yes, that includes the sneaky/minecraft:fly,/cmi:fly,/fstyle variants people were using
[2] OPs no longer bypass combat command restrictions just for being OP. If you want staff to be exempt, you need to give themjustcombat.bypass.commandsdirectly. Sorry, this was a footgun
[3] You can't toggle/pvpwhile in combat anymore, even if some other plugin tries to handle it before us
[4] ThoseDataSource is not initialized or has been closedwalls of red on shutdown? Gone. Stats now finish saving before the pool gets closed
[5] If your console was getting absolutely hammered with debug lines on every mob hit, that's becauseperformance.debugdefaulted totrue. New installs default tofalsenow. Set it tofalsein your existing config if you haven't already
[6] Boss bar timer was only ticking once a second and looked stuck. It refreshes 4x per second now, much smoother
[7]streak_endedand a few other broadcasts were silently disappearing when the prefix string was missing. Fixed
[8] Broadcasts (like killstreak announcements) ignored language files and always pulled frommessages.yml. They respect the active language now
[9]your_streakwas defined in messages.yml but never actually sent to the killer. It is now
[10] Damage debug stopped firing on every arrow that hits a skeleton. Only player-vs-player combat triggers it now
### IMPROVEMENTS
[11]/pvpand/justcombatget force-registered via Bukkit's CommandMap so Essentials (and similar) can't steal them anymore
[12] Added/combatas an alias for/justcombat
### NEW FEATURES
[13] Flight gets cut the second you enter combat. Creative and Spectator are skipped. Switch off withcombat.disable_fly_on_combat: falseor grantjustcombat.bypass.flyto whoever should keep their wings
[14] Riptide tridents finally have a cooldown. The old trident cooldown only fired on actual throws, so anyone in water or rain could spam riptide and dodge it. New section:advanced_pvp.trident.riptide.cooldown
[15] Same idea for melee trident hits. Some people were just bonking with the spear instead of throwing it to bypass the cooldown. New section:advanced_pvp.trident.lunge.cooldown
### CONFIG
[16] Addedcombat.disable_fly_on_combat(defaulttrue)
[17] Addedadvanced_pvp.trident.riptide.cooldown(10s by default)
[18] Addedadvanced_pvp.trident.lunge.cooldown(2s by default)
[19] Addedvisual.boss_bar.update_interval_ticks(default5)
[20]performance.debugnow defaults tofalsefor new installs. Your existing config isn't touched
[21] Configs migrate automatically on first start. Anything you've customised stays the way you set it
### PERMISSIONS
[22] Addedjustcombat.bypass.fly(defaultfalse)
[23]justcombat.bypass.trident.cooldowncovers throw, riptide, and lunge now (one perm, all three)
### COMPATIBILITY
[24] Tested on Paper 1.21.11, Paper 26.1.2, Folia, and Spigot.
### FOR SERVER ADMINS
If your staff used to bypass combat restrictions just by being OP, you need to hand themjustcombat.bypass.commandsfrom your perms plugin now. That's the main thing that might bite you on upgrade.
Console too noisy after upgrading?performance.debug: falsein your existing config.
Don't like that flight gets killed on combat?combat.disable_fly_on_combat: false, or just give the relevant rankjustcombat.bypass.fly.
[0] FIXED: Ender pearl cooldown activating but player not teleporting on Paper 1.21+. Pearl item was consumed and the throw was cancelled server-side but the item was never refunded. Also improved interact event handling to reliably block pearl usage when on cooldown
[1] FIXED: Golden apple and enchanted golden apple cooldowns not working on Paper 1.21+.. Hotbar cooldown overlay also now appears after eating
[2] FIXED: Editing the prefix or any message in en_US.yml had no effect in-game even after a full restart. Language files are now always read first regardless of whether multi-language is enabled in config
[3] FIXED: OP players automatically bypassed all combat restrictions (pearls, safe zones, commands, healing).
[1] Added PvP toggle status placeholders for scoreboard display (pvp_status, pvp_enabled, pvp_enabled_boolean)
[2] Fixed console spam from debug logging triggering on all player interactions instead of only ender pearl usage
[1] Fixed command blocking while in combat not working when other plugins cancel commands first
[2] Small improvements & fixes
[1] Added per-player toggle system with unified /jc toggle command (fast crystal, totem particles, explosion particles, explosion sounds, chainmail kit)
[2] Implemented invisibility chat hide feature to block/filter messages from invisible players
[3] Fixed empty action bar spam by sending empty message only once when clearing
[4] Added proper PacketEvents-based packet interception for totem and explosion effects
[5] Fixed fast crystal toggle double-toggle sync bug by centralizing state management
[6] Added configurable chainmail kit on respawn with toggle support
[1] Fixed Action Bar not appearing during combat for OPs due to bypass permission auto-granting
[2] Added Fast Crystal PvP feature with instant placement and invulnerability removal
[3] Improved configuration system with automatic migration and version tracking
