Added Items lookup system support to mythicmobs drops
This commit is contained in:
@@ -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()) },
|
||||
|
||||
@@ -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
|
||||
}
|
||||
}
|
||||
@@ -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)
|
||||
)
|
||||
}
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user