Popular Dragons & Dragon Escape Minigames
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 and HolographicDisplaysto work with Leaderboards.
PlaceholderAPI support
The following placeholders are available, they are self explanatory:
%dragons_dragonescape_wins%
%dragons_dragonescape_gamesplayed%
%dragons_dragonescape_losses%
%dragons_wins%
%dragons_gamesplayed%
%dragons_losses%
Arena setup (Dragons)
Required permission: dragons.setup
First of all set global spawn using /dr setgspawn
NEW! 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
Sign format:
Arena setup (Dragon Escape)
Required permission: dragons.setup
First of all set global spawn using /dr setgspawn
Sign format:
Command: dragons
Aliases: drag, dr
Kits
You can add kits, add potions to kits and more.
To add potion effect to the kit, add a custom line named potion-effects, for example:
Code (Text):
...
type: "BOTH"
potion-effects:
- 'SPEED : 1000 : 1'
permission: ""
...
EFFECT : DURATION IN SECONDS : LEVEL
Potion Effect List here!
Spoiler: kits.yml
Achievements
You can have how many achievements you want.
Spoiler: achievements.yml
Holographic Leaderboards
Placeholder: {dragons_wins_position}
Note that the Placeholder value of the Hologram can be changed at language.yml in Wins-Format.
Map Records (NEW!)
Hologram Leaderboard:
{de_records_map_position}
Example:
Personal Records
Send All Data to Database (Options.Leaderboard.Send-All-Data-To-Database), false by default
Cosmetics (Player Trails)
Players can unlock special Trail Effects on the Trails Shop. Example of a trails.yml file:
Config Paths:
Extra permissions
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.
Sounds List
https://hub.spigotmc.org/javadocs/spigot/org/bukkit/Sound.html
Potion Effect Types
https://hub.spigotmc.org/javadocs/spigot/org/bukkit/potion/PotionEffectType.html
Material list
https://hub.spigotmc.org/javadocs/spigot/org/bukkit/Material.html
API
Code (Text):
- 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 and HolographicDisplaysto work with Leaderboards.
PlaceholderAPI support
The following placeholders are available, they are self explanatory:
%dragons_dragonescape_wins%
%dragons_dragonescape_gamesplayed%
%dragons_dragonescape_losses%
%dragons_wins%
%dragons_gamesplayed%
%dragons_losses%
Arena setup (Dragons)
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>
NEW! 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>
- 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>
- 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.
- /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.
- Has the same option as Win-Area Options.Dragon-Escape-Death-Area-Ignore-Y but false by default.
- /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 addDeathArea <arena> - Set the area
- /dragons finish - Apply changes and load the map.
Sign format:
- [DragonEscape]
- join
- ArenaName
Command: dragons
Aliases: drag, dr
- /dr join <arena> - no permission.
- /dr leave - no permission.
- /dr stats - no permission.
- /dr setgspawn - dragons.admin
- /dr start <arena> - dragons.moderator/dragons.admin
- /dr stop <arena> - dragons.moderator/dragonsadmin
- /dr reload - dragons.admin
- SAVES all config files.
- /dr coins set/add/remve <player> <amount>
- Permission: dragons.admin
- Updates player balance, command will not work with Vault support enabled.
Kits
You can add kits, add potions to kits and more.
- Cooldown: Cooldown of the main kit item, the leap axe; 1000 = 1s;
- Type: Where this kit will work
- DRAGONESCAPE for Dragon Escape.
- DRAGONS for Dragons.
- BOTH for both.
- Max-Uses
- Max-uses of the leap axe.
To add potion effect to the kit, add a custom line named potion-effects, for example:
Code (Text):
...
type: "BOTH"
potion-effects:
- 'SPEED : 1000 : 1'
permission: ""
...
EFFECT : DURATION IN SECONDS : LEVEL
Potion Effect List here!
Spoiler: kits.yml
Achievements
You can have how many achievements you want.
Spoiler: achievements.yml
Holographic Leaderboards
Placeholder: {dragons_wins_position}
- e.g: {dragons_wins_1} for the player with most Dragons wins.
- e.g: {de_wins_1} for the player with most DragonEscape wins.
Note that the Placeholder value of the Hologram can be changed at language.yml in Wins-Format.
Map Records (NEW!)
- Can be disabled if you don't want to use.
- Will create a new database table.
- Will update and load before (reload) every game.
- This process should not have any impacts on performance.
- The time is stored in ms and converted to ss:mm.SSS.
Hologram Leaderboard:
{de_records_map_position}
Example:
Personal Records
- 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.
- This will send the timer of all players that played a game to the database.
Cosmetics (Player Trails)
Players can unlock special Trail Effects on the Trails Shop. Example of a trails.yml file:
- The number is the ID and will be saved in Database.
- name: The display name in menu.
- buyPermission: The player needs to have this permission to buy an trail/effect.
- permission: The trail/effect that the player with the buyPermission will purchase.
- particles: Particle list
- menuItem: The display item in menu.
- lore: The item lore in menu.
- 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.
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.
Sounds List
https://hub.spigotmc.org/javadocs/spigot/org/bukkit/Sound.html
Potion Effect Types
https://hub.spigotmc.org/javadocs/spigot/org/bukkit/potion/PotionEffectType.html
Material list
https://hub.spigotmc.org/javadocs/spigot/org/bukkit/Material.html
API
Code (Text):
Code:
import com.floodeer.dragons.Dragons;
import com.floodeer.dragons.DragonsAPI;
import com.floodeer.dragons.api.DragonTargetEvent;
import com.floodeer.dragons.api.GameEndEvent;
import com.floodeer.dragons.api.GameStartEvent;
import com.floodeer.dragons.api.PlayerAxeUseEvent;
import com.floodeer.dragons.game.GamePlayer;
import com.floodeer.dragons.game.GameType;
import com.floodeer.dragons.game.IGame;
import com.floodeer.dragons.game.dragons.DragonSctructure;
import org.bukkit.entity.Player;
import org.bukkit.event.EventHandler;
import java.util.UUID;
public class APIShowCase {
private final DragonsAPI api;
public APIShowCase() {
api = Dragons.getAPI();
}
//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);
}
}
@EventHandler
public void onPlayerUseKit(PlayerAxeUseEvent event) {
if(event.getKit().getName().equalsIgnoreCase("NoShift") && event.getPlayer().isSneaking())
event.setCancelled(true);
}
@EventHandler
public void onDragonTarget(DragonTargetEvent event) {
if(event.getType() == DragonSctructure.TargetType.PLAYER) {
event.getTarget().sendMessage("Be careful!");
}
}
}