
Event-PVP-Plugin
A comprehensive Minecraft plugin combining custom event management and PvP wager system with a modern web interface. Build engaging player experiences with customizable events, arenas, equipment sets, and betting mechanics.
5/5(1)
345
3
Список изменений
Changelog 1.1.0 (Release)
[1.1.0] - 2026-08-18
This is the official release of Event-PVP-Plugin 1.1.0, featuring full dual-platform compatibility for Purpur 26.2 and Vanilla Spigot 26.2, a complete overhaul of the GUI/trading system, modern Kyori Adventure 5.2.0 text formatting with true RGB color support, total deprecation cleanup under Java 21 LTS, unified sub-command handling, and 100% clean localization across all 7 supported languages.
🌟 Release Highlights
- Full Dual-Platform Compatibility (Purpur 26.2 & Spigot 26.2): Native support for Purpur and Paper features (asynchronous teleportation, Adventure components, Paper Registry TagKeys) with seamless, zero-crash fallback to Spigot standard APIs.
- Modern LiveTrade GUI System: The legacy 16-class GUI system has been completely retired and archived into
old-files/, replaced by a unified, real-timeLiveTradearchitecture andLiveTradeBridge. - Adventure Text & True RGB: Complete migration of all chat messages, titles, hover tooltips, and clickable actions to Kyori Adventure 5.2.0 (shaded & relocated to prevent server classloader collisions).
- Interactive Chat & SubCommand Unification: Clickable chat action buttons for challenges, invites, and tokens now delegate directly to unified subcommands (
AcceptSubCommand,DenySubCommand,RespondSubCommand). - 100% Clean Localization Audit (i18n D1–D11): All 11 detectors report 0 Critical and 0 Warnings. 284 legacy orphaned GUI keys safely pruned across all 7 language bundles (
de,en,es,fr,ja,pl,ru) while preserving 100% key parity (815 master keys per language). - Total Deprecation & Warning Cleanup: 100% clean compilation against Java 21 LTS, resolving all compiler deprecation and platform-specific warnings.
- Automated Test Suite & JaCoCo Coverage: 360 comprehensive unit, integration, and MockBukkit tests across 50 test classes (100% green) verifying dual-platform adapters, in-memory Bukkit listeners (friendly fire, spectator recovery, world protection, request cleanup, delayed payouts, stranded player rescue), trade bridges, item migrations, inventory guards, safe location resolvers, event models, team balancing, request handling, and REST/auth APIs, with integrated JaCoCo code coverage.
🚀 Detailed Changes & Features
1. Dual-Platform Compatibility Engine
- Runtime Platform Detection (
Platform.java): Automatically detects whether the host server is running Purpur, Paper, or Vanilla Spigot and activates platform-optimized code paths dynamically. - Shaded Adventure Library:
net.kyori:adventure-api(5.2.0),adventure-text-serializer-legacy, andadventure-text-serializer-plainare shaded and relocated tode.zfzfg.eventplugin.libs.kyori, guaranteeing Adventure support on vanilla Spigot without external dependencies or classloader collisions. - Universal Text Dispatch (
TextUtil.java): Sends native AdventureComponentobjects on Paper/Purpur while automatically serializing to formatted legacy strings on Spigot. - Cross-Platform GUI Factory (
GuiUtil.java): Creates custom inventories using modern Component titles on Purpur and formatted string titles on Spigot. - Cross-Platform Item Metadata (
ItemUtil.java): Manages ItemMeta display names and lores using clean Component pipelines on Purpur (eliminating default italic formatting artifacts) and compatible String lists on Spigot. - Asynchronous Teleportation Adapter (
TeleportUtil.java): Dispatches asynchronous chunk loading and teleportation viaPlayer#teleportAsyncon Paper/Purpur and reliable synchronous teleports on Spigot. - Isolated Paper Registry Helper (
PaperRegistryHelper.java): Isolates Paper 1.21+EnchantmentTagKeys(TREASURE,CURSE) so that the classloader on Spigot servers never encounters missing class definitions when queryingMaterialCatalog.
2. GUI System Modernization & Legacy Archive
- Retired Legacy GUI System: Archived 16 old GUI classes and legacy response handlers into
old-files/and renamed them to.java.oldto prevent classpath pollution in IDEs and build tools. - New
LiveTradeBridge: Bridges command-based wager invitations directly into the modernLiveTradeSessionandLiveTradeGui, pre-filling items and money wagers automatically. - Modernized
/pvprespond: Overhauled command handler to utilizeLiveTradeBridge, giving players a fluid, visual counter-offer and trade interface. - Streamlined Plugin Lifecycle: Cleaned
EventPluginandMatchManagerto remove deprecatedGuiManagerandGuiListenerreferences.
3. Interactive Chat, Action Buttons & Title Formatting
- Interactive Action Buttons: Clickable chat buttons for wager requests (
[► ACCEPT ◄],[✖ DENY],[📋 OPEN GUI]), event broadcast joins, spectator invites, and web authentication. - Unified Subcommands: Consolidated all challenge responses into dedicated, testable subcommands (
AcceptSubCommand,DenySubCommand,RespondSubCommand), eliminating duplicate logic across legacy/pvpyes,/pvpno, and/pvpdenycommands. - Centralized Title Dispatching (
TextUtil#sendTitle): Full RGB title and subtitle delivery with configurable fade-in, stay, and fade-out timings. - Web Token URL Integration: In-game
/eventpvp webtokencommand features one-click clipboard copying and direct browser link integration.
4. Localization & Quality Audit Suite
- Full D1–D11 Detection Suite: Comprehensive audit tool (
tools/i18n_audit.py) validating key lookups, boolean YAML parsers, placeholder mismatches, hardcoded messages, and web-panel translations. - Orphaned Key Pruning (D9): Removed 284 dead message keys resulting from the retirement of legacy GUIs across all 7 language files (
messages_de.yml,messages_en.yml,messages_es.yml,messages_fr.yml,messages_ja.yml,messages_pl.yml,messages_ru.yml). - Complete Parity (D8): 100% key parity across all 7 languages (815 keys per bundle).
- Console & Logger Localization: All terminal outputs standardized in English and routed through
CoreConfigManager.getConsoleMsgwith placeholder support. - Safety Backups: Pre-cleanup configuration archives preserved under
reports/backup_pre_cleanup_1.1.0/.
5. Deprecation & Modern Bukkit API Migration
- BungeeCord Chat Removal: Removed
net.md-5:bungeecord-chatdependency and allplayer.spigot().sendMessage(...)invocations. ChatColorReplacement: Replaced allorg.bukkit.ChatColorusages withTextdelegates.- Modern Attribute System: Migrated
player.getMaxHealth()toplayer.getAttribute(Attribute.MAX_HEALTH).getValue(). - Modern Respawn API: Migrated
player.getBedSpawnLocation()toplayer.getRespawnLocation(). - URL Constructor Modernization: Migrated
new URL(...)toURI.create(...).toURL(). - Potion Effect Registries: Migrated deprecated
PotionEffectTypemethods toorg.bukkit.Registry.POTION_EFFECT_TYPE. - Enchantment Tag Keys: Migrated
isTreasure()andisCursed()to PaperEnchantmentTagKeys. - Native TPS Metric: Removed reflection in
WebApiHandlerand replaced with nativeBukkit.getServer().getTPS(). - PlayerMoveEvent Optimization: Throttled move listeners in
WorldChangeListenerandVoidProtectionListenerusingignoreCancelled = trueandhasChangedBlock(). - Thread-Safe Cooldowns:
CommandCooldownManagersynchronized with thread-safe access patterns. - Event Constructor Modernization (Purpur 26.2 / Paper 1.21): Migrated
EntityDamageEvent,EntityDamageByEntityEvent, andPlayerQuitEventconstructors to current, non-deprecated API signatures with modifier maps andQuitReason.
6. Safety, World Management & Inventory Protection
- Multiverse Integration: Compatible with Multiverse-Core world cloning, arena resetting, and automatic world loading/unloading policies.
- Synchronous Safety Stores: Protected against server crashes and disconnections via
inventory-guard.yml,player-return-locations.yml, andpending-payouts.yml. - Stranded Player Recovery: Automatic detection and safe relocation of players remaining in unloaded or orphaned event/arena worlds upon server join.
7. Architecture Documentation
- Server Compatibility Matrix: Comprehensive reference guide in
docs/SERVER_COMPATIBILITY.md. - Conceptual Analysis & Roadmap: System architecture evaluation and feature roadmap in
docs/PROJEKT_KONZEPT_ANALYSE.md.
8. Automated Test Suite, MockBukkit & Code Coverage Expansion
- Comprehensive Test Suite (360 Tests across 50 Test Classes): Expanded test coverage across all plugin modules (Core, Location, Inventory Guard, Multiverse-Inventories Bridge, Events, PvP Wager, LiveTrade, and Web API).
- In-Memory Server Testing via MockBukkit 26.2: Integrated
MockBukkit-v26.2(4.116.1) andpaper-apifor realistic, in-memory server simulation of listeners and commands (MockBukkitTestBase,VoidProtectionListenerMockTest,PvPListenerMockTest,PvPUnifiedCommandMockTest,TeamPvPListenerMockTest,SpectatorRecoveryListenerMockTest,WorldProtectionListenerMockTest,RequestCleanupListenerMockTest,PendingPayoutListenerMockTest,StrandedPlayerListenerMockTest). - JaCoCo Code Coverage (
jacoco-maven-plugin:0.8.12): Automated coverage measurement and HTML report generation (target/site/jacoco/index.html). - Modern Mocking & Assertions: Integrated
mockito-junit-jupiter:5.11.0andassertj-core:3.25.3with Java 21 dynamic agent loading support. - Quality Improvements: Enhanced
InputValidatorwithNaNandInfinitybounds checks and hardenedSafeLocationResolverwith null-safe return store lookups.
📦 Technical Specifications
| Property | Value |
|---|---|
| Plugin Version | 1.1.0 |
| Java Version | Java 21 LTS (Source / Target) |
| Target API | purpur-api:26.2.build.2618-stable |
| Supported Server Engines | Purpur 26.2+, Paper 1.21.x / 1.20.5+, Pufferfish 1.21.x, Spigot 26.2 / 1.21.x |
| Unsupported Engines | Folia (requires regionised scheduler rebuild), 1.19.4 & older |
| Kyori Adventure | 5.2.0 (Shaded & Relocated to de.zfzfg.eventplugin.libs.kyori) |
| Test Suite | 360 Passed Unit, Integration & MockBukkit Tests (100% Green, 50 Classes) |
| Code Coverage | JaCoCo 0.8.12 (target/site/jacoco/index.html) |
| Localization | 7 Languages (de, en, es, fr, ja, pl, ru) – 815 Master Keys |
🔧 Upgrade & Migration Notes
- Drop-in Replacement:
event-pvp-plugin-1.1.0.jaris a direct replacement for previous 1.0.x and 1.1.0-beta builds. - Java 21 Required: Ensure your server runtime is Java 21 or higher.
- Configuration Compatibility: All existing configuration files (
config.yml,messages_*.yml,worlds.yml,equipment.yml,web-config.yml) remain fully compatible and will be migrated automatically if new keys are present. - Dependencies:
Multiverse-CoreandVaultare recommended for full feature support (arena resetting and economy wagers).
Файлы
event-pvp-plugin-1.1.0.jar(3.49 MiB)
ОсновнойМетаданные
Канал релиза
Release
Номер версии
1.1.0
Загрузчики
BukkitPaperPurpurSpigot
Версии игры
26.1–26.2
Загрузок
14
Дата публикации
20.08.2026
