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...).
1.6 where is u!
@ledhead900
Well the problem is, that this is not planed from Mojang. Enderdragons should be used in The_End (originaly) where no caves are. Enderdragons bounce from endstone/obsidian/bedrock. I would have to rewrite the whole dragon movement logic which is kind of extremly much. :( I could try using an improved a* to get to the player instead of direct fliing. The problem is, this is very resource bursting.
This would be a gigantic step to take. Not sure if it is that easy, since dragons are really large and need much space.
@Tobiyas
My players are getting frustrated, because for some reason the dragons spawned by this ignore blocks and chase them into cave mines and things like that. The dragons appear to just fly right through anything which I think is a concern. I am not sure if this was intentional or not though but I cant seem to see how ti disable it if it was.
@Krevex Sorry, I was extremly busy the laste week.
I got it done so far, but it is completely untested. I have to test it a bit before releasing. Don't want everything broke for it.
1.6 come out come out where ever you are!
It says compatible with RideThaDragon. In RideThaDragon's most recent update, you can change the enderdragon's texture via spoutcraft. Does this mean that the custom texture would show up on spawned dragons on this plugin as well? Thank you.
i have some outdated dragon-related code here if you want, its really messy but the concepts work. Friends.java FriendsBlockListener.java
Dances= YAY Tobiyas!
Great, now I'm going to be here clicking refresh like its a minecraft 1.3 update waiting to be released >.<
@Krevex @Faldonboy
I agree to Krevex. Lightning is too continous and too static. There would be no real possability to avoid.
At the moment I sit on extended Fireballs. You can (when it's finished) change the explosion Radius and the explosion Damage. Also the Dragon can fire at more than 1 Target. Also The Fieballs get a chance to let the player burn (also configurable).
I am also currently sitting and try to find out if it is possible to disable the Boss-HP-Bar
Maybe I will add better targeting and Pathfinding. Not sure if this is easy possible...
@Faldonboy
Tobiyas is already working on a way to create more reliable damage, by either explosion raidus, fireballs setting people ablaze, and possibly (crosses fingers) a configurable fireball/explosion damage.
For the time being try setting the fireball rate to 1 second... for the love of all your players, and the stability of your server do not use a decimal integer hah. It reads it as a 0 and the dragon goes ballistic =)
If your players have access to power 10 bows, try using 100k as the dragon's HP, for the time being 2 or more players are going to keep the dragon from making very many successful "runs" into the players to cause any significant damage so it functions as mostly a time sink. Might as well make it a multi-day event until the dragon is capable of dishing out some real damage to the players, instead of making them all hunt materials for arrows, either way its kept a number of players entertained. 3 players did manage to drop a 100k dragon on my server with basic enchants over 2 days. They were proud of the accomplishment and I'd imagine your's will be to!
Lightning may be a bit too direct, kind of takes the skill out of returning fireballs or dodging them and makes it more of a endurance test, since SOMEONE is always going to be taking damage. Might be an interesting "patch" up for the current situation though. Tobiyas seems to be very active with the plugin so I'm sure we'll get to see many great new additions when he figures out how he wants to lay it all out!
Any chance you could add an option to let the dragon call down lightning on whoever it's targeting? The fireballs are amazing but when you have several people firing bows with power 10+ on them even a dragon with 10k hp falls fast when everyone just dodges the fireballs.
Or perhaps making it so it can "throw" it's target, would stop people from sniping from the towers all the time
It would be awesome if you could make it so we had the option to cause Enderdragons to spawn naturally in defined worlds! With the ability to lay a few properties like
Weather Amount spawned per x minutes/hoursIt'd also be awesome if you could somehow give the ability to remove the "Boss Health" Client bar. I know its possible, as the plugins "Mobs" did it. However, I am not sure how they did so, nor do I personally like how they built that plugin (Required use of Generator instead of being able to edit cfg).
Awesome. Many options for fighting the dragon. I played around with this, and it really is helpful to go by the chat messages instead of the boss health. It makes it feel so much longer of a fight when it's by the health bar. :P It'll be all-hell when I change the health to be much higher. :P
I don't know why, but I'm making an "easy End" and a "hard End". The harder one is with your plugin, which I can definitely find harder with some of these settings.
And yes, I did think it through for the most part. XP needs to be distributed differently in the easier.. or vanilla end. Just something neat though.
@Krevex Thank you very much :) I'll give my best, as always. (or at least, what the guys from Bukkit/Mojang gave me for possibilities....)
@Adondriel Okay.. I'll see what I can do.
@Tobiyas
I am on ubuntu and im using the openjdk version of java from software center.
Thanks Tobiyas, look forward to seeing what you come up with, you do great work, and solving that world distance bug was terrific!
Cant wait to see what kind of creations you invent to make the EnderDragon a real boss again ^.^
@Ace199102840 I'm glad it works now.
@Adondriel Yeah. It is possible, but I give no garanty that it works properly, since my Testing was only under java 7. I will make a java 6 v32. Not sure, why not to upgrade from rev 20 to rev 32. Shouldn't be any incompability there.
@Krevex I Agree to that. The great Problem I have is, that Fireballs under Craftbukkit suck a bit.. It is not easily possible to remove the world damage without removing the player damage.
I can make a config option for explosion radius. Probably gonna add a manuell check to that... Should be easier.
Maybe the fireballs get a chance to set the player under fire. Hm.. lets see.
Would love to see some expansion into the customization of the fireball. With protection 4 diamond armor the fireball has no effect on a player. Rather such a small one that its hardly noticable. Being able to set the damage of the fireball and the explosion radius would be extremely useful in creating an enderdragon that actually poses a challenge.
Even if I set the dragon's damage to 10k, 2 players with bows and enough arrows are more than likely going to keep the dragon from ever getting close. Its fireballs would be the main source of damage keeping the players entertained running back and forth for potions/food, calling in more buddies to help with the fight and so on.
Of course this would have to be seperated from the ghast fireballs, or we'd end up creating some nasty versions of upgraded doom-ghasts unintentionally.
Could you make a java 6 version? PLEASE? :) Thank you if you do. (java 6 build20)
@Tobiyas
@Tobiyas
ill try this update and see how it works :D i got my fingers crossed
hay thank you so much for fixing that bug... :D i havn't run into any problems yet! me and few others have killed the dragon and everything seems well.... your so awesome!! thanks!