ConquestDuels Beta icon

ConquestDuels Beta -----

Literally The Best Duel Plugin (Soon)



Duel Request Handling Improvement
ConquestDuels vX.X.X - GUI Overhaul & Smarter Duels
✅ Tested on 1.20.4 | Highly recommended for performance + usability
[HR][/HR]
✨ New Features
  • Per-GUI Timeout Control
    └ Individual timeout settings for each menu type:
    Code (YAML):

    gui-settings
    :
      challenge-menu-timeout-seconds
    : 60
      confirm-menu-timeout-seconds
    : 30
     
    └ Menus now auto-close based on their own config.
    └ Controlled by `expireStaleEntries()` in each menu manager.
  • Dynamic Multi-Page Titles
    └ GUI titles now reflect actual page number with `{page}/{pages}` placeholders.
    └ Fully supported in config with MiniMessage styling.
  • Refined Join/Quit Behavior
    └ Menus no longer reopen after manually closing.
    └ Stale player detection properly avoids forced reopen on join.
[HR][/HR]
⚔ Duel Request Enhancements
  • Better Context Handling
    └ When challenging via GUI, the system now passes `[challenge:{player}|{page}]` context keys.
    └ This enables correct return behavior from confirmation screens.
  • Stale Challenge Cleanup
    └ Player disconnects now mark viewers as stale if relevant.
    └ Join events auto-refresh menus but never override manual closure.
  • Duel Request Expiry (Configurable)
    Code (YAML):

    duel-requests
    :
      request-expiry-ms
    : 30000
      allow-blocking
    : true
     
    └ Expired duel requests are now silently cleared.
[HR][/HR]
Refactors & Internal Improvements
  • Centralized stale expiration scheduling in ConfigurationManager
  • Reduced scheduler overhead by binding refresh ticks to config timeout
  • Accurate placeholder injection based on current page + total
  • All GUIs tracked with timestamps for low-cost pruning
  • Replaced ambiguous `closeInventory()` overload with `HumanEntity` cast
[HR][/HR]
Bug Fixes
  • Fixed: Menu clicks not working when more than 1 page of targets exists
  • Fixed: Menu would reopen if closed while another player joined
  • Fixed: Placeholder parsing failing on challenge menu after page updates
  • Fixed: Confirm GUI not clearing on player quit
  • Fixed: Title detection failing on dynamic menus
[HR][/HR]
Performance Improvements
  • No more spammy refreshes every tick — now event-based!
  • Minimal allocations and iteration inside `expireStaleEntries()`
  • No GUI refresh if contents or title haven't changed
  • Click + drag handlers are tight and predictable
  • Confirmed stable under heavy concurrency (see Spark profile)
[HR][/HR]
✅ Recommended Action
If upgrading from any prior version:
  1. Back up your config.yml
  2. Let the plugin regenerate missing timeout keys
  3. /duel reload or restart
Let us know if you run into anything — feedback always welcome!
----------, Apr 19, 2025
Resource Information
Author:
----------
Total Downloads: 81
First Release: Apr 18, 2025
Last Update: Today at 1:32 AM
Category: ---------------
All-Time Rating:
2 ratings
Version -----
Released: --------------------
Downloads: ------
Version Rating:
----------------------
-- ratings