diff --git a/eco-core/core-plugin/src/main/kotlin/com/willfp/eco/internal/spigot/EcoSpigotPlugin.kt b/eco-core/core-plugin/src/main/kotlin/com/willfp/eco/internal/spigot/EcoSpigotPlugin.kt index 54e64b5c..01e9354a 100644 --- a/eco-core/core-plugin/src/main/kotlin/com/willfp/eco/internal/spigot/EcoSpigotPlugin.kt +++ b/eco-core/core-plugin/src/main/kotlin/com/willfp/eco/internal/spigot/EcoSpigotPlugin.kt @@ -93,6 +93,7 @@ import com.willfp.eco.internal.spigot.integrations.customitems.CustomItemsExecut import com.willfp.eco.internal.spigot.integrations.customitems.CustomItemsHeadDatabase import com.willfp.eco.internal.spigot.integrations.customitems.CustomItemsItemsAdder import com.willfp.eco.internal.spigot.integrations.customitems.CustomItemsOraxen +import com.willfp.eco.internal.spigot.integrations.customitems.mythicmobs.MythicDropListener import com.willfp.eco.internal.spigot.integrations.customrecipes.CustomRecipeCustomCrafting import com.willfp.eco.internal.spigot.integrations.economy.EconomyVault import com.willfp.eco.internal.spigot.integrations.hologram.HologramCMI @@ -250,7 +251,10 @@ abstract class EcoSpigotPlugin : EcoPlugin() { IntegrationLoader("Alice") { AnticheatManager.register(this, AnticheatAlice()) }, // Custom Entities - IntegrationLoader("MythicMobs") { CustomEntitiesManager.register(CustomEntitiesMythicMobs()) }, + IntegrationLoader("MythicMobs") { + CustomEntitiesManager.register(CustomEntitiesMythicMobs()); + this.eventManager.registerListener(MythicDropListener()) + }, // Custom Items IntegrationLoader("Oraxen") { CustomItemsManager.register(CustomItemsOraxen()) }, diff --git a/eco-core/core-plugin/src/main/kotlin/com/willfp/eco/internal/spigot/integrations/customitems/mythicmobs/CustomItemsMythicMobs.kt b/eco-core/core-plugin/src/main/kotlin/com/willfp/eco/internal/spigot/integrations/customitems/mythicmobs/CustomItemsMythicMobs.kt new file mode 100644 index 00000000..da371267 --- /dev/null +++ b/eco-core/core-plugin/src/main/kotlin/com/willfp/eco/internal/spigot/integrations/customitems/mythicmobs/CustomItemsMythicMobs.kt @@ -0,0 +1,31 @@ +package com.willfp.eco.internal.spigot.integrations.customitems.mythicmobs + +import com.willfp.eco.core.items.Items +import com.willfp.eco.core.recipe.parts.EmptyTestableItem +import io.lumine.xikage.mythicmobs.adapters.bukkit.BukkitItemStack +import io.lumine.xikage.mythicmobs.drops.Drop +import io.lumine.xikage.mythicmobs.drops.DropMetadata +import io.lumine.xikage.mythicmobs.drops.IMultiDrop +import io.lumine.xikage.mythicmobs.drops.LootBag +import io.lumine.xikage.mythicmobs.drops.droppables.ItemDrop +import io.lumine.xikage.mythicmobs.io.MythicLineConfig +import org.bukkit.Bukkit + +class CustomItemsMythicMobs(config: MythicLineConfig): Drop(config.line, config), IMultiDrop { + + val id: String + + init { + id = config.getString(mutableListOf("type", "t", "item", "i").toTypedArray(), this.dropVar) + } + + override fun get(data: DropMetadata): LootBag { + val bag = LootBag(data) + val item = Items.lookup(id) + if (item is EmptyTestableItem) { + Bukkit.getLogger().severe("Item $id is invalid, make sure to fix this on your side") + } + bag.add(data, ItemDrop(this.line, this.config as MythicLineConfig, BukkitItemStack(item.item))) + return bag + } +} \ No newline at end of file diff --git a/eco-core/core-plugin/src/main/kotlin/com/willfp/eco/internal/spigot/integrations/customitems/mythicmobs/MythicDropListener.kt b/eco-core/core-plugin/src/main/kotlin/com/willfp/eco/internal/spigot/integrations/customitems/mythicmobs/MythicDropListener.kt new file mode 100644 index 00000000..1b46982f --- /dev/null +++ b/eco-core/core-plugin/src/main/kotlin/com/willfp/eco/internal/spigot/integrations/customitems/mythicmobs/MythicDropListener.kt @@ -0,0 +1,17 @@ +package com.willfp.eco.internal.spigot.integrations.customitems.mythicmobs + +import io.lumine.xikage.mythicmobs.api.bukkit.events.MythicDropLoadEvent +import org.bukkit.event.EventHandler +import org.bukkit.event.Listener + +class MythicDropListener: Listener { + @EventHandler + fun onLoad(event: MythicDropLoadEvent) { + val name = event.dropName + if (name.equals("Eco", true)) { + event.register( + CustomItemsMythicMobs(event.config) + ) + } + } +} \ No newline at end of file