DragonSlayer icon

DragonSlayer -----

The Dragon will rise again.... !! (and bring its brothers!)



The Dragon will rise again from its ashes!
Upon defeating the Mighty Dragon
only one true hero will be able to call himself the
Dragon Slayer !
In his honor a statue will be erected !

Please do not post requests for support or issues in the reviews section.
Use the discussion instead! Thanks.
._______________ ^^ This is a link, yes, you can klick it ;)

Features
  • Upon the defeating the dragon, the slayer will get the Dragon Slayer prefix in chat and tablist (configurable)
  • An armorstand-statue or a NPC-statue can be placed anywhere.
    It will show who is the DragonSlayer! (PlaceholderAPI can be used for its displayname)
    Head/skin is the DragonSlayer's head or skin...
  • Any player who is in the list of dragon killers can place his own small statue ! (This feature has WorldGuard support)
  • Configurable enderdragon respawn time and locations.
  • Multiple dragon spawns and portals possible per world!
  • Multiple BossBars, with adjustable distance for displaying them.
  • Timer-Dispays for next dragon respawn or world reset/refresh countdowns (can be enabled / disabled in config)
  • Respawn- and reset-timers that keep counting after a server restart.
  • Prevent the server from respawning or removing (original) dragons by itself at server restart (or at world refresh).
  • Player's 'first-join' dragon spawn feature.
  • Configurable reward (money) -> requires vault
  • Alternative-Reward-System available (based on percentage damage per player)
  • Executable server commands at dragon kill and at dragon spawn (with percentage chance of execution)
  • Additional (player based) server commands at dragon-kill when 'Alternative Reward' is used!
  • Multidragon support (multiple dragon names and values per world).
  • OneByOne-feature with multidragons (only one dragon spawns, selected at random from a list of dragons)
  • Multiworld support (dragon settings per world, even in overworld!)
  • Player prefix or suffix (Internal usage or by placeholders) in chat and in tablist.
  • UltimateChat (Uchat), Legendchat and EssentialsChat support for prefix/suffix.
  • PlaceholderAPI (PAPI) support: usable for chat, timers, commands and scoreboard etc.
    Plugins like HolographicDisplays or DecentHolograms can be used to display kill ranks or respawn timers and more...
  • Automatic healing of dragons (configurable).
  • Glow and hit effect for the dragons (with color).
  • Old portal spawn behavior like in 1.8 for 1.9+ servers if you like that more... (configurable)
  • Automatic world reset (configurable), can also be used by command.
  • Automatic world refresh by crystals (like the original dragon respawn), can also be used by command.
  • Players may automaticaly respawn in overworld or in lobby after dragonkill (configurable)
  • Drop dragon eggs as blocks or as items. (configurable and percentage chance)
  • Drop dragon skulls (percentage chance).
  • Configurable denial of players interacting with dragon eggs (blocks).
  • Configurable denial of players placing endercrystals to respawn dragon by hand.
  • Endgateways are supported (creation, deactivation or checking), even in 1.16+!
  • Fix for possibly missing EnderDragonBattle in non default end worlds (1.19.0 bug)
  • Fix for the endgateways for MC-versions that have issues with this (1.9-1.13 and 1.16). Server will always use the next gateway after serverrestart instead of starting over at the 1st gateway again!
  • Fix for issues with gateways' teleport destinations !
  • And even more...! And more... :)
An additional / alternative spawnsystem, based on fixed times, is available as an addon here: DragonTimer !!


Reviews, Comments, Bugs, suggestions, ...
Please leave your reviews, comments and idea's in the discussion.
If you find a bug either PM me or use the discussion forum.
If you would like to review this plugin, go ahead!

Commands & Permissions (v0.14.0 and newer)
Mappe1c_CommandsUndPermsDSL - 0.13.5_!.jpg


INFOS:

This plugin was tested with versions 1.8 to 1.21.4
If you can confirm a version is working (or not) please let me know ;)

First version until version 0.3.0 was developed by mickverm.
His old version can be found here: https://www.spigotmc.org/resources/dragonslayer.8249

If you are updating from an older version, the plugin updates your existing config. If you encounter any issues you may want to delete the config and let the plugin recreate it !

Not all new features are available for versions prior to 1.9 !

This plugin will only do its job in worlds that are known to the plugin by setting up the spawnpoint!
All worldnames in config must be lowercase. So, watch out, if you alter the configuration by hand ...

When enabled, the automatic world reset or refresh will get triggered when:
all dragons are killed, the timer timed out and the dragons still are killed (and not respawned)!
So, you can set up your server with respawning dragons, or with an end-world that will reset, or even with both ;)

Starting with version 0.4.2 this plugin supports the creation of the End-Gateways. With every dragon that gets killed there will spawn another gateway! (max. 20)
This can be disabled in config (per world).
When disabled this will also prevent the game itself from creating those gateways!

With version 0.4.4 there is a new feature: the timers for dragonrespawn will be saved to a file and restarted from that point at serverrestart.
You can have timers that count for days, weeks or months now ;), even if your server restarts every 24 hours...

New feature in 0.4.6: Armorstands that represent the Dragonslayer !
There can only be ONE armorstand (statue).
It will have the Dragonslayers head and name and some armor!
You can place it wherever you want. (any world, any place)

New in 0.5.1: you can add a command that gets executed when a dragon is killed.
You have to edit it manualy in the config. Defaultcommand is 'ping' ;)

New in 0.5.2: Support for UChat! If you have UChat installed you have to edit it's config and add the {dragonslayer} tag where you want it to go.

Version 0.5.3 fixes a small bug in UChat-handling and adds placeholders to the command (introduced in 0.5.1).

Version 0.5.5 adds the possibility to turn off egg interaction .
Egg settings are now configurable per world.
Dragons in one world can have multiple names.
F.e. if your max count for dragons is 4, you can set 4 names for your dragons:
add name_1 to name_4 to your config :
name: '&5EnderDragon&r'
name_1: '&5Dragon Boss&r'
name_2: '&5Second Dragon&r' ...
If f.e. no name_3 or name_4 exits, the default value 'name' is used...
The default value 'name' also is used for messages etc. ($dragon)

Version 0.5.7 starts supporting 1.13...

Version 0.5.8 adds support for PlaceholderAPI and fixes some minor bugs.
To use the prefix with PAPI add the placeholder %dragonslayer_prefix% wherever you need it.

Version 0.6.0 adds an update-checker and support for 1.13.1!

With 0.6.1 EssentialsChat is supported. Add {DRAGONSLAYER} where you need it to show up.
f.e. format: '<{DRAGONSLAYER}{DISPLAYNAME}> {MESSAGE}'

New in 0.6.3: Support for Legendchat! Add the {dragonslayer} tag where you want it to be displayed (Legendchat configurations).

0.6.5 adds support for 1.14, adds new playerteleport feature and a new PlaceholderAPI-placeholder (%dragonslayer_timer%) for getting the remaining time to next dragon respawn.

0.6.6 adds %dragonslayer_nexttime% and %dragonslayer_nextmap% for use with PlaceholderAPI.

0.6.7 adds the ability to disable the respawn completely (this will be useful in the future with another plugin :))

0.7.0 If you want to use the addon DragonTimer in one of your end-worlds, you should set respawndelay to -1 in DragonSlayers config for that world!

0.7.1 adds new config var: nomcdragonrespawn for blocking minecrafts internal dragonrespawn at server restart!
Added commands for changing config values.
Added new permission: dragonslayer.admin.

0.7.4 adds a bypass for an 'issue' with dragons getting teleported by endgateways: set 'bypassdragongateway' to 'true' to enable it.
The commands can now be used in console aswell .
Fixed missing command (getarmorstand)

0.7.6 adds placeholders $player and $world to the 'command' feature and some fixes...

0.7.7/8 fixed a lot internaly...

0.7.9 added support for 1.15,
added drop of the dragon head,
added the ability to have multiple commands at dragon kill,
added new command to remove dragons...

New in 0.8.0: Alternative Reward-System!
When 'alternativereward' is set to true, the experience and money you will get for killing a dragon will be splittet between all the remaining players in the end. (Only those that did damage to the dragon!)
If a player (player A) does 80% of the damage and another player (player B) does 20% and kills the dragon:
player A gets 80% of XP and money, Player B gets 20% XP and money ...
A player who dies before the dragon was killed has bad luck and will get nothing!
The drops (egg, head) will drop as usual... (if you want to make sure the killer gets a bonus, you can use the commands for that!)

0.8.1 (internal only)
World Refresh by resetting the crystals etc. (as an alternative to the full world-reset!)
With this feature enabled portal stacking might happen again.
This is done by Minecraft itself (worldgenerator), and depends on the version (spigot 1.13+)
(it seems this only happens with old worlds ...)

0.8.2 (internal only)
Changes in Dragon-counting-logic... 'count' in config is not needed anymore!!

0.8.3 (internal only)
Added Timer Dispays....and 3 new config vars
New config var 'timerfunc':
0 = Timer Display deactivated for that world
1 = value in the 2nd line shows the countdown's seconds
2 = value in 2nd line shows the number of running respawn timers (default)
New message texts 'timertext' and 'timerline':
timertext is the first line, timerline is the 2nd.
If 'timerline' is empty internal default values will be used...
config defaults are as follows:
timertext: 'Next Respawn in:'
timerline: '$days Days, $hours:$minutes:$seconds, #'
Both lines accept placeholders: $days, $hours, $minutes and $seconds!

With the defaults it will display 2 lines with the countdown in the second line and the number of running timers for that world after the '#' .
You can change this to your needs...
f.e.:
timertext: 'Next Respawn: Days:$days, $hours:$minutes'
timerline: 'Seconds:'
with timerfunc set to '1' this will have the contdown in the first line and only the seconds in the second line...

placeholder changes:
%dragonslayer_timer% -> will return the next time for a dragon respawn in the world the players is in... (and that world's name)
If the player is not in an end world (or in an end world without a respawn timer...), the placeholder gives the world and time for the first next spawn in all worlds...
%dragonslayer_nexttime% returns the remaining time for next respawn in the player's world. Or the next spawn in any world if the player is not in an end-world or in an end world without a running timer...
%dragonslayer_nextmap% always returns the world with the first next spawn...

0.8.4
added possibility for multiple values for health, damage, experience and reward when multiple names are in use
f.e.: A dragon with its name set in 'name' will have the default values as before...
A dragon with its name set in 'name_1' or 'name_2'(etc) will have the health and damage set in 'health_1' and 'damage_1' or 'health_2' and 'damage_2' etc, if available...
Same for experience and reward --> experience_1, reward_1.
If a value is missing in config the default is used.
You need to set this up by hand, if you want to use this MultiValues-Feature!
Info: MultiValues is 'maxdragons'-dependent!

0.8.5
changed the config for more readability...
new PAPI-placeholder
new routine for dragons not beeing teleported by gateways (paper only)
a bunch of fixes...

0.8.7
experimental new Config var 'range' --> changes the dragons follow range (default is 16 (not sure if this has any effect at all...))
Maximum Health >2048 possible again, depending on the servers settings...(only for spigot based servers.. (Spigot, Paper etc.)

0.8.8
split additional orbs (fix-orbs in 1.9+) the same way like original orbs, when 'world-settings.default.merge-radius.exp' is set to 0 in spigot.yml --> multiple orbs get dropped !
Commands may have a percentage now! If a percentage is given like this: '{66}ping' -> the command 'ping' has a 66% chance of being executetd!! (Values are from 0 to 100, if no value is given it is 100%)
If the dragon respawn timer and the world reset timer have the same values, the reset is not disabled anymore! This way you can use the dragons countdown as a world countdown now ;)
New PlaceholderAPI placeholders:
%dragonslayer_mykills% -> the players amount of dragon kills
%dragonslayer_place_n% : Scoreboard! Where 'n' is the rank/position! f.e: %dragonslayer_place_1% ist 1st place, %dragonslayer_place_2% is 2nd place etc.
You can use this to create a dragon-killer-scoreboard using HolographicDisplays/HolographicExtension !!

0.8.9...
Changed PAPI-placeholder %dragonslayer_place_n%: configurable scoreboard formatting... -> 'scoreboard' in DSL's config.yml! This has two placeholders $player and $score ...
If you like to have separate PAPI placeholders instead, you can use %dragonslayer_place_n_name% and %dragonslayer_place_n_score% (n=1,2,3...)
New command to reset the kill-scoreboard: 'scoreboardreset'
Player respawn/teleport command ('respawncommand') can now have multiple commands, too... (gets executed if existing(not empty) and if respawnplayers is set to true, or when resetworld is true. See examples in config section...
Commands containing placeholder $player are executed for every player who is in that end world...
Commands without $player are only executed once (and before the $player-commands...)
Portal creation 'bug' fix: after serverrestart or end-refresh, no original portal will be created and no portal-stacking anymore! (finaly!, no realy... finaly! (i hope ;)))
Cleartimer command for removing ALL running timers...

0.9.0
1.16 support added.
PAPI placeholder %dragonslayer_slayer% added (shows the name of the last dragonslayer)
Added protections for crystal-respawn/world-refresh ! -> spawn of a dragon can not accidently be prevented anymore (f.e. by destroying the crystals)
rewrote the handling of endcity-gateways to improve behaviour, and to fix ugly 1.16 bug ! -or was it as a feature??-
added configurable custom commands 'spawncommand' that get executed when a dragon spawns! (multiple commands can be seperated by ';' again... can have percentage possibility if needed...)

0.9.1
added a fix for darkness while in fight with the dragon, can be switched on/off in config... (1.13+ servers)
added new function and config vars for automatic healing of dragons
small fix for a Paper-NAG-Message.
massively improved chunk handling on 1.13.2+ servers!

0.9.2
support for 1.16.2
wordrefesh by command. -> respawns the crystalls and towers...
showtimer command to display the next dragon spawn time!!

0.9.3
Additional player-based commands, can be used if alternativereward is set to 'true' !
This can be used for showing Kill-Ranks or for extra bonuses given to players or whatever you like... hey, it's commands ;)
Text output from '/dragonslayer showtimer' configurable/translatable
Fix for using PlaceholderAPI dev-builds...
The egg spawning on the portal now also has a percentage chance
Dragon heads are dropped now, even if it's the 'first' dragon after world refesh/reset
New config var to prevent players from placing endercrystals on the portal
Another new config setting for less verbosity (if set to false)
Armorstand's name can now be customized by using PlaceholderAPI

0.9.4
-Added the possibility of having one dragon, chosen randomly from the bunch of possible/added multidragons... (name_1, name_2 etc. in configuration...)
(This feature always only spawns ONE dragon! Value maxdragons is NOT the maximum of dragons at the same time here, but the maximum of POSSIBLE dragons to be chosen from at random!)
-change of nickname/displayname will also rename the armorstand if the Slayer is the one wo changes nick and if PAPI-placeholder is used for naming the Armorstand...(needs Essentials(X) being installed...)
-Experimaltal feature added to move the portal and the dragons 'center' to the configured dragon spawn!
-Having resetworld and respawnplayers both on 'true' will won't teleport the players back to the end after world was reset !

0.10.0/0.10.1
- Multiportal-Update -> see update notice...

0.10.2
- Global values darkness, blockgrief, trydragonautofix and teleportdragons can be overridden by world's settings
- multiportal fixed (dragons fly to their very own portals)
- some mechanical fixes

0.10.3
- Distance-setting for bossbar to show up.
- improved denyal af crystal placement
- check for own dragons to allow other dragons without using them by mistake...
- dragon dies at the portal... the way it should be...

0.10.4
- added TabList with Prefix/Suffix
- Reset timer is now also saved on serverrestart
- New PAPI placeholders: %dragonslayer_nextreset%, %dragonslayer_nextresethms%, %dragonslayer_nextresethm% and %dragonslayer_nextresetmap%
- additional line in internal scoreboard for reset timer
- some fixes...

0.10.5
- new 'armorstand_format' for additional text on armorstand
- new placeholder $slayername that displays the name or the nick (if available), $slayer always displays the name only!
- 'displaydragonname' can disable the dragon name above it's head.
- with 'slayerbypercent' you can make the DragonSlayer to be the player who did the most damage to the dragon. By default it's the one who killed it!
- optical fix for the scoreboard

0.10.6
- Added ability to deactivate bed explosions in the end, as it's unclear who was the killer...
- Possibility added to change the armorstand's armor (diamond, golden, iron, lether, chainmail, netherite)

0.11.0
- 1.17.x Support, fixes and NPC-statue

0.11.1
- more colorcodes in messages (config) and new placeholder $amount
- fix for refresh/crystal reset and server restarts!
- small fix for new NPC-statue

0.11.2
- some fixes and new features for excluding dragons from automatic respawns.

0.11.3 (internal)
- support for 1.18 and new config value for spawn sound.

0.11.4
- support for 1.18.1 and ProtocolLib
- fixes...

0.11.5
- use of spigot's new config handling
- some fixes for gateways, portal and bossbars
- new placeholders...

0.11.6
- removed obsolete old dragon-gateway-fix
- remove dragons command (/dsl remd) only removes DSL-Dragons. With additional 'force' it will remove ALL available dragons in that world!
- improved recognition of original and custom dragons
- 1.18.2 support

0.11.8
- add fix for getting/finding the respawn-world during reset from multiverse if end world name is not ending on '_the_end'.
- add TabCompletion to commands
- small fix for dragon counts

0.11.9
- internal only

0.11.10
- fix for alternative rewards when a player healed the dragon ;) (i Still don't know how this could happen...)
- some internal changes
- support for 1.19 and hotfix for bug in spigot with DragonBattles...

0.12.0
- added some default text for rank placeholders.
- the change of dragon's 'health' and 'damage' will be ignored, if values are set to 0.
- the timing for tablist (changing player name) is configurable now.
- update to 1.19.1

0.12.1
- update to 1.19.2

0.12.3
- MineCraft 1.19.3 support
- setspawn command can now be used in overworld...
- added switchable dragon glow effekt
- added simple dragon hit effect
- some fixes for use of ProtocolLib...

0.12.4
- Fix for Dragon flight level, if portal base is more than +/-16 blocks from default (64)
- Extended rankcommands: Now it's possible to use rankcommand_x_y where x ist the rank (just like before) and y is the dragonnumber... if the values do not exist the default without dragonnumber is used, if it exists.
- slayerbypercent can now also be used mapwise. (needs an edit by hand)
- readded metrics (bStats)

0.12.5
- fix if ProtocolLib is NOT installed...
- renamed some config values and commands: 'armorstand' -> 'statue'.
- improved handling of NPC-statue textures.
- added new feature: 'slayerbyrank'

0.12.6
- compatibility for MineCraft 1.19.4
- added compatibility to SkinsRestorer plugin for NPC statue.

0.12.7
- MC 1.20 support

0.12.9
- support for 1.20.2
- added color to the glow

0.12.10
- placeholders within the commands

0.12.14
- update MC 1.20.3/4

0.12.15
- Additional spawn feature (player's first join -> dragon spawn)

0.13.0
- update to MC 1.20.6

0.13.1
- update to MC 1.21
- fixes for NPC textures

0.13.2-0.13.4
- Fixes for 1.21 etc

0.14.0
- new feature: personal statues for players that already had a dragon kill!
- Config changes / clean up : the individual dragon settings are now in a seperate section in the config (no name_1 etc anymore)

0.14.1
- fix for dragons that are stuck in phase 1 (strafing)
- placeholder can be used with 'null'-player
- small fix in dragon handling

0.14.2
- Update for 1.21.3

0.14.3
- Update for 1.21.4
- Add WordlGuard support for personal statues.


Known bugs/issues...

Due to a bug in 1.17 and newer versions you had to enable 'keepchunks' !
Without, the plugin may not count your dragons right!
In latest spigot versions (1.19+) this is 'fixed' (still not 100%, but OK).

Depending on your minecraft server version and the multiverse version, you should not use the default world ("world_the_end" f.e.) as your end-world !
You may not be able to use the world-reset-feature in that default world, as multiverse may not be able to unload that map completely (this depends on the MV-version. Latest versions seem to be ok again, but the server must be restarted first! Until that, you can't use the end-portals !).
If you don't use the world reset you can use that world without issues!

If you have multiple dragons in a world it can happen that dragons get lost (by a server restart f.e.). The plugin tries to fix this, if 'trydragonautofix' is set to true'. With latest server versions, this should not be necessary anymore!

If you miss any dragons, you may want to start the respawn manually by command : /dragonslayer force.
/dsl force respawns all missing dragons compared to the number of existing dragons. It ignores any running timers.
/dsl forceall instantly starts a respawn in ALL supported worlds.

Starting with version 1.9 the drogon's xp-drop is split into two drops: 1st at kill-position, 2nd at dragon's death-position. By default it's not possible to drop less than 12000 XP for the first dragon, if this dragon was the vanilla one! (see nomcdragonrespawn ...). Now it's minimum 500 XP.

Armorstand's head sometimes shows a defaultskin, but this is a minecraft-bug and not the plugin!

If you receive any nag-warnings during server shutdown on Paper-Servers prior to 1.17 like:
"Nag author: 'Jeppa' of 'DragonSlayer' about the following: This plugin is not properly shutting down its async tasks when it is being shut down."
You can ignore those... there's a task running, and it's about to be stopped! But sometimes it just takes a little too long...

If the world is about to refresh the crystals and there is no player in that world, the refresh occurs when a player joins that world again.
This is not a bug, but normal minecraft behavior!

Using the worldrefresh command (crystal reset) will not protect the crystals from beeing destroyed! The crystals are only protected if 'resetcrystal' is also enabled in config!

The running timers are stored in TimerList.yml during server shutdown, but only if the server is properly shut down ! (and not just switched off / task killed) !!!
This is NOT a bug...
You should always stop the server the right way!


Todo:
More configuration informations 'bout all the features... People seem to have problems setting up all of this ... ;)

P.s.:
Sorry to say, but no begging for source code, please!


[​IMG]
Donators:

-#1: G.S. (Nick unknown yet)
(0.01% ?)

10.Jan.2023 25000th Download! :D
Resource Information
Author:
----------
Total Downloads: 40,911
First Release: Feb 12, 2017
Last Update: Jan 10, 2025
Category: ---------------
All-Time Rating:
75 ratings
Find more info at www.spigotmc.org...
Version -----
Released: --------------------
Downloads: ------
Version Rating:
----------------------
-- ratings