A Paper plugin for a configurable PvP battle hall. It is built for the server line shown in the supplied log:
- Paper
26.1.2-63 - Minecraft
26.1.2 - Java
25
A datapack can run commands and scoreboards, but this project needs reliable inventory snapshots, GUI clicks, player death/quit listeners, countdown state, per-match rule enforcement, and easy admin setup. Those are all much cleaner and safer as a Paper plugin.
Run the included Gradle wrapper:
.\gradlew.bat buildCopy the generated jar from build/libs/BattleArena-0.1.0.jar into the server plugins/ folder and restart the server.
Stand where each point should be and run:
/battleadmin sethall
/battleadmin create main
/battleadmin setlobby main
/battleadmin setspawn main 1
/battleadmin setspawn main 2
Players can then use:
/battle menu
The current flow is a 1v1 open challenge:
- The host opens
/battle menu, chooses arena, kit, duration, and rules. - The host clicks confirm.
- Another player joins with
/battle join <host>. - Both players have the pending window to abort with
/battle abort. - When the countdown completes, the match starts.
/battle menu- open the rules menu./battle join <host>- join an open challenge./battle abort- cancel your pending challenge or leave the pending challenge you joined./battle status- show your active or pending match state./battleadmin sethall- save the current location as the battle hall./battleadmin create <id>- create an arena entry./battleadmin setlobby <id>- set the arena return lobby./battleadmin setspawn <id> 1|2- set arena spawn points./battleadmin list- list configured arenas.
This first version supports a working foundation: one arena at a time per configured arena, two-player matches, kit selection, match duration, projectile toggle, natural regeneration toggle, last-standing winner logic, and health comparison when time expires.
Future modes can be added by expanding BattleMode, WinCondition, and BattleDraft.