ConquestDuels Premium 33% OFF icon

ConquestDuels Premium 33% OFF -----

The Best Duel Plugin



2.png 3.png 4.png 5.png 6.png 7.png 8.png
[​IMG]
Live Arena Snapshots — Captures a full state of an arena’s blocks using TPS-aware slice batching.
Auto-compare to Disk Snapshots — Detects which chunks have changed and only regenerates those.
Partial Snapshot Loading — Avoids full-world writes. Only modified areas are rewritten.
Block Type-Aware Rebuild Waves — Solids, liquids, gravity blocks, and dependent structures (like ladders, torches) are placed in the correct order.
Smart TPS-Based Batching (Spark Integration) — Dynamically scales regeneration speed based on real-time server performance using Spark’s live TPS readings.
Parallel Chunk Comparison Engine — Compares thousands of chunks per tick asynchronously with adaptive delay control.
Auto-Cleanup for Entities — Purges dropped items, projectiles, and mobs before restoration.
Built-in Safety Locks — Prevents duplicate regeneration or overlapping snapshot tasks on the same arena.
Snapshot Verification on Startup — Pre-checks all enabled arenas and optionally restores them before first use.
Persistent Arena Cache — In-memory cache via `SnapshotCacheManager` enables lightning-fast restoration.
Chunk-Level Hashing — Uses SHA-256 hashing and deterministic ordering to detect even minor block changes.
Fallback Logging — Detects and reports invalid blocks, height mismatches, or failed writes.
No External Dependencies Required — Spark is optional; fallback logic activates if missing.

Multi-Mode Arena Support — Each arena can support multiple gamemodes (1v1, 2v2, etc) with distinct spawn configurations.
Admin Region Wand — A custom-configured setup wand with MiniMessage name, lore, enchant glint, and item flag hiding.
Region Selection with Volume Calculation — Position 1 and 2 confirmation with accurate block volume tracking and max size enforcement.
Gamemode-Based Spawn Assignment — Store exact spawn locations per team index for each supported DuelGameMode.
Dynamic Kit Compatibility — Admins can assign or remove allowed kits per arena via command.
Admin Teleport Anchors — Each arena supports an optional admin spawn point for editing or review sessions.
Custom Load Modes — Switch between ON_DEMAND, ALWAYS_LOADED, HYBRID, and ALWAYS_FORCED chunk load behavior.
Snapshot-Gated Enable Logic — Arenas with regeneration cannot be enabled unless a valid snapshot is cached or generated.
Arena Editing Sessions — Edits are sandboxed per admin; arenas disable themselves from matchmaking while being edited.
Auto-Wand Return System — Handles inventory events like death, respawn, drop, or container move to ensure wand persistence.
Safe Cleanup Hooks — On player logout or session end, wand is removed and arena is safely restored to pre-edit state.
Persistent Arena Registry — Centralized `ArenaRegistry` manages all loaded models, checks readiness, and finds available arenas for matchmaking.
API Access to Arena Info — Commands and UI can request structured arena metadata including spawns, block volume, kit list, and more.

Player-to-Player Duel Blocking — Players can block incoming duel requests from specific users without affecting global matchmaking.
Persistent YAML Block Data — Block relationships are saved in `userBlockingData.yml`, auto-loaded on join and auto-saved asynchronously.
Full GUI and Queue Syncing — If a player is blocked, active GUIs like gamemode selectors or confirm menus are closed and redirected.
Queue Safety Integration — Blocked teammates are force-removed from queues to prevent awkward matchups.
Reverse Request Handling — If two players send identical duel requests, they are instantly matched into a duel queue.
Dynamic Request Expiry — Configurable timeout clears stale duel requests automatically via scheduled async cleanup.
Block & Unblock Commands — Use /duel block <player> and /duel unblock <player> to manage your list.
Blocked List Viewer — Players can run /duel blockedlist to see who they've blocked, with username resolution.
Safe Identity Mapping — Uses Bukkit's offline player cache to resolve names ⇄ UUIDs reliably, ensuring name changes don't break configs.
Configurable Blocking Toggle — Server owners can fully disable the feature via `duel-requests.allow-blocking` in config.yml.

Fully Modular GUI Definitions — All core menus (Challenge, Confirm, Kit Select) are loaded from YAML and overrideable per-server.
Live Reload from Config — Admins can hot-reload menus from disk by reloading the plugin, no restart needed.
Dynamic Challenge Menus — The challenge menu auto-adapts to team dueling status, player list size, and gamemode.
Kit Selector Menu — Display kits in a beautiful grid layout, pulled from saved inventory snapshots.
Confirm Menu — Finalizes your duel selection with a clean accept/cancel UI.
MiniMessage Formatting Support — GUI item names and lores support advanced color, gradients, and hover formatting.
Failsafe YAML Bootstrapping — If a config file doesn’t exist, it’s automatically copied from your plugin JAR.
Smart Session Timeout Logic — Inactive GUI sessions auto-expire with async monitoring to clean memory.
Localization Support via YAML — GUI messages like buttons, headers, tooltips come from customizable message files (arena, queue, kit, etc).
Structured Message Loaders — Each message type (arena, queue, kit) has its own file and loader class for clarity and modularity.

Full Player State Serialization — Kits store entire player state: inventory, armor, offhand, gamemode, health, XP, fireTicks, walk/fly speed, and potion effects.
YAML Kit Format — Kits are stored as `.yml` files in `/SavedKitsData`, fully editable and version-safe.
Default Kit Bootstrapper — If no kits are found, the plugin auto-generates 5 starter kits: leather, gold, iron, diamond, and netherite.
MiniMessage Display Format — Custom name/lore for both select and vote icons via placeholders like `{kit_name}`, `{total_votes_for_kit}`.
GUI-Defined Icons — Kits use custom icons and lores loaded from `kitSelectorGUI.yml`, which admins can theme server-wide.
Vote & Select Appearance Separation — Kits have separate icon definitions for kit-voting and pre-duel selection stages.
Potion Effect Compatibility — All potion effects, amplifiers, durations, and flags are safely serialized and restored.
GameMode Enforcement — Kits support toggling between Survival, Adventure, and Spectator modes.
Kit Registry in Memory — `kitManager` keeps all kits hot-loaded for GUI and queue performance, no disk access at runtime.
Arena Kit Validation — Arenas auto-unlink invalid kit names during load, ensuring stability if kits are deleted or renamed.
Offhand-Aware Logic — Full offhand support including empty or air-item fallback detection.
API-Ready Access — Other modules access kits by name via `kitManager.getKit(...)`, making external GUI or vote extensions easy to build.

Per-Arena Queues — Each arena has an isolated queue line with tracked match groups (`QueueModel`) and lifecycle state (`QueueState`).
Support for Team-Based Modes — Queues support flexible team sizes and auto-fill logic based on game mode settings.
Smart Matchmaking Algorithm — Dynamically assembles fair teams while checking for player block relationships and balance.
Automatic Kit Voting — If multiple kits are allowed, a kit vote menu opens with timeout fallback and fair-tiebreaking.
KitVoteSessionManager Integration — Tracks votes, finalizes the winning kit, and integrates into the queue’s lifecycle.
Stale Queue Cleanup — Queues automatically expire after 30 minutes of inactivity, with timeout messages to players.
Real-Time GUI Refreshing — All selector menus update every time a queue changes (joins, leaves, reorders).
Reconnection Safety — If players leave mid-queue due to world change or quit, the rest of the queue is safely repaired or canceled.
Teleport Failure Handling — If teleportation fails, players are split and re-queued based on arena availability and valid teammates.
Custom Match Lifecycle States — Queues transition through `WAITING`, `TELEPORTING`, `IN_DUEL`, and `CANCELLED` with corresponding logic.
Block-Aware Team Assembly — Blocked players are never paired in teams or opposing sides, even in full queues.
Arena Assignment on Full Queue — Arenas are only bound once the queue is full and players pass all checks.
Queue Voting Timer — 30-second kit voting timers are auto-started if not all players vote, preventing stalls.

Multi-Team Session Model — `DuelSessionModel` tracks both teams, player teleportation, win/loss outcome, and disconnects.
Complete Pre-Duel State Saving — Player inventory, armor, offhand, potion effects, XP, health, gamemode, flight flags, speeds, and fire ticks are stored and restored exactly.
Duel Freeze Phase — Players are frozen in place at the start of the match, complete with countdown timer and fully-blocked interactions.
Ender Pearl Cleanup — All preduel and leftover pearls are removed from the arena to prevent teleport exploits.
Join & Respawn Recovery — If a player crashes or dies mid-duel, they are safely teleported back and restored when they return.
Custom Duel End Logic — Winners and losers are determined via elimination. Sessions finalize only when all players are teleported back.
Premature Cancellation Handling — Covers disconnects, deaths, and interaction violations. Sends context-aware cancellation messages.
Live Arena Marking — Arenas are flagged as “in use” during duels and released once the session ends or cancels.
Win/Loss Announcements — Broadcast duel outcomes server-wide with formatted messages, including winner/loser placeholders.
Snapshot Auto-Save Post Duel — Regeneration snapshots are re-taken after each match to prepare for the next round.
Full Duel Restoration Audit — Sessions only finalize when all survivors are restored and cleanup is confirmed.
Teleport Double-Check Mechanism — A two-phase delayed teleport ensures players land properly on duel start or end.
Modular Countdown Visuals — Freeze countdown via action bar and placeholders (`{seconds}`) for customizable translations.

Multi-Stage GUI Flow — Players move through Gamemode → Challenge → Arena → Kit → Confirm menus in a stateful session.
Builder Session Memory — Each player has a `DuelBuilderSession` that stores selected target, kit, arena, gamemode, and confirm actions.
Smart GUI Pagination — All menus (challenge, arenas, kits) support paged layouts with MiniMessage-formatted titles and dynamic sizing.
Fully Configurable Layouts — All buttons (filler, icons, nav) are defined via YAML configs and support item name, lore, glow, and slot.
Player Selector Menu — Auto-hides blocked players, sorts alphabetically, and respects duel cooldowns.
Gamemode Selector Menu — Fully configurable, supports click-to-branch flow logic and per-button actions.
Arena Selector Menu — Filters by selected gamemode, shows live arena state (ready, regenerating, disabled), and uses status placeholders.
Kit Selector & Vote Menus — Distinct UI for kit selection vs voting, with individual config for "use-own-inventory" buttons.
Confirm Menu Context Routing — Confirms either a duel request or queue entry based on a structured context key like `challenge :player:1v1:Arena:Kit`.
Custom Sounds & Effects — Each menu action (select, exit, confirm, page next/prev) supports optional sound or particle via config.
Live Refresh on Player Join/Quit — GUIs update in real-time when players join or leave to prevent stale head lists or broken queues.
GUI Cooldown System — Prevents click-spamming by rate-limiting menu interactions with user feedback.
Hotbar, Drop, and Drag Protection — All item move types are blocked while GUI menus are open to maintain state integrity.
Fallback Safety Paths — If a player closes or disconnects mid-flow, the builder session marks itself cleanly closed to prevent memory leaks.

Right-Click to Duel — Players can initiate a duel by right-clicking other players directly (configurable).
Sneak Variants Supported — Different duel types can be triggered via shift-right-click or shift-left-click.
Attack-Based Challenges — Punching or hitting another player (via EntityDamageByEntityEvent) can trigger a duel offer if enabled.
Drop Item & Swap Hand Detection — Unique interaction types like dropping an item while looking at a player, or pressing F (swap-hand), are fully supported.
Customizable via YAML — Interaction types are defined in `challengePlayer.yml` under `action-type`, parsed into `InteractionTypeModels`.
Raycast-Based Targeting — Swap-hand and drop interactions raycast up to 5 blocks for a valid player in view.
Permission-Based Access — Uses `conquestduels.user.challenge.interact` permission node to restrict feature access.
Cooldown Protection — A separate cooldown manager prevents spam attempts, with full message feedback.
Required Item Enforcement — You can define a specific item (e.g., sword or stick) players must be holding to initiate a challenge.
World Whitelist Support — Prevent duel interactions in specific worlds if enabled in config.
Block Check Integration — Fully respects player block lists in both directions before triggering GUI flow.
Request Auto-Accept Logic — If two players interact at the same time, the request is automatically accepted with no GUI steps.
Fallback Arena Menu Path — If no prior request exists, the interaction leads directly into the gamemode + arena selection flow.

Safe Async Teleportation — Players are teleported only after their destination chunk is fully loaded asynchronously.
Arena Chunk Load Modes — Supports ` ON_DEMAND`, ` ALWAYS_LOADED`, ` HYBRID`, and ` ALWAYS_FORCED` for per-arena control.
Arena Usage Tracking — Used arenas are auto-marked for chunk ticket persistence (HYBRID/ON_DEMAND).
Teleport Delay Countdown — Configurable wait time with countdown messages like “Teleporting in {seconds}...”.
Cancel-on-Move/Interact/Damage — Players who move, click, or take damage during delay can cancel the teleport mid-way.
Duel-Aware Validation — If a teleport is duel-related, it verifies duel session validity before completing.
Chunk Keep-Alive System — Actively used arenas retain chunk tickets for 30 minutes after last usage, then auto-unload.
Teleport Session Model — Tracks chunk readiness, countdown, arena metadata, cancellation conditions, and teleport lifecycle flags.
Graceful Cleanup Hooks — Automatically clears session memory and cancels countdown tasks if a teleport is interrupted or completed.
Optimized for PvP Flow — Works seamlessly for solo and team duels, admin teleports, and arena returns.
Player Death & Quit Detection — Cancels pending teleports if a player logs out or dies during countdown.
Integrated Queue Fallback — On teleport failure (e.g. arena unload), players are re-queued safely or given feedback.
Full Config Toggles — Every cancellation trigger and delay timer is toggleable in `config.yml`.

MiniMessage Everywhere — Every message, title, lore, button, hover, and prefix supports full MiniMessage formatting.
PlaceholderAPI Integration — Player data and placeholders are resolved dynamically in every response message.
Hover & Click Metadata — Messages support tooltips, clickable actions (suggest/run/open URL), and button components.
Configurable Prefix System — Prefixes are centrally controlled and can be toggled per-message.
BossBar Announcements — Show animated bossbars with optional progress fade and timed hide logic.
ActionBar Messaging — Send color-coded actionbars with fade-in/fade-out and duration control.
Sound Feedback System — Trigger multi-version-compatible sounds per message using the `SoundCompatModel`.
Particle Response Manager — Send particles above players with offset, speed, and count — fully defined in YAML.
Potion Effect Triggers — Apply potion effects like Speed or Haste from messages, configurable in message sections.
Paginated Help with Effects — Help menus trigger bossbars, particles, and sounds to guide user flow.
Component Builders for Buttons — Fully structured buttons with hover/click/clickType, dynamically inserted via `{components}` lists.
Arena + Queue Message Models — Each subsystem (arena, kit, queue) has its own YAML message file and models for separation of concerns.
Failsafe Logging & Deserialization — Invalid configs are caught and reported, with player fallback messaging.

[​IMG]

Need help, found a bug, or have a feature suggestion?
Join our official Discord for fast responses and community discussion!

[​IMG]

  • Quick responses for setup & configuration
  • Bug reports & troubleshooting help
  • Feature requests and voting
  • Sneak peeks at upcoming updates

[​IMG]

  • /duel challenge — Opens GUI or sends usage help.
  • /duel challenge <player> — Challenge a player.
  • /duel accept — Accept a duel request.
  • /duel deny — Deny a duel request.
  • /duel cancel <player> — Cancel a sent duel.
  • /duel queue join <gamemode> <arena> — Join matchmaking queue.
  • /duel queue leave — Leave the queue.
  • /duel block <player> — Block duel requests.
  • /duel unblock <player> — Unblock a player.
  • /duel blockedlist — View your block list.
  • /duel stats — (Coming soon) View duel stats.
  • /duel help [page] — View help pages.

  • /duel admin arena list — List all arenas.
  • /duel admin arena create <name> — Create a new arena.
  • /duel admin arena delete <name> — Delete an arena.
  • /duel admin arena setup <name> — Enter setup mode.
  • /duel admin arena wand — Get the region wand.
  • /duel admin arena setregion — Define arena region.
  • /duel admin arena setspawn <mode> <index> — Set a player spawn.
  • /duel admin arena setadminspawn — Set admin teleport point.
  • /duel admin arena adminspawn <arena> — Teleport to admin spawn.
  • /duel admin arena enable — Enable an arena.
  • /duel admin arena disable — Disable an arena.
  • /duel admin arena enableregen — Enable regeneration.
  • /duel admin arena disableregen — Disable regeneration.
  • /duel admin arena addkit <kit> — Assign a kit to the arena.
  • /duel admin arena removekit <kit> — Unassign a kit.
  • /duel admin arena addgamemode <mode> — Support a new gamemode.
  • /duel admin arena removegamemode <mode> — Remove a gamemode.
  • /duel admin arena info <arena> — Show detailed arena info.

  • /duel admin kit create <name> — Save your inventory as a kit.
  • /duel admin kit save <name> — Overwrite an existing kit.
  • /duel admin kit delete <name> — Delete a kit from system and arenas.
  • /duel admin kit list — Show all available kits.
  • /duel admin kit claim <name> — Give yourself the kit.

  • /duel admin reload — Reload configuration and arena data.
  • /duel admin help [type| [page] — View admin help pages.

[​IMG]

  • conquestduels.user.basecommand — Access to /duel and subcommands
  • conquestduels.user.help — View help pages
  • conquestduels.user.challenge — Send duel requests
  • conquestduels.user.challenge.interact — Duel via right-click
  • conquestduels.user.accept — Accept a duel request
  • conquestduels.user.deny — Deny a duel request
  • conquestduels.user.block — Block/unblock duel requests
  • conquestduels.user.blocklist — View your blocked players
  • conquestduels.user.cancel — Cancel outgoing duel requests
  • conquestduels.user.stats — View duel stats
  • conquestduels.user.queue.command — Use the /duel queue menu
  • conquestduels.user.queue.command.directqueue — Join queue via /duel queue join
  • conquestduels.user.kit.vote — Vote for kits in team duels
  • conquestduels.user.* — Grants all of the above

  • conquestduels.admin — Base node for all admin commands
  • conquestduels.admin.arena.help — View arena help pages
  • conquestduels.admin.arena.create — Create a new arena
  • conquestduels.admin.arena.setup — Use setup tools and region selectors
  • conquestduels.admin.arena.toggle — Enable or disable arenas
  • conquestduels.admin.arena.list — View all arenas
  • conquestduels.admin.arena.delete — Delete an arena
  • conquestduels.admin.arena.teleport — Teleport to admin spawn
  • conquestduels.admin.arena.info — View arena configuration
  • conquestduels.admin.arena.* — Grants all arena-related permissions

  • conquestduels.admin.kit.claim — Claim kits into your inventory
  • conquestduels.admin.kit.save — Overwrite kit with your current gear
  • conquestduels.admin.kit.create — Create a new kit
  • conquestduels.admin.kit.delete — Delete a kit
  • conquestduels.admin.kit.list — View saved kits
  • conquestduels.admin.kit.help — View kit command help
  • conquestduels.admin.kit.* — Grants all kit-related permissions

  • conquestduels.admin.reload — Reload the plugin configuration
  • conquestduels.admin.* — Grants all admin and user permissions
Resource Information
Author:
----------
Total Downloads: 2
First Release: May 12, 2025
Last Update: May 21, 2025
Category: ---------------
All-Time Rating:
0 ratings
Version -----
Released: --------------------
Downloads: ------
Version Rating:
----------------------
-- ratings