PvPIndex BattlesСкачатьСкачатьСкачатьСкачатьСкачатьСкачатьСкачать
ВЕРСИИ (7)
release
PvPIndex Battles 1.1.2 (BungeeCord)
1.1.2-bungeecord26 июл. 2026 г.18Minecraft: 1.21, 1.21.1, 1.21.2, 1.21.3, 1.21.4, 1.21.5, 1.21.6, 1.21.7, 1.21.8, 1.21.9, 1.21.10, 1.21.11, 26.1, 26.1.1, 26.1.2bungeecord, waterfall
Что нового
### Added
- Configurable `api.max_api_payload_bytes` limit (default 5 MB) guarding outgoing battle submissions; oversized payloads are automatically trimmed before submission via the new `BattlePayloadSizeGuard`.
- Battle submissions to the PvPIndex API are now gzip-compressed (`Content-Encoding: gzip`), reducing bandwidth for large replay payloads.
- Oversized submissions rejected by the API with HTTP 413 are automatically retried with replay frames stripped, instead of failing outright.
- New message key `queue.arena_teleport_failed` shown when a match cannot start because the arena world was not ready.
### Changed
- Split the monolithic `BattleService` into focused collaborators (`BattleStartHandler`, `BattleEndHandler`, `BattleSubmissionFlow`, `BattleSubmissionRetryHandler`, `BattlePayloadBuilder`, `BattleStartSetupStore`) for clearer separation of concerns and easier testing.
- Extracted API request/compression helpers (`ApiRequestBuilder`, `CompressionService`) shared by the Paper API client.
### Fixed
- **Arena teleport failures no longer strand players in survival with their kit.** `BattleQueueService` now checks the result of the arena teleport; on failure the match is aborted, both players' pre-battle state is restored, and queued players are automatically re-queued instead of being left in the arena template world wearing battle gear.
- **Arena world save race on cleanup**: arena worlds now have autosave disabled immediately after creation, and their folders are deleted a few ticks after unload (with retries) instead of synchronously, preventing `NoSuchFileException` on `raids.dat` / `level.dat` under Multiverse and similar world-management plugins.
---
release
PvPIndex Battles 1.1.2 (Velocity)
1.1.2-velocity26 июл. 2026 г.13Minecraft: 1.21, 1.21.1, 1.21.2, 1.21.3, 1.21.4, 1.21.5, 1.21.6, 1.21.7, 1.21.8, 1.21.9, 1.21.10, 1.21.11, 26.1, 26.1.1, 26.1.2velocity
Что нового
### Added
- Configurable `api.max_api_payload_bytes` limit (default 5 MB) guarding outgoing battle submissions; oversized payloads are automatically trimmed before submission via the new `BattlePayloadSizeGuard`.
- Battle submissions to the PvPIndex API are now gzip-compressed (`Content-Encoding: gzip`), reducing bandwidth for large replay payloads.
- Oversized submissions rejected by the API with HTTP 413 are automatically retried with replay frames stripped, instead of failing outright.
- New message key `queue.arena_teleport_failed` shown when a match cannot start because the arena world was not ready.
### Changed
- Split the monolithic `BattleService` into focused collaborators (`BattleStartHandler`, `BattleEndHandler`, `BattleSubmissionFlow`, `BattleSubmissionRetryHandler`, `BattlePayloadBuilder`, `BattleStartSetupStore`) for clearer separation of concerns and easier testing.
- Extracted API request/compression helpers (`ApiRequestBuilder`, `CompressionService`) shared by the Paper API client.
### Fixed
- **Arena teleport failures no longer strand players in survival with their kit.** `BattleQueueService` now checks the result of the arena teleport; on failure the match is aborted, both players' pre-battle state is restored, and queued players are automatically re-queued instead of being left in the arena template world wearing battle gear.
- **Arena world save race on cleanup**: arena worlds now have autosave disabled immediately after creation, and their folders are deleted a few ticks after unload (with retries) instead of synchronously, preventing `NoSuchFileException` on `raids.dat` / `level.dat` under Multiverse and similar world-management plugins.
---
release
PvPIndex Battles 1.1.2 (Paper)
1.1.2-paper26 июл. 2026 г.130Minecraft: 1.21, 1.21.1, 1.21.2, 1.21.3, 1.21.4, 1.21.5, 1.21.6, 1.21.7, 1.21.8, 1.21.9, 1.21.10, 1.21.11, 26.1, 26.1.1, 26.1.2bukkit, folia, paper, purpur, spigot
Что нового
### Added
- Configurable `api.max_api_payload_bytes` limit (default 5 MB) guarding outgoing battle submissions; oversized payloads are automatically trimmed before submission via the new `BattlePayloadSizeGuard`.
- Battle submissions to the PvPIndex API are now gzip-compressed (`Content-Encoding: gzip`), reducing bandwidth for large replay payloads.
- Oversized submissions rejected by the API with HTTP 413 are automatically retried with replay frames stripped, instead of failing outright.
- New message key `queue.arena_teleport_failed` shown when a match cannot start because the arena world was not ready.
### Changed
- Split the monolithic `BattleService` into focused collaborators (`BattleStartHandler`, `BattleEndHandler`, `BattleSubmissionFlow`, `BattleSubmissionRetryHandler`, `BattlePayloadBuilder`, `BattleStartSetupStore`) for clearer separation of concerns and easier testing.
- Extracted API request/compression helpers (`ApiRequestBuilder`, `CompressionService`) shared by the Paper API client.
### Fixed
- **Arena teleport failures no longer strand players in survival with their kit.** `BattleQueueService` now checks the result of the arena teleport; on failure the match is aborted, both players' pre-battle state is restored, and queued players are automatically re-queued instead of being left in the arena template world wearing battle gear.
- **Arena world save race on cleanup**: arena worlds now have autosave disabled immediately after creation, and their folders are deleted a few ticks after unload (with retries) instead of synchronously, preventing `NoSuchFileException` on `raids.dat` / `level.dat` under Multiverse and similar world-management plugins.
---
release
PvPIndex Battles 1.1.1 (BungeeCord)
1.1.1-bungeecord16 июл. 2026 г.8Minecraft: 1.21, 1.21.1, 1.21.2, 1.21.3, 1.21.4, 1.21.5, 1.21.6, 1.21.7, 1.21.8, 1.21.9, 1.21.10, 1.21.11, 26.1, 26.1.1, 26.1.2bungeecord, waterfall
Что нового
### Added
- Kit item support for per-item `potion_effects` in `gamemodes.yml`. Potion items can now define explicit effects using `TYPE:durationTicks:amplifier` (for example, `INSTANT_HEALTH:1:1`).
- New PlaceholderAPI placeholder `%pvpindex_battle_short_id%` returning the current game mode plus the first segment of the active battle UUID (e.g. `mace-550e8400`).
- New PlaceholderAPI placeholders `%pvpindex_battle_id%` (full battle UUID) and `%pvpindex_short_battle_id%` (first segment only).
- Configurable double-teleport to prevent `/back` commands from teleporting to the arena after battle end. When `battle_commands.prevent_back_command` is enabled (default), players are teleported twice to their restored location so `/back` points to a safe post-battle location instead of the arena.
### Fixed
- Ender pearls, chorus fruit, bows, crossbows, fire charges, and wind charges can no longer be used during the pre-battle countdown, preventing players from moving or attacking before the battle has officially started.
- Added `BattleSessionCache` for O(1) player-to-active-battle lookups, replacing linear scans in event handlers.
- Split `BattleEventListener` into focused listener classes under `com.pvpindex.battles.listener.battle` (one `@EventHandler` per class) and a thin backward-compatible facade.
- Pot PvP and NoDebuff starter kits no longer give empty splash potions. The default `SPLASH_POTION` entries in `gamemodes.yml` now include explicit potion effects (Healing II, Strength II, Speed II, and Regeneration II where applicable).
- Kit item display names and lore now translate legacy `&` colour codes when applied, so potion names like `&aHealing II` render with colours in-game instead of raw ampersand codes.
- Tipped arrows in kits now apply their configured potion effect on hit. `KitApplier` derives a base `PotionType` from the first item effect so the game recognises the arrow payload.
- Network node timeout boundary handling is now inclusive, fixing `proxyNodeTimeoutDetection` for `isTimedOut(0)` and preventing zero-second timeout edge-case mismatches.
- README build output examples now reference `1.1.1` JAR filenames to match the current Maven project version.
---
release
PvPIndex Battles 1.1.1 (Velocity)
1.1.1-velocity16 июл. 2026 г.11Minecraft: 1.21, 1.21.1, 1.21.2, 1.21.3, 1.21.4, 1.21.5, 1.21.6, 1.21.7, 1.21.8, 1.21.9, 1.21.10, 1.21.11, 26.1, 26.1.1, 26.1.2velocity
Что нового
### Added
- Kit item support for per-item `potion_effects` in `gamemodes.yml`. Potion items can now define explicit effects using `TYPE:durationTicks:amplifier` (for example, `INSTANT_HEALTH:1:1`).
- New PlaceholderAPI placeholder `%pvpindex_battle_short_id%` returning the current game mode plus the first segment of the active battle UUID (e.g. `mace-550e8400`).
- New PlaceholderAPI placeholders `%pvpindex_battle_id%` (full battle UUID) and `%pvpindex_short_battle_id%` (first segment only).
- Configurable double-teleport to prevent `/back` commands from teleporting to the arena after battle end. When `battle_commands.prevent_back_command` is enabled (default), players are teleported twice to their restored location so `/back` points to a safe post-battle location instead of the arena.
### Fixed
- Ender pearls, chorus fruit, bows, crossbows, fire charges, and wind charges can no longer be used during the pre-battle countdown, preventing players from moving or attacking before the battle has officially started.
- Added `BattleSessionCache` for O(1) player-to-active-battle lookups, replacing linear scans in event handlers.
- Split `BattleEventListener` into focused listener classes under `com.pvpindex.battles.listener.battle` (one `@EventHandler` per class) and a thin backward-compatible facade.
- Pot PvP and NoDebuff starter kits no longer give empty splash potions. The default `SPLASH_POTION` entries in `gamemodes.yml` now include explicit potion effects (Healing II, Strength II, Speed II, and Regeneration II where applicable).
- Kit item display names and lore now translate legacy `&` colour codes when applied, so potion names like `&aHealing II` render with colours in-game instead of raw ampersand codes.
- Tipped arrows in kits now apply their configured potion effect on hit. `KitApplier` derives a base `PotionType` from the first item effect so the game recognises the arrow payload.
- Network node timeout boundary handling is now inclusive, fixing `proxyNodeTimeoutDetection` for `isTimedOut(0)` and preventing zero-second timeout edge-case mismatches.
- README build output examples now reference `1.1.1` JAR filenames to match the current Maven project version.
---
release
PvPIndex Battles 1.1.1 (Paper)
1.1.1-paper16 июл. 2026 г.32Minecraft: 1.21, 1.21.1, 1.21.2, 1.21.3, 1.21.4, 1.21.5, 1.21.6, 1.21.7, 1.21.8, 1.21.9, 1.21.10, 1.21.11, 26.1, 26.1.1, 26.1.2bukkit, folia, paper, purpur, spigot
Что нового
### Added
- Kit item support for per-item `potion_effects` in `gamemodes.yml`. Potion items can now define explicit effects using `TYPE:durationTicks:amplifier` (for example, `INSTANT_HEALTH:1:1`).
- New PlaceholderAPI placeholder `%pvpindex_battle_short_id%` returning the current game mode plus the first segment of the active battle UUID (e.g. `mace-550e8400`).
- New PlaceholderAPI placeholders `%pvpindex_battle_id%` (full battle UUID) and `%pvpindex_short_battle_id%` (first segment only).
- Configurable double-teleport to prevent `/back` commands from teleporting to the arena after battle end. When `battle_commands.prevent_back_command` is enabled (default), players are teleported twice to their restored location so `/back` points to a safe post-battle location instead of the arena.
### Fixed
- Ender pearls, chorus fruit, bows, crossbows, fire charges, and wind charges can no longer be used during the pre-battle countdown, preventing players from moving or attacking before the battle has officially started.
- Added `BattleSessionCache` for O(1) player-to-active-battle lookups, replacing linear scans in event handlers.
- Split `BattleEventListener` into focused listener classes under `com.pvpindex.battles.listener.battle` (one `@EventHandler` per class) and a thin backward-compatible facade.
- Pot PvP and NoDebuff starter kits no longer give empty splash potions. The default `SPLASH_POTION` entries in `gamemodes.yml` now include explicit potion effects (Healing II, Strength II, Speed II, and Regeneration II where applicable).
- Kit item display names and lore now translate legacy `&` colour codes when applied, so potion names like `&aHealing II` render with colours in-game instead of raw ampersand codes.
- Tipped arrows in kits now apply their configured potion effect on hit. `KitApplier` derives a base `PotionType` from the first item effect so the game recognises the arrow payload.
- Network node timeout boundary handling is now inclusive, fixing `proxyNodeTimeoutDetection` for `isTimedOut(0)` and preventing zero-second timeout edge-case mismatches.
- README build output examples now reference `1.1.1` JAR filenames to match the current Maven project version.
---
release
PvPIndex Battles 1.1.0
1.1.01 июл. 2026 г.19Minecraft: 1.21, 1.21.1, 1.21.2, 1.21.3, 1.21.4, 1.21.5, 1.21.6, 1.21.7, 1.21.8, 1.21.9, 1.21.10, 1.21.11bukkit, folia, paper, purpur, spigot
Что нового
## What's Changed
### Added
- **Vault economy rewards** ([#15](https://github.com/PVP-Index/pvpindex-battles/issues/15)): battle winners now receive configurable currency payouts via the Vault API. Fully configured through `vault-rewards.yml` with per-game-mode base amounts and an optional win streak multiplier. Vault is a soft dependency: if not installed, rewards are silently disabled. Closes [#15](https://github.com/PVP-Index/pvpindex-battles/issues/15).
- New `vault-rewards.yml` configuration file. All settings live under a top-level `economy:` key with `enabled`, `rewards` (per-mode amounts), and `streak_multiplier` (enabled, increment, max, min_streak) sections. The bundled default ships with `economy.enabled: false` so a fresh install does not pay out until opted in.
- New `VaultRewardService` in `platform-paper` that hooks into Vault, listens for `PvPIndexBattleFinishEvent`, and deposits rewards.
- New `VaultRewardConfig` record for parsing and validating reward configuration from the `economy` section.
- New PlaceholderAPI placeholders: `%pvpindex_reward_last%` (last reward received) and `%pvpindex_streak%` (current win streak).
- New lang keys `reward.received` and `reward.received_streak` in all 6 bundled locale files (en, de, nl, es, pl, zh).
- Vault status line in the startup summary showing whether economy rewards are active.
### Changed
- **Console banner redesign**: startup banner now displays a large ASCII art "PVP INDEX" with a Green-Yellow-Red gradient. Info line shows version, platform, and author (PVP Index).
- **Shutdown message**: updated to display "PVP INDEX has been disabled. Goodbye!" in red/grey styling.
- **Paper 26.1.x adapter build**: the `paper.26.1.x` version module now compiles against the stable Paper API `26.1.2.build.57-stable` using the Java 25 toolchain, so the adapter builds cleanly across the supported 1.21.x to 26.1.x range.
- Upgraded `maven-shade-plugin` to `3.6.2` (bundles ASM 9.8+) so the relocated bStats and Jackson dependencies shade correctly against Java 25 bytecode.
### Fixed
- **Cross-server challenges from a lobby**: challenging a player who was on a backend server (or behind another proxy) from a lobby silently timed out. Lobby servers relied on a player-location cache that went stale once a player moved to a non-lobby backend, so the challenge was routed to a node where the target was not present. The lobby now only uses the direct lobby-to-lobby Redis path when the cache confirms the target is on a live lobby node; otherwise it broadcasts the challenge over Redis to the proxies, which authoritatively resolve the target's current server and forward it. Challenges now work from any server to any server.
- **Proxy challenge routing over Redis**: Velocity proxies now handle inbound `CHALLENGE_SEND` messages over Redis (not only plugin messaging), resolving the target across all connected backends and forwarding the challenge. This removes the dependency on plugin messaging channels, which could break after a backend restarted independently of the proxy.
- **SMP challenge confirmation**: accepting an SMP-mode challenge through the risk-confirmation dialog did nothing because closing the inventory cleared the pending GUI state before it was read. The mode and challenge target are now captured before the inventory closes.
- **Return-to-origin after a cross-server battle**: players transferred to another server for a battle were left waiting on the host server for two seconds before being returned, which looked like a double teleport. They are now sent straight back to the server they came from once the battle ends.
---
---
### Downloads
| JAR | Target |
|-----|--------|
| `PvPIndexBattles-1.1.0.jar` | Paper 1.21.x / 1.21.4+ |
| `PvPIndexBattles-velocity-1.1.0.jar` | Velocity 3.x |
| `PvPIndexBattles-bungeecord-1.1.0.jar` | BungeeCord / Waterfall |
Full documentation: https://docs.pvpindex.com