DragonEggDrop Revival 1.8.2

Ender Dragon loot tables and death effects. (Active Fork of PixelStix's DragonEggDrop)

  1. Choco
    Native Minecraft Version:
    1.16
    Tested Minecraft Versions:
    • 1.16
    Source Code:
    https://github.com/2008Choco/DragonEggDrop/
    Contributors:
    NinjaStix
    DragonEggDrop will only work on versions of Spigot released after July 18th, 2020 and DOES NOT SUPPORT CRAFTBUKKIT. If you are having issues, please consider updating first and seeing if this resolves any errors.

    [​IMG]

    "Reward your players with a dragon egg / loot chest after every Ender Dragon battle in a grand fashion!"

    • Custom Ender Dragon YAML templates with changeable names, boss bar styles and colours, attributes and more...
    • Flexible loot system using vanilla-inspired loot tables
    • Infinite and automatic Ender Dragon respawns for each end world
    • Countdown between automatic Ender Dragon respawns (even between restarts!)
    • Customizable and prefabricated particle animations upon killing the dragon
    • Extensive command system to control how and when the dragon respawns and what loot it will generate
    • Announcements when specific dragons respawn
    • PlaceholderAPI support
    Please see the plugin wiki here!
    https://github.com/2008Choco/DragonEggDrop/wiki/

    [​IMG]
    [​IMG]

    This plugin is a fork of @NinjaStix's DragonEggDrop plugin that was no longer maintained after Minecraft 1.10.2. This was a request from a user to allow for 1.11.2 support but has instead evolved into a frequently updated and active fork for modern versions of Minecraft. This is the unofficial successor to the original DragonEggDrop.


    [​IMG]

    All commands are accompanied by in-game command completion for quick reference.

    /dragoneggdrop (Alias... /ded):
    See a basic overview of the plugin, its author(s) and version information.
    Arguments:
    - /dragoneggdrop reload - Reload the plugin's configuration file, templates and loot tables​

    /dragontemplate (Aliases... /dragontemplates, /template and /templates):
    View information about a specific dragon template from in-game.
    Arguments:
    - /dragontemplate list - List all loaded templates
    * May be abbreviated with /dragontemplates or /templates
    * The list of templates is hoverable. Hover over a template to see information!​
    - /dragontemplate <template> (view/info) - View information about a given template
    - /dragontemplate <template> generateloot - Generate a chest at the command executor's feet with random loot from the loot table of a given template​
    /dragonrespawn (Alias... /respawndragon):
    Manual override to the automatic respawn for Ender Dragons
    Arguments:
    - /dragonrespawn start [time] [world] [template] [loot_table] - Force start a dragon respawn if one is not already started. All arguments are optional
    - /dragonrespawn stop - Cancel the current dragon respawn (if one is in progress)
    - /dragonrespawn template [set|<world>] [world] - Manipulate the template to be spawned next (optionally, in the specified world)​


    [​IMG]

    Unless otherwise specified, all permission nodes listed below default to operators only!

    dragoneggdrop.* - Grant access to all features in dragoneggdrop
    dragoneggdrop.overridecrystals - Override the allow-crystal-respawns configuration option and grant the ability to spawn dragons using crystals
    dragoneggdrop.command.* - Grant access to all commands in dragoneggdrop
    dragoneggdrop.command.reload - Grant access to the /dragoneggdrop reload command
    dragoneggdrop.command.respawn.* - Grant access to the /dragonrespawn command and all its subcommands
    dragoneggdrop.command.respawn.stop - Grant access to the /dragonrespawn stop command
    dragoneggdrop.command.respawn.start - Grant access to the /dragonrespawn start command
    dragoneggdrop.command.respawn.template - Grant access to the /dragonrespawn template command
    dragoneggdrop.command.template.* - Grant access to the details of all loaded dragon templates
    dragoneggdrop.command.template.list - Grant access to the /dragontemplate list command
    dragoneggdrop.command.template.info - Grant access to the dragontemplate <template> info dragoneggdrop.command.template.generateloot - Grant access to the dragontemplate <template> generateloot command


    [​IMG]

    DragonEggDrop supports PlaceholderAPI (PAPI) with the following placeholders:
    • %dragoneggdrop_dragon% - The formatted name of the dragon currently being faught
    • %dragoneggdrop_dragon_<world>% - The formatted name of the dragon currently being faught in the specified world
    • %dragoneggdrop_slain_dragon% - The formatted name of the dragon that was most recently slain
    • %dragoneggdrop_slain_dragon_<world>% - The formatted name of the dragon that was most recently slain in the specified world
    • %dragoneggdrop_respawn_time% - The formatted time remaining for the dragon to respawn
    • %dragoneggdrop_respawn_time_<world>% - The formatted time remaining for the dragon to respawn in the specified world
    • %dragoneggdrop_top_damager% - The name of the player that's done the most damage to the current dragon
    • %dragoneggdrop_top_damager_<position>% - The name of the player that's done the x most amount of damage to the current dragon (i.e. position 1 = top damage, position 2 = second most damage, etc.)
    • %dragoneggdrop_top_damager_<position>_<world>% - The name of the player that's done x most amount of damage to the current dragon in the specified world
    • %dragoneggdrop_top_damage% - The damage done by the top damager to the current dragon
    • %dragoneggdrop_top_damage_<position>% - The damage done by the player that's done x most amount of damage to the current dragon
    • %dragoneggdrop_top_damage_<position>_<world>% - The damage done by the player that's done x most amount of damage to the current dragon in the specified world
    PlaceholderAPI is an optional dependency. If not installed, DragonEggDrop will replace these placeholders in loot tables and configurable messages.


    [​IMG]

    Inspired by vanilla Minecraft's loot tables for entity and chest loot generation, DragonEggDrop's loot is generated through the use of JSON loot tables which may be found under the plugins/DragonEggDrop/loot_tables directory. Below is an example loot table generated by DragonEggDrop by default.
    Code (Text):
    {
        "egg": {
            "chance": 100.0,
            "name": "%dragon%'s Egg",
            "lore": [
                "The egg of %dragon%",
                "A valiant opponent"
            ]
        },
        "command_pools": [
            {
                "rolls": 1,
                "chance": 100.0,
                "commands": [
                    {
                        "weight": 1.0,
                        "command": 'minecraft:tellraw %dragoneggdrop_top_damager% {"text":"Congratulations! You have killed ","color":"red","extra":[{"text":"%dragon%"}]}'
                    }
                ]
            }
        ],
        "chest": {
            "chance": 100.0,
            "name": "&6Testing Chest",
            "pools": [
                {
                    "name": "base-meta-example",
                    "rolls": 1,
                    "items": [
                        {
                            "weight": 1.0,
                            "type": "minecraft:diamond_sword",
                            "name": "Hello!",
                            "lore": [
                                "First line",
                                "Second line!"
                            ],
                            "damage": {
                                "min": 0,
                                "max": 35
                            },
                            "unbreakable": true,
                            "custom_model_data": 1337,
                            "enchantments": {
                                "minecraft:sharpness": {
                                    "min": 2,
                                    "max": 4
                                },
                                "minecraft:unbreaking": 3
                            },
                            "attribute_modifiers": {
                                "generic_max_health": {
                                    "uuid": "3da64fcf-328f-4815-b0a6-ec9a3a839562",
                                    "name": "my_health_modifier",
                                    "operation": "add_number",
                                    "value": 10,
                                    "slot": "off_hand"
                                },
                                "generic_attack_damage": {
                                    "name": "my_damage_modifier",
                                    "operation": "multiply_scalar_1",
                                    "value": 2.5
                                }
                            },
                            "item_flags": [
                                "hide_enchants",
                                "hide_unbreakable"
                            ]
                        }
                    ]
                },
                {
                    "name": "banner-meta-example",
                    "rolls": 1,
                    "items": [
                        {
                            "weight": 1.0,
                            "type": "minecraft:white_banner",
                            "patterns": [
                                {
                                    "color": "red",
                                    "pattern": "skull"
                                },
                                {
                                    "color": "green",
                                    "pattern": "globe"
                                }
                            ]
                        }
                    ]
                },
                {
                    "name": "book-meta-example",
                    "rolls": 1,
                    "items": [
                        {
                            "weight": 1.0,
                            "type": "minecraft:written_book",
                            "author": "Choco",
                            "title": "How To Write Loot Tables",
                            "generation": "tattered",
                            "pages": [
                                "This is the first page of the book. You can write whatever you want here",
                                "This is the second page of the book. You have to click the arrow to go to the next page",
                                "This is the third page of the book! The end!",
                                "(You can include as many pages as you'd like - limited to Minecraft's page limit)"
                            ]
                        }
                    ]
                },
                {
                    "name": "firework-star-meta-example",
                    "rolls": 1,
                    "items": [
                        {
                            "weight": 1.0,
                            "type": "minecraft:firework_star",
                            "effect": "star",
                            "flicker": true,
                            "trail": false,
                            "color": {
                                "primary": [
                                    "#EB3434",
                                    "#19B33D"
                                ],
                                "fade": "#E8CB25"
                            }
                        }
                    ]
                },
                {
                    "name": "firework-rocket-meta-example",
                    "rolls": 1,
                    "items": [
                        {
                            "weight": 1.0,
                            "type": "minecraft:firework_rocket",
                            "power": 3,
                            "effects": [
                                {
                                    "effect": "star",
                                    "flicker": false,
                                    "trail": true,
                                    "color": {
                                        "primary": [
                                            "#EB3434",
                                            "#19B33D"
                                        ],
                                        "fade": [
                                            "#4681E0",
                                            "#B330E3",
                                            "#E8CB25"
                                        ]
                                    }
                                },
                                {
                                    "effect": "creeper",
                                    "color": {
                                        "primary": [
                                            "#4681E0",
                                            "#B330E3",
                                            "#E8CB25"
                                        ],
                                        "fade": [
                                            "#EB3434",
                                            "#19B33D"
                                        ]
                                    }
                                }
                            ]
                        }
                    ]
                },
                {
                    "name": "knowledge-meta-example",
                    "rolls": 1,
                    "items": [
                        {
                            "weight": 1.0,
                            "type": "minecraft:knowledge_book",
                            "recipes": [
                                "minecraft:arrow",
                                "minecraft:furnace",
                                "minecraft:boat"
                            ]
                        }
                    ]
                },
                {
                    "name": "leather-armour-meta-example",
                    "rolls": 1,
                    "items": [
                        {
                            "weight": 1.0,
                            "type": "minecraft:leather_chestplate",
                            "color": "#55E3C2"
                        }
                    ]
                },
                {
                    "name": "map-meta-example",
                    "rolls": 1,
                    "items": [
                        {
                            "weight": 1.0,
                            "type": "minecraft:filled_map",
                            "color": "#9DD62A",
                            "location": "Sunken Treasure",
                            "scaling": false
                        }
                    ]
                },
                {
                    "name": "potion-meta-example",
                    "rolls": 1,
                    "items": [
                        {
                            "weight": 1.0,
                            "type": "minecraft:potion",
                            "base": "weakness",
                            "upgraded": true,
                            "extended": false,
                            "color": "#33FF22",
                            "effects": {
                                "speed": {
                                    "duration": 600,
                                    "amplifier": 2,
                                    "ambient": true
                                },
                                "increase_damage": 1000,
                                "fire_resistance": 400
                            }
                        }
                    ]
                },
                {
                    "name": "skull-meta-example",
                    "rolls": 1,
                    "items": [
                        {
                            "weight": 1.0,
                            "type": "minecraft:player_head",
                            "owner": "2e5bb75b-c55f-4798-903e-db21c6f814c8"
                        }
                    ]
                },
                {
                    "name": "suspicious-stew-meta-example",
                    "rolls": 1,
                    "items": [
                        {
                            "weight": 1.0,
                            "type": "minecraft:suspicious_stew",
                            "effects": {
                                "speed": {
                                    "duration": 600,
                                    "amplifier": 2,
                                    "ambient": true
                                },
                                "increase_damage": 1000,
                                "fire_resistance": 400
                            }
                        }
                    ]
                },
                {
                    "name": "fish-bucket-meta-example",
                    "rolls": 1,
                    "items": [
                        {
                            "weight": 1.0,
                            "type": "minecraft:tropical_fish_bucket",
                            "pattern": "dasher",
                            "color": {
                                "body": "red",
                                "pattern": "blue"
                            }
                        }
                    ]
                }
            ]
        }
    }
    For more on loot tables, see the wiki which goes in detail on how to write your own loot tables (or modify one of the existing loot tables generated by default!)



    [​IMG]

    Given that NinjaStix's original DragonEggDrop resource was open sourced and licensed under the GPLv3 license, I am legally obligated to open source this project and provide source code alongside the download of this plugin. Due to this, releases for this project will be made on GitHub (as you may have already discovered had you clicked the download button) and source code will always be readily available.

    Active GitHub Fork https://github.com/2008Choco/DragonEggDrop/
    NinjaStix's (inactive) GitLab Repository: https://gitlab.com/xPixelRagex/DragonEggDrop/

    You are more than welcome to fork and PR this resource or even request features / report bugs. Be sure to do so on GitHub's Issue Tracker in which I will be able to actively maintain bug reports and feature requests. It is rather difficult for me to manage them in either the review section or the Discussion thread, so please do not hesitate to visit the tracker if you are having any issues.

    As an added bonus, if you'd like to check this project's Javadocs, you are more than welcome to browse them here. Please note that these Javadocs may be either ahead of the current release or slightly before it. I update these manually:
    https://choco.wtf/javadocs/dragoneggdrop-revival/



    If you enjoy this resources, please do consider donating. Be aware that this resource is provided free of charge and as long as you're enjoying it, I'm happy. However, if you insist on supporting me financially, you are welcome to donate using the button below. I appreciate it greatly but do not feel inclined to donate if you do not have the funds necessary to do so. Thank you and enjoy this free resource!

    support_discord.png

    temp.png

Recent Reviews

  1. HavenMC
    HavenMC
    5/5,
    Version: 1.8.2
    Still the most enjoyable end world plugin to utilize for improved enjoyment and a great developer.
  2. Faun
    Faun
    5/5,
    Version: 1.8.2
    This is an amazing plugin with a lot of features. It's beautifully made, the developer is nice. Overall an amazing resource, I highly recommend using it if you want custom loot tables for killing the dragon.
    1. Choco
      Author's Response
      Thank you! I really appreciate the kind words <3 Happy to provide you and others with plugins to make your server as unique as possible!
  3. Muertecita
    Muertecita
    5/5,
    Version: 1.8.2
    Muy buen complemento, sirven mucho para darle juego a los modos survival y mantengan el End mas limpio
  4. laspi94
    laspi94
    5/5,
    Version: 1.8.1
    REALLY NICE PLUGIN!!!!!!! I can use %player% on command rewards? or add multiples commands rewards?
    1. Choco
      Author's Response
      Yes and yes! Well, sort of. Not exactly %player% but if you take a look at at the example loot table you can see that there is a placeholder for the top damager (or nth most damager).
  5. Kaspariuxt
    Kaspariuxt
    5/5,
    Version: 1.8.0
    This is a really good plugin i have used it for a while and i enjoy it.

    In version 1.8.0 you made it so only spigot after 24th march, 2020 works with this plugin (or did i get it wrong?) but 1.15.2 spigot (i want to use 1.15.2 version for my server) is released on 21st of January so does that mean that there's no way to use this plugin (version 1.8.0) on 1.15.2 version anymore? I tried using it and it just gave me errors so it really doesn't work on 1.15.2
    1. Choco
      Author's Response
      You can! Just make sure your version of Spigot is the most recent version of Spigot. (Running BuildTools to build “latest” should work perfectly!)
  6. Jaimexo
    Jaimexo
    5/5,
    Version: 1.8.0
    Amazing plugin!
    Will be nice if you add an option to drop the egg as item. And settings to excecute commands on dragon spawn and death.

    Thanks!
    1. Choco
      Author's Response
      The egg will generate as an item if a chest is generated :) I don't think having it drop as an item entity is ideal because either the lightning will destroy it or it would fall into the portal. As for commands, they CAN be run on death! Not on spawn, however. Will look into this

      That being said, happy to hear you're enjoying it! <3
  7. RodriGamer35
    RodriGamer35
    5/5,
    Version: 1.8.0
    excellent plugin, I have an error and that is that my users cannot get the egg, only the admins can hit it ... and a suggestion, that the countdown can be edited so that it not only says "hours, minutes, etc ..." another is that if the server is turned off or you leave the countdown does not appear and the dragon never appears
    1. Choco
      Author's Response
      (1) The issue with the egg must have to do with a world protection plugin, not DragonEggDrop. There is no code that restricts access to the egg.
      (2) I'm open to suggestions! Please elaborate further in the discussion thread or the support Discord
      (3) Perhaps there is a bug with server restarts though last I recall, the countdown should be persistent across restarts. Again, contact me through Discord or the discussion thread.

      Glad you're enjoying the plugin! :D
  8. HASMCServers
    HASMCServers
    5/5,
    Version: 1.8.0
    Awesome dev, awesome work. He puts extra thought into every aspect of his plugins, and this one is no exception. If you want to know how to make quality plugins, follow Choco's example - you can't go wrong.
    1. Choco
      Author's Response
      <3 Thank you! Means a lot! :D
  9. Instantout
    Instantout
    5/5,
    Version: 1.8.0
    5 Stars! love the plugin i have used it before, But I Do love playing around with very Custom Plugins.
    Loot tables are great, and the dragon details aswell.

    Question?: Does the Loot tables inside the Dragon Name have a chance to pick at random?
    1. Choco
      Author's Response
      Templates may have only one loot table but I did consider having a % chance to pick one of multiple loot tables. I’ll include this in a future update :)
  10. Gingish
    Gingish
    5/5,
    Version: 1.7.1
    Easy to set up and well-written. Does exactly what it says it does with only a few minor hiccups, and a clean user experience. I would prefer that the broadcast messages be editable within the config, but this isn't a dealbreaker.
    1. Choco
      Author's Response
      Please see the most recent update. These messages are now configurable! :)