- Removed license system - will be coming back under legion network's systems.
- Updated how the duel arena event ends. It is no longer possible for items to be duped. (This fix may require users to have to manually leave arenas if they are left alive or spectating, I will be changing this soon I just wanted a hot fix out there)
- New resource ownership! There is a new discord for support. https://discord.gg/legionnetwork
[+] Added schematic regeneration
[~] Reworked regeneration
[+] Added FAWE and WorldEdit support
[~] Reworked disconnecting in duel
[~] Fixed issue with count down phase & ender pearls
[~] Fixed folia bugs
[~] Fixed issue with regeneration
[~] Fixed issue with sand physics - sand blocks not being restored when they moved due to physics
[~] Fixed issue with reddis - full rework
[+] Added kit based duels to clear players on duel end etc.
Please make sure to update your config.yml:
YAML:# ============================================ # DONUT DUELS CONFIGURATION # ============================================ # Plugin: DonutDuels # Author: LeafStudios # Version: ${project.version} # Support: https://discord.gg/fRvpS3d4 # Compatibility: Spigot, Paper, Folia (1.16.5 - 1.21.11) # ============================================ # ============================================ # GENERAL SETTINGS # ============================================ general: default-duel-time: 300 # 5 minutes in seconds cleanup-time: 240 # 4 minutes after duel ends loot-collection-time: 240 # 4 minutes to collect loot debug-mode: false # Set to true to enable debug console messages # Loot settings keep-loot-on-death: true # If true, player loot drops when they die in duels clear-drops-on-death: false # If true, clears all drops when player dies in duels # ============================================ # KIT DUEL SETTINGS # ============================================ kit-duel: enabled: false # If true, clears winner's inventory (contents + armor + off-hand) when they win, # BEFORE clearing arena drops — so winners cannot pick up opponent items. clear-winner-inventory-on-win: true # If true, suppresses the "duel-victory" loot message (useful when there is no loot to collect). disable-victory-loot-message: true # Death settings spectator-mode-on-death: true # If true, puts loser in spectator mode at death location spectator-duration: 100 # Duration in ticks (100 ticks = 5 seconds) before they can leave insta-respawn: true # If true, players respawn instantly at death location in spectator mode # Draw settings both-players-required-for-draw: true # If true, both players must agree to draw draw-timeout: 30 # Time in seconds for draw request timeout # Entity cleanup auto-clear-entities: true # Clear entities (items, arrows, etc.) after duel ends clear-entity-types: - DROPPED_ITEM - ARROW - SPECTRAL_ARROW - TRIDENT - EXPERIENCE_ORB - PRIMED_TNT arena-regeneration: enabled: true duel-start-commands: - "give %player% diamond_sword 1" duel-end-commands: - "give %winner% gold_ingot 5" messages: use-actionbar: true # If true, duel messages are shown in action bar instead of chat language: "EN_US" # Language for messages (Options are EN_US and NL_BE) # Spawn settings spawn: # World name where spawn is located world: "world" # Spawn coordinates x: 0.5 y: 100.0 z: 0.5 # Optional: Rotation (yaw and pitch) yaw: 0.0 pitch: 0.0 # Use player's last location before duel (recommended: true) # If false, always use the spawn location above use-last-location: true # ============================================ # BUNGEECORD / CROSS-SERVER DUEL SETTINGS # ============================================ # How it works: # 1. Player1 (on server1) does /duel Player2 (on server2). # 2. Redis sends both players to the configured duel-server. # 3. The duel runs on the duel-server. # 4. When the duel ends, both players are sent to post-duel-server (lobby/spawn). # # Requirements: # - Redis must be enabled and reachable from all servers. # - All servers must run DonutDuels with the same config. # - Set a unique server-name on EACH server (must match BungeeCord names). bungeecord: enabled: false # The unique name of THIS server (must match the name in BungeeCord config.yml). server-name: "duels1" # Cross-server duel routing # Server that will host the actual duel arena(s). duel-server: "duels1" # Server players are sent to after a duel ends (e.g. hub/lobby). post-duel-server: "lobby" redis: enabled: true host: "localhost" port: 6379 password: "" # Leave empty if no password # CURRENTLY DOES NOT WORK isolation: tab: enabled: false plugin-name: "TAB" # ============================================ # DATABASE SETTINGS # ============================================ database: type: "h2" # Options: h2 (.db), mysql (mysql), yaml (.yml) ALL STORAGE FILES TYPES mysql: jdbc-url: "" # Optional, e.g. "jdbc:mysql://localhost:3306/donutduels?useSSL=false" host: "localhost" port: 3306 database: "donutduels" user: "root" password: "password" # ============================================ # DUEL SYSTEM SETTINGS # ============================================ duels: enabled: true max-duel-time: 600 # 10 minutes in seconds request-timeout: 60 # 1 minute allow-same-world-only: false # Countdown settings countdown: enabled: true duration: 5 # Countdown duration in seconds (5, 4, 3, 2, 1, GO!) freeze-players: true # Prevent players from moving during countdown show-titles: true # Show countdown titles play-sounds: true # Play countdown sounds # Sound effects sounds: duel-start: enabled: true sound: "ENTITY_GENERIC_EXPLODE" volume: 1.0 pitch: 1.0 countdown: enabled: true sound: "BLOCK_NOTE_BLOCK_PLING" volume: 1.0 pitch: 1.0 final-sound: "BLOCK_NOTE_BLOCK_PLING" # Sound for "GO!" final-pitch: 2.0 victory: enabled: true type: "SOUND" # SOUND or MUSIC_DISC sound: "ENTITY_PLAYER_LEVELUP" # Used if type is SOUND music-disc: "MUSIC_DISC_PIGSTEP" # Used if type is MUSIC_DISC volume: 1.0 pitch: 1.0 duration: 100 # Duration in ticks for music disc playback queue-joined: enabled: true sound: "BLOCK_NOTE_BLOCK_HARP" volume: 0.8 pitch: 1.2 queue-match-found: enabled: true type: "SOUND" # SOUND or MUSIC_DISC sound: "ENTITY_EXPERIENCE_ORB_PICKUP" music-disc: "MUSIC_DISC_STAL" volume: 1.0 pitch: 1.5 duration: 60 # Duration in ticks for music disc playback # ============================================ # SPECTATOR SETTINGS # ============================================ spectator: enabled: true allow-spectating-duels: true # Allow players to spectate ongoing duels spectator-gamemode: SPECTATOR # Gamemode for spectators teleport-to-center: true # Teleport spectators to arena center prevent-interaction: true # Prevent spectators from interacting with anything show-spectator-count: true # Show spectator count to duel participants # ============================================ # ARENA MANAGEMENT # ============================================ arenas: # Default arenas (created on first run) default-arenas: - "spawn_arena" - "desert_arena" - "forest_arena" arena: max-region-blocks: 750000 # Max allowed blocks (recommended: 500k–1M) warn-large-region: 200000 # Warn player if region is bigger than this enable-region-size-check: true # Set to false to disable all limits (not recommended) do-mob-spawn: false # Prevent mobs from spawning in duel arenas particles: enabled: true type: "END_ROD" # Best looking: END_ROD, FLAME, REDSTONE (with red color), SPELL_WITCH count: 1 # 1 is enough for clean lines duration: 200 # 10 seconds (20 ticks = 1 second) # ============================================ # QUEUE SYSTEM # ============================================ queue: enabled: true max-queue-time: 600 # Maximum time in queue before auto-removal sounds: queue-music: enabled: true # Set to false to disable music when in queue music-disc: "MUSIC_DISC_WAIT" # Valid music disc sound # ============================================ # COMMAND RESTRICTIONS # ============================================ command-restrictions: enabled: true allowed-commands: - "leave" - "draw" - "msg" - "tell" blocked-commands: - "tp" - "teleport" - "home" - "spawn" - "warp" - "back" - "fly" - "gamemode" # ============================================ # STATISTICS # ============================================ statistics: tracking: wins: true losses: true total-duels: true leaderboards: enabled: true update-interval: 300 # 5 minutes display-count: 10 # Top 10 players # ============================================ # SECURITY & ANTI-CHEAT # ============================================ security: anti-cheat: enabled: true kick-on-detection: true log-violations: true integrity-checks: movement-validation: true inventory-protection: true world-border-enforcement: true abuse-prevention: request-cooldown: 30 # 30 seconds between duel requests max-requests-per-hour: 20 queue-hop-penalty: 60 # 1 minute penalty for leaving queue frequently # ============================================ # PERFORMANCE & OPTIMIZATION # ============================================ performance: auto-cleanup: enabled: true interval: 600 # 10 minutes memory-optimization: clear-unused-arenas: true optimize-statistics: true # ============================================ # PLUGIN INFORMATION {Do Not Edit or Your Plugin will Break} # ============================================ plugin-info: version: "${project.version}" author: "LeafStudios" license: "Commercial" support: "https://discord.gg/K5PD2h62yA" compatibility: "Spigot, Paper, Folia (1.16.5 - 1.21.11)"
[~] Changed /leave so you cant use it in count down
[~] Changed /draw so you cant place or destroy blocks as these dont get saved by the arena regeneration.
[~] Fixed where player teleports after duel
[+] Added /duelsetspawn - if player does not have a location before duel started he spawns here or if you turn off use-last-location: true
[~] Fixed /leave command functions properly now
[~] Version fixes for folia
[+] License system update - you can keep using your current license dont worry
