All Mods Resource Packs Data Packs Shaders Modpacks Plugins
CelestCombat Pro

CelestCombat Pro

by Unknown • Downloads: 0 • Followers: 0
Description
Gallery
Changelog
Versions

CelestCombat Pro

Modrinth Downloads bStats

CelestCombat Pro is a highly optimized, feature-rich, and enterprise-grade combat management plugin for Minecraft servers specializing in PvP environments. Fully compatible with Paper, Purpur, and Folia, it provides comprehensive combat logging prevention, forcefields, anti-glitch systems, newbie protections, and kill rewards without sacrificing server performance.

Crediting original: https://github.com/NighterDevelopment/CelestCombat

Combat action bar bossbar safezone

📖 Table of Contents

  1. 🚀 Core Features
  2. 📋 Requirements & Installation
  3. 💻 Commands & Permissions
  4. ⚙️ Quick-Start Configuration Guide
  5. 🛠️ Developer API
  6. 🤝 Contributing & Support
  7. 📄 License

🚀 Core Features

⚔️ Combat Tagging & Anti-Log System

  • Auto-Tagging: Automatically tags players in combat when they deal or receive damage.
  • Combat Flight Control: Disables flight and Elytra usage immediately upon entering combat to prevent players from fleeing.
  • Command Blocking: Prevent players from escaping PvP using teleportation or utility commands. Supports both blacklist and whitelist command modes.
  • Combat Logout Punishment: Kills players who log out during combat, drops their items, executes custom server commands (like global chat announcements), and awards attacker rewards.
  • Exempt Admin Actions: Optionally bypasses combat tagging during administrative kicks to prevent false logging punishments.

🛡️ Forcefield Border & Area Protection

  • WorldGuard Safezones: Tagged players are pushed back with customizable force when they attempt to enter WorldGuard safe zones. Features a beautiful stained-glass forcefield visualizer (default: RED_STAINED_GLASS).
  • GriefPrevention Claims: Pushes combatants out of active GriefPrevention claims to prevent "claim-hopping" during fights. Renders a distinct visual boundary (default: BLUE_STAINED_GLASS).
  • UXM Claims: Comprehensive control over player entry, combat, item restrictions (Chorus Fruit, Pearls, Totems), and command blocking inside UXM claims. Supports separate rule profiles for Admin, Player, and Public claims.

🧬 Ender Pearl & Trident Mechanics

  • Ender Pearl Glitch Prevention: Employs advanced physics checks to prevent players from getting stuck in blocks, doing micro-teleports, passing through doors/gates, and glitching through walls or tight spaces.
  • Pearl & Trident Cooldowns: Enforces custom cooldown timers (global or combat-only) with world-specific toggles.
  • Combat Refresh: Option to refresh/renew the combat timer when an Ender Pearl or Trident lands.
  • Trident Restrictions: Option to ban trident usage entirely in configured worlds (e.g., Nether).

🎁 Player Progression & Rewards

  • Newbie Protection: Grants temporary PvP and mob damage protection to new players. Features customizable bossbar/actionbar countdown displays and removes protection early if they deal damage to others.
  • Kill Rewards: Triggers custom commands (e.g., giving keys/currencies) upon player kills with global and same-player farming cooldowns to prevent exploitation.
  • Death Animations: Plays stunning visual effects (lightning strikes and fire particles) when players die.

📋 Requirements & Installation

Requirements

  • Minecraft Version: 1.21 - 26.X
  • Server Software: Paper, Purpur, Folia
  • Java Version: Java 21+

Installation

  1. Download the latest release from Modrinth.
  2. Place the .jar file in your server's plugins folder.
  3. Restart your server.
  4. Configure the settings in plugins/CelestCombat/config.yml and language files in plugins/CelestCombat/language/.
  5. Reload the configuration with /cc reload.

💻 Commands & Permissions

Commands

Command Aliases Permission Description
/cc help /combat, /celestcombat celestcombat.command.use Displays command help menu
/cc reload /combat, /celestcombat celestcombat.command.use Reloads configs, messages, and dynamic event priorities
/cc tag <player1> [player2] /combat, /celestcombat celestcombat.command.use Manually tags player(s) in combat
/cc removetag <player/world/all> /combat, /celestcombat celestcombat.command.use Instantly removes combat tag(s)

Permissions

Permission Default Description
celestcombat.command.use OP Access to all plugin commands
celestcombat.update.notify OP Receive update notifications on login
celestcombat.bypass.tag false Completely bypasses combat tagging

⚙️ Quick-Start Configuration Guide

Below is a breakdown of key sections in the config.yml to help you customize the plugin.

Adjusting Event Priorities

If another plugin overrides command blocking or damage handling, adjust the listener priority:

event_priorities:
  command_blocking: "LOW"   # Options: LOWEST, LOW, NORMAL, HIGH, HIGHEST, MONITOR
  combat_damage: "HIGH"
  teleportation: "HIGH"

Configuring Combat Punishment

Set up what happens when a player logs out during a PvP engagement:

combat:
  duration: 20s
  combat_logout:
    enabled: true
    kill_player: true
    reward_attacker: true
    punishment_commands:
      - "broadcast &c%player% &7logged out during combat!"
    attacker_reward_commands:
      - "broadcast &a%player% &7killed &c%victim% &7(Combat Logout)"

Forcefields & safe zones

Adjust the forcefield visual and push back power:

safezone_protection:
  enabled: true
  barrier_material: "RED_STAINED_GLASS"
  barrier_detection_radius: 5
  push_back_force: 0.6

🛠️ Developer API

CelestCombat Pro provides a robust API for external plugins to integrate with its combat systems.

Accessing the API

Ensure you import com.shyamstudio.celestCombatPro.api.CelestCombatAPI and hook into it:

import com.shyamstudio.celestCombatPro.api.CelestCombatAPI;
import com.shyamstudio.celestCombatPro.api.CombatAPI;
import org.bukkit.entity.Player;

public class MyPluginIntegration {

    public void checkPlayerCombat(Player player) {
        CombatAPI api = CelestCombatAPI.getCombatAPI();
        if (api != null && api.isInCombat(player)) {
            player.sendMessage("You are currently in combat!");

            // Get the remaining combat time
            int secondsLeft = api.getRemainingCombatTime(player);

            // Get their current opponent
            Player opponent = api.getCombatOpponent(player);
        }
    }
}

📦 Building

To build CelestCombat Pro locally:

git clone https://github.com/ShyamStudios/CelestCombat-Pro.git
cd CelestCombat-Pro
./gradlew build

The compiled JAR will be saved in build/libs/.


🤝 Contributing & Support


📊 Statistics

bStats Statistics


📄 License

This project is licensed under the CC BY-NC-SA 4.0 License - see the https://github.com/ShyamStudios/CelestCombat-Pro/blob/main/LICENSE file for details.

All Versions

+ Add Version
Name Game version Platforms Published Downloads Actions
26.3 26.2 26.1.x +1
Folia Paper Purpur
6h ago 1
26.1.x 1.21.x
Bukkit Folia Paper Purpur Spigot
6h ago 1
1.21.x
Bukkit Folia Paper Purpur Spigot
6h ago 1
1.21.x
Bukkit Folia Paper Purpur Spigot
6h ago 1
1.21.x
Bukkit Folia Paper Purpur Spigot
6h ago 1
1.21.x
Bukkit Folia Paper Purpur Spigot
6h ago 1
1.21.x
Bukkit Folia Paper Purpur Spigot
6h ago 1
1.21.x
Bukkit Folia Paper Purpur Spigot
6h ago 1
1.21.x
Bukkit Folia Paper Purpur Spigot
6h ago 1
1.21.x
Bukkit Folia Paper Purpur Spigot
6h ago 1
1.21.x
Bukkit Folia Paper Purpur Spigot
6h ago 1
1.21.x
Folia Paper Purpur
6h ago 1
1.21.x
Folia Paper Purpur
6h ago 1
  • CelestCombat-Pro 2.0.0: Folia & Canvas Stability Update**

  • Fixes**
  • Fixed the crash on Folia/Canvas where quitting while in combat threw "IllegalStateException: Dispatching command async" whenever punishment_commands or attacker_reward_commands were set. Commands now run on the global scheduler, in order, once each.
  • Fixed kill rewards sometimes being given twice because of a cooldown race.
  • Fixed the "last attacker" tracking. It was broken because two copies of the listener each kept their own map.
  • Fixed a possible duplicate combat expiry message.
  • Fixed a few NPEs: inventory click with empty cursor, UXM claims teleport with no destination, and combat countdown during a state change.
  • Fixed riptide rollback trying to compare locations across worlds.
  • Fixed cooldown and newbie protection data files being written by two saves at once.

  • Folia / Canvas**
  • Player stuff now runs on the player's own thread: messages, titles, action bars, sounds, boss bars, inventory, flight, velocity, teleports, kicks.
  • Block changes, particles and barrier blocks run in the correct region.
  • Async tasks only do file and network work now. They don't touch the game.
  • WorldGuard and GriefPrevention barrier code, the newbie protection timer and both countdown displays are region safe.

  • Performance**
  • One shared timer handles combat and cooldown countdowns instead of separate tasks.
  • Removed the countdown task that started every time someone threw a trident.
  • Command blocking rules are compiled once, no config reads on every command.
  • Death animation settings, combat logout settings and messages are cached.
  • GriefPrevention barrier scan doesn't allocate a Location per block anymore.
  • Update check runs once an hour instead of on every player join.

  • Other**
  • All plugin tasks stop on disable. Nothing keeps running after a reload.
  • Combat, pearl, trident and barrier state gets cleaned on quit, death, reload and shutdown.
  • No config or message changes needed. Drop in and go.
  • Paper, Leaf, Folia, Canvas. MC 1.21.11, Java 21 and 25.
Optimized performance and resolved multiple bugs
fixed issues
Fixed Y-level height detection to properly match WorldGuard regions Proper
fixed world settings issues in safezone protection
feat: performance improve, WorldGuard fixes, and combat improvements

feat: major performance improvements

fix: WorldGuard detection and API hook issues

feat: added combat logout punishment & reward commands

fix: item restrictions not applying correctly

fix: language folder generation on first load

chore: added missing messages & improved config handling
## 🚀 Performance Update & Bug Fixes

  • Improved overall plugin performance and efficiency
Thanks to [iiAhmedYT](https://github.com/iiAhmedYT) for contributing ❤️

  • Fixed several reported bugs

  • Corrected duplicate Ender Pearl cooldown message issue
Add:
  • Added configuration caching system to improve performance
  • Added UXM Claims integration with runtime detection (no compile dependency)
  • Added combat claim entry prevention
  • Added PvP protection inside claims
  • Added owner and trusted combat exceptions in claims
  • Added teleport prevention into claims during combat
  • Added per-world claim protection settings
  • Added intelligent TTL caching for claim lookups
  • Added advanced ender pearl glitch protection system
  • Added micro-teleport exploit prevention
  • Added barrier / bedrock / portal pearl protection
  • Added tight-space teleport safety checks
  • Added separate ender pearl cooldown system
  • Added configurable event priority system
  • Added dynamic event handler registration
  • Added EventPriorityManager for caching and validating priorities
  • Added /celestcombat eventpriority command to view current priorities
  • Added Elytra combat restrictions (equip, shift-click, and glide prevention)
  • Added automatic Elytra removal when combat starts
  • Added CombatAPI method disconnectPlayerSafely(Player player)
  • Added /celestcombat safeDisconnect <player> admin command

Fix:
  • Fixed performance issues caused by repeated config lookups
  • Fixed EssentialsX GUI command bypass
  • Fixed Elytra being usable during combat
  • Fixed ender pearl block-stuck teleport edge cases
  • Fixed potential claim lookup performance issues

Improve:
  • Improved plugin compatibility with other plugins using configurable event priorities
  • Improved combat and teleport handling stability
  • Improved item restriction handling during combat
  • Improved combat start handling logic
  • Improved overall plugin performance during player movement checks
# CelestCombat Update

## 🛠 Fixes & Improvements

### 1. Fixed Flying Detection Bug
Players who are knocked back or launched during combat will no longer be incorrectly pulled back to the ground.

The plugin now properly distinguishes between:
  • Knockback or combat launch** (allowed)
  • Intentional flight attempts** (blocked)

This prevents false positives during PvP.


### 2. Removed Language Folder System
The previous multi-file language folder system has been **completely removed**.

It has been replaced with a **simpler and cleaner configuration**:
  • A single messages.yml file now controls all messages.

This makes editing and managing messages much easier.


### 3. Fully Configurable Message System
All plugin messages are now highly customizable.

Supported features:
  • Chat messages**
  • Titles**
  • Subtitles**
  • Action bars**
  • Sounds**

Additional capabilities:
  • Hex color support:** &#RRGGBB
  • Legacy color codes:** &c, &a, etc.
  • Placeholders:** %player%, %time%, and more
  • Per-message enable/disable options**


## ⚡ Summary
This update improves **PvP accuracy**, simplifies **configuration**, and provides a **powerful new customizable messaging system**.
# CelestCombat-Pro v1.2.0 — Major Performance Optimization Update

## Overview

This update introduces major performance improvements to the WorldGuard safe-zone protection system and fixes issues with combat command blocking.

The focus of this release is **reducing CPU usage during player movement and combat interactions**, making the plugin significantly more efficient on servers with many players.

Expected performance improvement: **up to 90% reduction in CPU usage for safezone barrier detection.**


## Performance Improvements

### WorldGuard Safezone Barrier Optimization

The safezone detection and barrier visualization system has been heavily optimized.

  • Estimated CPU usage improvement**

Before
~1.60% server thread usage

After
~0.15–0.20% server thread usage

These improvements are most noticeable on PvP servers with many players in combat near protected regions.


### Reduced Vertical Scanning

Barrier detection previously scanned a large vertical range.

The scan height is now limited to **4 blocks relative to the player**.

Benefits:

  • Reduces location checks significantly
  • Improves safezone border detection performance
  • Lowers CPU usage during movement events


### Barrier Update Early Exit

Barrier updates now stop immediately if the barrier layout has not changed.

This prevents unnecessary operations such as:

  • recalculating barrier locations
  • sending redundant block updates
  • iterating over barrier collections


### Location Object Reuse

Location objects are now reused during scanning instead of creating new instances.

Previously each update could create **hundreds of Location objects**.

This change removes a major source of memory allocation and reduces garbage collection pressure.


### Optimized HashSet Usage

Barrier tracking collections have been optimized to avoid unnecessary HashSet creation.

Collections are now created only when required.


### Packed Cache Keys

Safezone caching now uses **bit-packed long keys** instead of string concatenation.

Previous cache format:

world:x:y:z

New cache format:

long packedLocationKey

Benefits:

  • eliminates string allocations
  • improves map lookup speed
  • significantly reduces memory overhead


## Bug Fixes

### Combat Command Blocking

Commands defined in the combat blacklist were not always blocked due to case-sensitive comparisons.

Command matching is now **fully case-insensitive**.

Example commands that are now correctly blocked:

  • /tpa
  • /TPA
  • /Tpa
  • /spawn
  • /SPAWN

Wildcard patterns continue to function as expected.

Example configuration:

``
blocked_commands:
  • tpa
  • spawn
  • team*
``


## Technical Improvements

### Object Allocation Reduction

The update removes hundreds of unnecessary object allocations during player movement events.

Key improvements include:

  • removing Location cloning inside loops
  • eliminating string-based cache keys
  • optimizing HashSet usage
  • reducing safezone scanning volume


## Expected Server Impact

Example scenario: **50 players moving in combat near safezones**

Before update
~1.60% CPU usage

After update
~0.15–0.20% CPU usage

This results in smoother gameplay and reduced server load during PvP.


## Recommendation

This update is strongly recommended for servers running practice PvP, combat-focused gameplay, or large player counts.

Updating will significantly improve movement handling and safezone barrier performance.

fix: remove combat timers on kill and improve combat handling

Combat timers are now cleared for both killer and victim on death
Silent removal prevents unnecessary combat messages
Handles indirect combat-related deaths correctly
fix: add PlaceholderAPI support

Added PlaceholderAPI repository and dependency
Implemented 10 combat and cooldown placeholders
Registered expansion with proper error handling
Added PlaceholderAPI as a soft dependency
fix: optimize combat system and clean up code

Optimized combat map cleanup logic
Reduced unnecessary iterations and memory usage
Removed unused fields and deprecated API usage
Simplified combat cause detection
  • Celest Combat Pro Update**

After months, a new update is finally out.

> - Fixed an issue where players could use Wind Charge + W to enter the safe zone while in combat
>
> - Fixed safe zone protection so players inside it do not take damage from any explosives (minecarts, TNT, etc.)

Combat and safe zones now work properly.
Please report bugs with clear steps or video.
Nothing major for now—we’re planning to add many new features soon.

Note:
We’ve received official permission from the original author of CelestCombat, Nighterr, to create an improved version using its base code.

Special thanks to Nighterr for developing such a great combat plugin. From here on, ShyamStudio will continue its development and take it further.*
CelestCombat Pro Icon
Download CelestCombat Pro
Select game version
Select platform