Enderdragons+
Enderdragons Plus
Description
The plugin controls the spawning of Enderdragons. It fixes the feature that Enderdragons will always fly to the point 0,70,0 if they have no target. It also gives the dragons a home position, where it will return, if he flies to far away.
The Plugin will replace all dragons witch are spawned by these dragons. (except they are not of class: net.minecraft.server.EntityEnderdragon). It is compatible with DragonTravel. It is compatible with RideThaDragon.
There are multiple possibility to configure Dragons. Also there is the possibility to have different Dragon types (different Ages of Dragons) on the Server (see the section Dragon Ages).
Also you can ride dragons with this plugin and fire fireballs while riding (pure Awsomeness)!!
IMPORTANT! This will only work with CraftBukkit!!! (Tested with Version 1.7.2 R0.1) All other Bukkit Implementation and Versions can work, but it is not guaranteed.
Commands
- /edp : gives some info to the plugin
- /sedp : spawns an EnderDragon.
- /kedp [range] : kills all registered EnderDragons in the given range. range = 0 means All Enderdragons regardless of range and world.
- /edpunload : unloads all EnderDragons to an extenal files.
- /edpload : loads all external EnderDragons from files.
- /edpinfo : gives info how many EnderDragons are loaded.
- /edpreload : reloads the config of EnderDragons+.
- /edpgohome : sends all Enderdragons to their Home-Locations
- /edprespawner ... : does respawner commands
- /edpride [speed] : lets you ride a dragon.
PermissionNodes
Permissions are bound to the commands:
- edplus.create : /sedp
- edplus.kill : /kedp [range]
- edplus.commandback : /edpgohome
- edplus.reloadconfig : /edpreload
- edplus.unloadall : /edpuload
- edplus.loadall : /edpload
- edplus.info : /edpinfo
- edplus.riding.ride : /edpride [speed]
- edplus.riding.fireball : firing a fireball while riding a dragon (press q, key for throwing item away. Has to have an Item in hand)
Others:
- edplus.targeting.ignore : The person gets ignored by Dragons
- edplus.riding.fireball : fires a Fireball while riding with key 'q' (throw Item away).
Riding a Dragon
Simply use /edpride [speed] . The Speed is from very slow to unlimited. Recomondations are: slow: speed = 1, medium: speed = 3, fast: speed = 5.
You can Fire fireballs when riding a dragon. Simply press 'q' (throw Item away Key). Then The Dragon will fire a fireball on your Target location.
There are 2 Permissions. One for Riding, one for Fireball spitting. -> see Chapter: PermissionNodes.
Respawners:
IMPORTANT!!!!: if a player does not have the edplus.resawner.see Permission, he will not see the Respawner-Sign! Permissions:
- edplus.respawner.create: '/edprespawner create <spawnername> [respawnTime] [dragons]' and '/edprespawner link <spawnername>'
- edplus.respawner.remove: Hitting the sign to kill the respawner
- edplus.respawner.clear: /edprespawner clear
- edplus.respawner.info: /edprespawner info
- edplus.respawner.debug: /edprespawner debugsigns
- edplus.respawner.see: IMPORTANT: If the Player has this permission, he sees the Respawner Sign, if not, he does not see it!!
- edplus.respawner.port: /edprespawner port [number]
Commands:
- /edprespawner create <spawnername> [RespawnTime] [MaxDragons] : creates a respawner named: as in <spawnername>, with [RespawnTime] as respawn time and [MaxDragons] as maximum dragons at the same time (respawn time is in SECONDS).
- /edprespawner link <spawnername> : links your current location to the spawner named in: <spawnername>
- /edprespawner clear : clears all respawners and deletes them. (Emergency command)
- /edprespawner info : gives info where and how many Respawners are.
- /edprespawner debugsigns : if the respawner exists, but the Sign is not there, it will be replaced. ATTENTION, noticing, if the Sign is invisible!!
- /edprespawner port <Respawner Name> [number] : ports to the respawner with the name in <Respawner Name> and the Number: [number] (can be seen on sign or with /edprespawner info)
The Plugin is compatible to the following PermissionSystems:
- Vault
- PermissionsEx
- GroupManager
- BukkitPermissions
- bPermissions (experimental)
- No permissions (Op only)
Config
The Configuration is mostly good documented (config.yml).
Dragon Ages
There is another configuration. The Dragon ages located in the ageTable.yml.
Different Dragons with different ages can be spawned. This makes it possible to have different difficulties (like: small, normal, hard, etc.). For further information and syntax look at: Dragon Ages.
API (for developer)
API class: de.tobiyas.enderdragonsplus.API.DragonAPI Methods:
- public static boolean setTarget(LivingEntity dragon, LivingEntity target);
- public static boolean setTarget(LivingEntity dragon, Player player);
- public static boolean setTarget(LivingEntity dragon, Location location);
- public static boolean sendHome(LivingEntity dragon);
- public static boolean setNewHome(LivingEntity dragon, Location location);
- public static boolean setNewHomeAndGoTo(LivingEntity dragon, Location location);
- public static LivingEntity spawnNewEnderdragon(Location location);
- public static boolean setPropertyToDragon(LivingEntity dragon, String property, Object value);
- public static Object getPropertyToDragon(LivingEntity dragon, String property);
- public static boolean spitFireballOnTarget(LivingEntity dragon, Entity target);
Information that has to be given (Disclaimer):
- The Plugin is capable of uploading errors to a database. This is disabled by default. To Enable this feature, enable it in the configuration (uploadErrors: true).
- The Plugin collects metric data for usage (https://mcstats.org/). This is enabled by default. To disable this feature, set the config option to false (uploadMetrics: false).
Known Bugs (V1.11.0)
- On dragon reloading (chunk unload and reload) it will give a Bukkit warning that the dragon was stored wrong
Upcoming in next Version (V1.11.1)
- Currently working on V1.11.1:
- Untested:
- Still missing: - Fire breath (70%, looks promising, but needs more testing)
Thanks To:
- @NazzyDragon: for the Idea and the support for testing :)
- @V10Lator: for the Plugin: RideThaDragon (gonna miss you :( thanks for the cool plugin!)
- @XemsDoom, @Phiwa: for the Plugin: DragonTravel (gonna miss you :( thanks for the cool plugin!)
- @CraftBukkit team: for the API and "cleaning" Notch's code
OTHER
If you want to help me by donating, this would be great! This Project consumes a lot of time. The changes the bukkit Team / Mojang do are not always that fine to look through. Donating always motivates to do more/better work ;) . The link is on the top right!
I need some 'Beta testing people' to help me find bugs to already existing stuff. :/ can't do coding + testing at once (unfortunately I only have 2 arms...).
Whenever a player gets hit by a fireball, the server crashes and logs this:
http://paste.md-5.net/woxumapiqa.vhdl
@Tobiyas
The error remains, exactly the same. Debug creates the same error when it is loaded with the default config, if you remove the .0 and try, the Error during age evaluation persists but it does not show any errors in debug.
IE exactly the same as before.
@UltrafaceGuy
Could you please try this and delete your ageTable.yml before launching?
The error with the couldn't find should not happen again there. But there is still a loading bug with Dragons not loading correct when chunk is reloaded. I have to investigate that.. I hope that it's not that hard as I expect it to be.
@Tobiyas
Hate to be a bother, but while removing the .0's did removed the output to the debug files and cause teh ages to load, attempting to create a spawner still says "Error during age evaluation" with nothing reported in the config or debug files.
@UltrafaceGuy
Sorry. I found the error. I forgot to convert some stuff to doubles.
A quick fix would be deleting the '.0' s after the numbers.
But there is a new problem. It looks like minecraft changed something on its spawning System. Loading dragons (when saved because of chunk unload) does not work correctly...
@Tobiyas
Issue is still in 1.10.2, I still get 'Error during age evaluation' when trying to create a respawner sign. Here's your debug info. http://pastebin.com/GgyiWaME
. . .
EDIT: Posted message twice.
@UltrafaceGuy
ageTable.yml is okay. Just didn't know the name at once.
The error should be resolved in 1.10.2. It had actually nothing to do with the age table.
@Tobiyas
Problem is not resolved, deleted and regenerated the files, still errors during age evaluation with default configs. It isn't picking them up at all. Perhaps they are looking for an ages.yml, instead of the actual file ageTable.yml?
@UltrafaceGuy
try deleting the ages.yml in the Plugin folder.
I actually found a bug related to that. Update is already uploaded. Hopefully Bukkit staff aproves it fast.
I forgot to change some lines related to the new Health system of CB 1.6.
@LihPeu
That's interesting. I looked through the sources of CB and I didn't find any possible mismatches. The replacing seems broken for some reason... Can you tell me which Minecraft Server distribution you are using? and which build exactly this error occured? I can't find any errors in my code here.
Hey again @Tobiyas
Need a little help with the API please.
If I spawn a dragon with my normal line of code or with essentials /spawnmob enderdragon command
I get a working edp dragon but with the following error: http://paste.md-5.net/jeqoduwixe.avrasm
UPDATE: If i set replaceAllDragons: false then I do not get the error above.
If I spawn a dragon with the API I get nothing.
Any ideas what I am doing wrong?
@Tobiyas This issue occurs when trying to create a spawner. I've tried all sorts of values, but it just declares the values unset and send me a message in game 'error during age evaluation'
Additionally it crashed the server when I just used the default spawn command and left the chunk. http://pastebin.com/ixtN4YBq
Have fun with those! :D
@Tobiyas
Thanks for the speedy update, will try it out later ;)
New version is uploaded (1.10.1 RC-1). It should work with the current implementation of Craftbukkit 1.6.2 (ONLY!)
@LihPeu
argh..... You are correct. They changed it to my ticket. God damn... They changed the way to set the max health. I will fix that. Should work (hopefully.)
@Tobiyas
Thanks for such a fast update. I have only just got around to testing my plugins out on 1.6 and I have noticed EDP is not working with Spigot #1007, not tried any other builds yet.
http://pastebin.com/S2ZSymxc
Which version of craftbukkit worked for you?
I Noticed the First builds for 1.6.1 are out. Let's take a look at the changes...
I will report later how it looks.
EDIT: Looks good. Early Alpha is available (CRAFTBUKKIT 1.6 ONLY!): download
@Tobiyas
Thanks for the info, I will use the API as the dragon event only occurs in the mini game if certain conditions are met. It might be worth adding a location argument to the /sedp command for those who aren't confident enough to use the API.
Regarding the explosion damage you could be right, I don't recall what Minecraft version they changed creepers or the explosion mechanics but the last version of edp I used was 1.8.6.
Anyway its just nice to have intelligent dragons around the place.
Oh and one other thing, I have disableFireballRebounce: true and this appears to be working but client side it looks like the player did return the fire ball, this also used to work perfectly in 1.8.6 but again is not a big deal.
Thanks for your work on this project man!!
@LihPeu
You can spawn them over a respawner (/edprespawner create <spawnername> [DragonAgeName] [RespawnTime] [MaxDragons]). Specifiing a name in the age table spawns this dragon every x minutes.
Another way doing it programly could be:
DragonAPI.spawnNewEnderdragon(Location location, String ageName); (package: de.tobiyas.enderdragonsplus.API).
That with the explosion damage is very wierd... could be an issue to creeper explosion changes. They now do 45 damage on explosion (default). Probably the same thing.
@Tobiyas
1.9.1 Release is working great :D
Only a few bugs I have noticed, the fireball damage is a bit unrealible and can sometimes do no damage, I used to set fireballEntityDamage to 5 but currently to do similar damage I have it set at 85 lol.
The only other thing is the dragon name, is there a way to customize the dragon name Normal? I understand the age table is where you can create custom dragons but I need to spawn the dragon at a given location. Currently I spawn the dragon with my plugin just using: