A highly modified Minecraft plugin for 1v1 dueling with lobby and game server components. This plugin provides a comprehensive dueling system with custom kits, arena management, and GUI-based matchmaking.
- GUI-based Duel System: Players can open duel GUIs using
/openduelguicommand instead of signs - Custom Kit System: Players can save and load custom inventory layouts
- Arena Management: Automatic arena creation with worldname-number naming convention
- MySQL Database Integration: Persistent stats and player data storage
- Multi-server Architecture: Separate lobby and game servers with BungeeCord support
- Dynamic Arena Creation: Automatic world cloning using Multiverse-Core
- Kit Management: Save custom kits with
/kitsaveand reset with/resetkit - Scoreboard Support: Optional in-game scoreboards
- TNT Support: Configurable TNT gameplay
- Statistics Tracking: Win/loss ratios and game history
- Duel GUI: Interactive interface for joining duels
- NPC Integration: Command-based GUI opening through NPCs
- Server Navigation: Seamless connection to game servers
- Java 17 or higher
- Minecraft Server: Paper/Spigot 1.17+ (tested on 1.21.10)
- Multiverse-Core: Required for world management
- MySQL Database: For player statistics and data persistence
- BungeeCord/Velocity: For multi-server setup (optional)
# Build all modules
mvn clean package
# Build specific modules
mvn clean package -pl GameServer
mvn clean package -pl Lobby- Create a MySQL database
- Import the provided SQL schema from
src/main/resources/dbsetup.sql - Configure database connection in
config.yml
- Install Multiverse-Core on your game server
- Create template worlds for your arenas
- Configure world names in the plugin config
- Game Server: Place
GameServer-1.2.2.jarinplugins/folder - Lobby Server: Place
OneVsOneLobby.jarinplugins/folder - Configure
config.ymlfiles for each server type
# Basic settings
ServerName: "GameServer1"
setupmode: false
debug: false
# Features
scoreboard: true
tnt: false
leaveCommand: true
# Database settings
database:
host: "localhost"
port: 3306
database: "onevsone"
username: "user"
password: "password"
# Maps configuration
Maps:
- "world1"
- "world2"
- "world3"Configure server connections and GUI settings in the lobby configuration file.
/OneVsOne- Manage OneVsOne plugin (admin)/OneVsOneSetup- Setup arenas and configuration (admin)/leaveor/l- Leave current arena/kitsave- Save your current inventory as a kit/resetkit- Reset your kit to default
/onevsonelobby- Manage lobby settings (admin)/openduelgui- Open the duel selection GUI
OneVsOne.admin- Administrative accessOneVsOne.stats.me- View own statisticsOneVsOne.stats.other- View other players' statistics
onevsonelobby.admin- Lobby administration
1vs1/
├── GameServer/ # Game server plugin
│ ├── src/main/java/ # Core game logic
│ └── src/main/resources/ # Configurations
└── Lobby/ # Lobby server plugin
├── src/main/java/ # Lobby and GUI logic
└── src/main/resources/ # Configurations
- Arena Management: Dynamic world creation and deletion
- Kit System: Custom inventory saving/loading
- Database Layer: MySQL integration for persistence
- GUI System: Interactive duel selection interface
# Build all modules
mvn clean package
# Build GameServer only
mvn clean package -pl GameServer
# Build Lobby only
mvn clean package -pl Lobby
# Compile only
mvn compile
# Run tests
mvn test -Dtest=TestClassName- Java 17+ with 4-space indentation
- PascalCase for classes, camelCase for methods/variables
- Use
@Nullableand@NotNullannotations - Follow existing code patterns and conventions
- Spigot API 1.21.10-R0.1-SNAPSHOT
- Multiverse-Core 5.3.3
- MySQL Connector 8.4.0
- fastBoard 2.1.5
- bstats 3.0.2
- Spigot API 1.21.10-R0.1-SNAPSHOT
- bstats 3.0.2
- Multiverse-Core not found: Ensure Multiverse-Core is installed and enabled
- Database connection failed: Check MySQL credentials and network connectivity
- World cloning fails: Verify template worlds exist and are properly configured
- GUI not opening: Check permissions and ensure lobby server is properly configured
Enable debug mode in config.yml:
debug: trueThis will provide detailed logging for troubleshooting.
- Fork the repository
- Create a feature branch
- Make your changes following the code style guidelines
- Test your changes thoroughly
- Submit a pull request
This project is a modified version of an original plugin. Please check the original license terms.
For issues and support:
- Check the troubleshooting section
- Enable debug mode and check logs
- Report issues with detailed information about your setup
- 1.2.2: Latest stable version with Multiverse-Core 5.3.3 integration
- 1.2.1: Enhanced world cloning and error handling
- 1.2.0: Added custom kit system and GUI improvements
- Earlier versions: Basic 1v1 functionality with sign-based joining# Testing workflow trigger