DragonSlayer Config Explanation - Historical

Applied By Jeppa: Nov 15, 2020 at 6:22 PM

DragonSlayer Config Explanation
This is a more detailed explanation of
configuration file
with hints and tips

Part 1: The Config itself

Section one: "prefix"
This contains all the settings belonging to the prefix, that is given to the player who kills the dragon!​

This is the prefix itself.​
enabled: true/false
This defines if the prefix should be used, or not.​
assuffix: trus/false
This defines if the prefix is used as prefix or as suffix.​
force: trus/false
This forces the use of the internal prefix if PlaceholderAPI is installed aswell. Might be needed if you want to use EssentialsChat f.e.

Section two: "global"
This section consists of settings that are used globally, and not map-wise.
This is the DragonSlayer's UUID​
blockgrief: true/false
This defines whether the dragon is allowed to damage blocks, or not!​
trydragonautofix: true/false
This is a workaround for bugs, if some dragons got lost. When set to true, the server will restart a short timer to respawn missing dragons while the server is restarting. The same applies if a player joins the dragon's world and dragons are missing (no running timers and no dragons...) It seems 1.16.x sometimes needs this again ;(​
bypassdragongateway: true/false
This is another workaround: on spigot servers gateways may teleport dragons to the endcities. If this is enabled the dragons will avoid those portals. It is not necessary to set this to true on paper servers !!!​
bypassfunc:1/2 (default 2)
Wich method is used for bypassing the gateways...
1: dragons get teleported around the gateways
2: gateways get switched off/on when a dragon comes close.
Both have drawbacks: With value 1 the dragons could get 'stuck' at a gateway, when it is next to a point that is used for dragon navigation.
With value 2 this is not! But when the server restarts and a gateway was just disabled the server will start without that gateway and is can only be reactivated by killing the dragon again!
Remember: Bypassing gateways is NOT necessary on paper servers!​
teleportdragons: true/false
If set to true, dragons will get teleported to the world's center when the first player joins that world.​
darkness: true/false
When this is set to true, this will darken the world, if a dragon is present. This only applies to servers, that can't do this on their own anymore. If set to false, the world stays bright.​
verbose: true/false
This is only used to reduce server's output to logfile, if set to false...​
armorstand_usepapi: true/false
With this, you can enable the armorstand/statue to use player's nickname instead of the player's name itselt. It requires PlaceholderAPI beeing installed! If that player is offline while the server tries to get it's nickname (what isn't possible) the original player name is used!​
This is the placeholder that is used to get the players nickname by PlaceholderAPI. By default it is '%player_displayname%' %player_name% is the original name.​
multiportal: true/false
This is the setting that activates the portals to be moved to the dragons spawnpoint! The dragons will patrol these portals as always...
You can have multiple dragons guarding multiple portals!​
portalagression: 12
This value is a replacement for the number of active crystals on the towers when multiportal ist true. Less crystals result in more agressive guarding of the portals!​

Section three: "dragon"
Here are the defaults that will be copied to worlds that get added to the plugin by using the setspawn command..

This is the section for default values...

name: '&5Smaug&r'
This is the dragon's name​
damage: 10.0
The damage the dragon does to the players!​
health: 200
The dragon's health​
regen_seconds: 0
If this is set (not 0) it takes this value in seconds to automaticaly regenerate dragon's health​
regen_amount: 10
This is the value how much health is automaticaly regenerated...​
range: 16
The dragon's search range for players... experimental!​
exp: 12000
This is the amount of experience the player who kills the dragon gets​
reward: 2500.0
This amount of money will be given to the dragon slayer​
eggchance: 0.3
0.3 means a chance of 30% for the dragon to drop an egg when it is killed (the dragon, not the egg :)). This is not working for the first dragon that is killed! The first dragon spawns the portal with it's egg...​
eggasitem: false
If set to false the egg drops as a block, else as an item!​
skullchance: 0.03
This is the same like the eggchance, but for the dragons head!​
skullitem: false
The dragon will only drop a dragonhead if this is set to true​
portaleggchance: 1.0
This is the same like eggchance, but for the egg that spawns on the portal after the first dragon got killed​
cancelegg: false
If set to true the players are not able to klick or destroy the egg-block​
alternativereward: false
When 'alternativereward' is set to true, the experience and money your players will get for killing a dragon will be split between all the remaining players in that world based on the percentage of damage they did!
If a player does 80% of the damage, he gets 80% of the XP and the money! It doesn't matter if HE was the one who killed the dragon... A player who dies before the dragon is killed, has bad luck and won't get anything!
Additionaly the rank-commands will get executed when the dragon got killed. (see below...)​
respawndelay: 360
This is the delay in minutes it will take for the dragon to respawn. Every dragon that gets killed will start a timer with this value! This timer survives server restarts (if the server is shut down correctly and not just turned off!)
Setting this value to -1 will deactivate the respawn feature! This is useful if you have other plugins that do the respawn, like DragonTimer!​
maxdragons: 1
This is the maximum number of dragons that can spawn in your world! Additionaly, if you also use the multi-dragons-feature, this defines the amount of possible dragons.(see below...)​
onebyone: false
If this is set to true, you enable the possibility of having multiple dragons in your settings and let only one dragon spawn at random!
This feature always only spawns ONE dragon at a time! The value 'maxdragons' is NO longer the maximum of dragons at the same time, but the maximum number of POSSIBLE dragons to be chosen from at random!
To be able to use the multi-dragon-feature, you have to set your dragons manually in config. The additional values are:
name_1, name_2, name_3.... etc.
damage_1 ..., health_1 ..., range_1 , exp_1 and reward_1 ....
Any missing value will be replaced with the default value.
If 'onebyone' is set to false, all these dragons will be spawned at the same time, depending on 'maxdragons'.​
oldportals: false
When set to true, the portal will be created at the location where the dragon is killed (like it was in minecraft 1.8)​
denycrystalplace: false
This prevents players from placing the ender crystals on the portal to respawn a dragon themselves...(if set to true)​
creategateways: true
Setting this to false diables the creation of the transfer portals (the portals to the endcity)​
resetworld: false
When true, this will completely recreate the end world after the dragon was killed. All progress (building in the end) will be lost! It's a fresh new world...​
resetcrystal: false
This only recreates the crystal-towers, the portal and (depending on the settings) the dragon! The world itself remains the same! After this, the portal to overworld is deactivated again...​
resetworlddelay: 300
This value is the delay in minutes it takes to reset the world (or the crystals)...​
respawnplayers: false
If set to true, this will teleport the players who survived the dragon battle to overworld (after 'resetworlddelay'). It can be used together with 'resetcrystal' or 'resetworld'!​
nomcdragonrespawn: true
This disables (if set to true) the original game's respawn functions which sometimes interfere ...​
command: '{100}ping'
This is a list (!) of commands, that will be executed when the dragon got killed! You can use multiple commands by adding a ';' in between.
A random feature is used, whenever a percentage value in brackets is added in front of each command.
Possible placeholders are: $player (the dragon slayer's name), $dragon and $world​
spawncommand: ''
This is a list (!) of commands, that will be executed when the dragon spawns! You can use multiple commands by adding a ';' in between. A random feature is possible again.
Possible placeholders are: $player, $dragon and $world .
If you add $player, this command will be executed separately for each available player in that world!​
respawncommand: ''
This is meant to be an alternative command after dragonkill for player teleport etc. (needs 'respawnplayers' set to true). You can use it to teleport players to lobby, for example...
This can also be used for other functions, e.g. commands that replace the world instead of resetting it... feel free to use it for anything you like.. :)
rankcommand_1: 'whisper $player You did $percent% of the damage fighting dragon $dragon in world $world'
The 'rankcommand_n' is only available if 'alternativereward' is set to true.
These commands are rank-based! The player that caused the most damage to the dragon has 'rankcommand_1' executed .
2nd placed player has rankcommand_2, etc.
Possible special placeholders are $player (playername) and $percent (percentage of damage made to the dragon...) You can also use the other placeholders such as $dragon or $world...
With this you can pay the players, or have a ranking list displayed etc.
This also works with a random chance of execution (by adding a chance to the command), so you can have random bonusses.
Code (Text):
  rankcommand_1: '{80}give $player diamond 1;say $player did most damage to $dragon'
  rankcommand_2: '{50}give $player diamond 1;say $player has killer rank $rank'
  rankcommand_3: '{30}give $player banana' #;)
  rankcommand_4: '{100}give $player coal;say $player was 4th place killing $dragon with only $percent% of the damage...'
You could even use the damage percentage itself as a value for the random chance in command execution... :
Code (Text):
rankcommand_1: '{$percent}give $player diamond 1'
timerfunc: 2
What to display in timerdisplay/scoreboard behind the text:
Possible values:
1 : display seconds
2: display the number of running timers
0: nothing (this completely disables the scoreboard!!)​

Section four: "messages"
Messages - placeholders you can use: $slayer, $world, $dragon, $reward
respawn: '$dragon &4has risen from its ashes!'
onkill: '&6$slayer &fkilled &4$dragon &rand became the new &9Dragon Slayer!'
onrekill: '&9Dragon Slayer &6$slayer &fkilled &4$dragon &ronce again!'
slayer: '&6$slayer &fis the one and only &9Dragon Slayer!'
noslayer: 'There currently is no hero who can call himself the true &9Dragon Slayer!'
reward: 'You received &6$reward coins &rfor killing &4$dragon'
xpreward: 'You received &6$reward XP &rfor fighting &4$dragon'
died: '&4The Dragon in world $world died. Maybe it was too old... or it was the'
protect: 'dragons found protecting this world`s portal!'
reset: 'Warning! The world $world may reset in less than one minute!!!'
playerrespawn: 'Warning! Every player in world $world will respawn to world $baseworld in less than one minute!!!'
timertext: 'Next Respawn in:' # 'Next Respawn: Days:$days, $hours:$minutes'
This is the text for the scoreboard!​
timerline: '$days Days, $hours:$minutes:$seconds, #'
This is the text for the scoreboard!​
notimer_ph: 'not yet'
This is the text for the scoreboard!​
showtime: 'Next dragon spawn is: $world: $days days, $hours:$minutes:$seconds'
This is the text for the showtimer command, not for the scoreboard!​
showtime_n: 'No spawn timer found for world $world !'
This is the text for the showtimer command, not for the scoreboard!​
scoreboard: '$player´s kills: $score'
crystaldeny: '&4Placing crystals is not allowed!'
Section five: "spawnpoint"
Here are the spawnpoints for the worlds the plugin is working in!
If you want to use the plugin in one of your end worlds, the spawnpoint MUST be set!
Please use the ingame command to set the spawnpoints!
/dragonslayer setspawn
/dsl setspawn
If you want to edit these values: the worlds name MUST be in lowercase!!!
These 'spawnpoint' values are also the position for the portals and the 'center' where the dragons patrol... (if 'global.multiportal' is set to true)​

Section six: "armorstand"
This is where the statue will be placed!
Please use the ingame command to set the statue!
/dragonslayer setarmorstand
This doesn't have to be in the end world!
It can be placed anywhere!

Part 2: Some Examples...

Configuration Examples for World-Resets and World-Refresh and Player-Teleports... :

If you want players to teleport to overworld after the dragon was killed:
Code (Groovy):
    resetworld: false
    resetcrystal: false
    resetworlddelay: 4           # <- Minutes
    respawnplayers: true
    respawncommand: ''           # empty, no own commands! ('') players will be teleported to overworld..

If you want players to teleport to a specific location after the dragon was killed you can do this by:
Code (Groovy):
    resetworld: false
    resetcrystal: false
    resetworlddelay: 4           # <- Minutes
    respawnplayers: true
    respawncommand: 'mvtp $player world;tp $player 0 80 0'    # <-- or any other commands with $player as placeholder for the players...

If you want the world to refresh (dragon/crystals):
Code (Groovy):
    resetworld: false
    resetcrystal: true
    resetworlddelay: 4        # <- Minutes
    respawnplayers: true      # or false... you can use this together with resetcrystal...
    nomcdragonrespawn: true   # if true: no dragon will respawn... next dragon that will respawn is controlled by the timer for the next respawn ...

If you want the world to reset after dragonkill:
Code (Groovy):
    resetworld: true
    resetcrystal: false
    resetworlddelay: 4         # <- Minutes
    respawnplayers: false      # or true...  if true players stay where they were teleported to, if false they will be teleported back to the end after world was reset!
    nomcdragonrespawn: true    # if true: no dragon will respawn... next dragon will respawn based on the timer for the next respawn ...
    respawncommand: ''         # empty, or your own teleport commands etc.!

If you want the world to reset after dragonkill with your own commands: (f.e. copy an existing world over...)
Code (Groovy):
    resetworld: false         # false !!!
    resetcrystal: false
    resetworlddelay: 4        # <- Minutes
    respawnplayers: true      # is used for reset AND players respawn here!
    nomcdragonrespawn: true   # has no effect here, if you use your own commands ! Your clone-world must be in the state you want it to be already (with or without a dragon!)
    respawncommand: 'mv delete world_the_end;mvconfirm;mv clone OtherWorld_the_end world_the_end;mvtp $player world_the_end'

More to come....;)

P.S.: If you change any values and restart the server WITHOUT reloading the changes.... the changes will be lost!!
Therefore, always use the reload command (/dsl reload or /dragonslayer reload) after changing the configuration while the server was running....