2 Dragons minigames in 1 plugin, you can have both running.
Multi-Arena and BungeeCord support.
Achievements.
SQLite and MySQL support.
Leaderboard.
Extremely configurable.
Signs, Scoreboard, messages, options and more.
Save and restore player inventory, levels and more.
Reward System.
Kits
Very easy to setup.
Map Records
Bugs
If you have any issues, report via discussion or private message.
Do not use the rating area to report bugs or request features. Please go to discussion.
Dependencies
Dragons can run all systems by himself, however, you can install
Vault to work with global economy.
Optionally, you can use only PlaceholderAPI to work with Leaderboards, so HolographicDisplays (see below) isn't a requirement.
PlaceholderAPI support
The following placeholders are available, they are self explanatory:
Required permission:
dragons.setup First of all set global spawn using
/dr setgspawn
Create your arena - /dr create <name> Dragons (Solo/Teams)
Add player spawn - /dr addSpawn <name>
Set lobby - /dr setLobby <name>
Set Sky - /dr setSky <name>
Add dragon spawn - /dr addDragon <name>
DO NOT add a dragon spawn BELOW the SKY!
Set min players - /dr setMinPlayers <name> <amount>
Set max players - /dr setMaxPlayers <name> <amount>
(Optional) Water Damage - /dr setWaterDamage <name> <true/false>
Finish setup and create game -/dr finish <name>
Teams Mode
If there are two players alive and both are from the same team the game will end. Spectators of the Winner Team will also be rewarded with a win if they don't leave the game before it ends.
You can set the map to TEAMS or SOLO mode by using
/dragons setArenaMode <Arena> <SOLO/TEAMS>
Sign format:
[Dragons]
join
ArenaName
Arena setup (Dragon Escape)
Required permission:
dragons.setup First of all set global spawn using
/dr setgspawn
Create your arena - /dr create <name> DragonEscape
Add player spawn - /dr addSpawn <name>
Set lobby - /dr setLobby <name>
Add dragon spawn - /dr setDragonSpawn <name>
Add dragon waypoint - /dr addWaypoint <name>
Important! Waypoint are locations for the Dragon to fly to, check the video tutorial!
Set Sky - /dr setSky <name>
Optional for this gamemode, but recommended.
Set min players - /dr setMinPlayers <name> <amount>
Set max players - /dr setMaxPlayers <name> <amount>
(Optional) Water Damage - /dr setWaterDamage <name> <true/false>
Finish setup and create game -/dr finish <name>
(NEW) Optional: Add Win-Location area.
Please note that by default the game will ignore the Y location of this area, if your win area is above your arena you will need to set Options.Dragon-Escape-Win-Area-Ignore-Y to false, however, with this option disabled the game check the exact Y location of the area.
If not set, the game will end after the player reaches the last Waypoint.
/dragons edit <arena> - if you want to add it to an existing arena
/dragons tool - It will give you the select tool. Right/Left click on a block to set a High/Low position.
/dragons setWinArea <arena> - Set the area
/dragons finish - Apply changes and load the map.
(NEW) Optional: Add Death locations.
Has the same option as Win-Area Options.Dragon-Escape-Death-Area-Ignore-Y but false by default.
You can add a Death Area by using
/dragons edit <arena> - if you want to add it to an existing arena
/dragons tool - It will give you the select tool. Right/Left click on a block to set a High/Low position.
Personal records will only work for players that have set a record time on a map before.
If you previus run was, let's say, 40s and your next 30s, your data will be updated.
Note that this only counts if you win the game (or Send All Data to Database option is enabled).
Can be turned off if you don't want to use this sytem.
Send All Data to Database (Options.Leaderboard.Send-All-Data-To-Database), false by default
This will send the timer of all players that played a game to the database.
That means you don't have to beat the Map Record to join the leaderboard.
Personal Records will work better with this option enabled
Note that if you have a lot of maps this can be lead to a heavy databases. However, it will not impact performance.
Arena Connections (Dragon Escape, BETA)
Disabled by default, you have to set
Storage.Accept-Arena-Connections to true and
restart the server.
Example of how the system works
We have arenas Jungle, Jungle2 and Jungle3, all being the same map.
When Jungle2 and Jungle3 is connected to Jungle, the leaderboard will be shared between them
Each arena still will have their own leaderbord but the time will be the same
To connect arenas, use
/dragons connectArena <Main-Arena> <Target-Arena>, example
/dragons connectArena Jungle Jungle2. Jungle now hosts the leaderboard for Jungle2.
After connecting, you can force all connected arenas to have their time updated, copying the the main arena
/dragons forceConnectionData <main-arena>
The reset map command supports a extra argument to work with this system
/dragons resetMap <arena> (reset all connected true/false)
/dragons resetPlayer <player> <arena> (reset all connected true/false)
buyCommands: Commands to execute when player buy the trail/effect.
price: The price
slot: Slot in menu
rotateParticles: Special/rotative particles around the player or normal particles.
helmet: If player will get some hat with the effect.
Config Paths:
Stop particles when player turns the head up: Options.Trails.Stop-Particles-When-Looking-Up
Disable particles when player is invisible: Options.Trails.Stop-Particles-When-Invisible
Player will only see their particle: Options.Trails.Per-Player-Particle
Extra permissions
dragons.joinfull - Allows you to join in full games.
dragons.kits.all - Access to all kits.
dragons.bungeebypass
It will allow a player to join a game server without being added to the game. This permission is set to false by default, meaning that not even ops will have it.
Common problems
FPS Instability (1.15+) This is a minecraft-side problem, I can't do much about it.
Disabling fireworks, explosions and falling blocks in config should help.
Dragon killing everyone at the start (Dragon Escape) Your waypoint setup is probably incorrect. When creating an arena, make sure to set at least one waypoint closer (not on Dragon spawn, but close, in front of it) to the Dragon first, then you can gradually add waypoints to move the Dragon however you want. The Dragon will go to the closest Waypoint OR to the next checkpoint that the game calculated according to your waypoint setup.
If you are having too much trouble, send me a Private Message, I can fix your setup.
//API Methods
public GamePlayer getPlayerData(Player bukkitPlayer);
public GamePlayer getPlayerData(UUID uuid);
public GamePlayer getPlayerData(String name);
public Game getGame(String name);
public Game getGame(GamePlayer fromPlayer);
public void saveData(Player... players);
public void updateLeaderboard(boolean receiveAfter);
//Game Events
@EventHandler
public void onGameStart(GameStartEvent event) {
IGame game = event.getGame();
if(event.getType() == GameType.DRAGONS) {
game.getPlayers().forEach(player -> player.getP().sendMessage("You are playing Dragons!"));
}
}
@EventHandler
public void onGameEnd(GameEndEvent event) {
IGame game = event.getGame();
if(event.getType() == GameType.DRAGON_ESCAPE) {
GamePlayer winner = event.getWinner(); // event.getPositions().get(0), depending on your settings.yml
Player second = event.getPositions().get(1);
Player third = event.getPositions().get(2);
}
}