diff --git a/src/main/java/net/Indyuce/mmocore/api/load/DefaultMMOLoader.java b/src/main/java/net/Indyuce/mmocore/api/load/DefaultMMOLoader.java index 294cbcb8..7b8857b7 100644 --- a/src/main/java/net/Indyuce/mmocore/api/load/DefaultMMOLoader.java +++ b/src/main/java/net/Indyuce/mmocore/api/load/DefaultMMOLoader.java @@ -14,7 +14,6 @@ import net.Indyuce.mmocore.loot.droptable.condition.WorldCondition; import net.Indyuce.mmocore.loot.droptable.dropitem.DropItem; import net.Indyuce.mmocore.loot.droptable.dropitem.DropTableDropItem; import net.Indyuce.mmocore.loot.droptable.dropitem.GoldDropItem; -import net.Indyuce.mmocore.loot.droptable.dropitem.MMDropTableDropItem; import net.Indyuce.mmocore.loot.droptable.dropitem.NoteDropItem; import net.Indyuce.mmocore.loot.droptable.dropitem.VanillaDropItem; import net.Indyuce.mmocore.experience.source.BrewPotionExperienceSource; @@ -88,9 +87,6 @@ public class DefaultMMOLoader extends MMOLoader { if (config.getKey().equals("gold") || config.getKey().equals("coin")) return new GoldDropItem(config); - if (config.getKey().equals("mmdroptable")) - return new MMDropTableDropItem(config); - return null; } diff --git a/src/main/java/net/Indyuce/mmocore/comp/mythicmobs/MythicMobsMMOLoader.java b/src/main/java/net/Indyuce/mmocore/comp/mythicmobs/MythicMobsMMOLoader.java index 112c53ff..8a197ee8 100644 --- a/src/main/java/net/Indyuce/mmocore/comp/mythicmobs/MythicMobsMMOLoader.java +++ b/src/main/java/net/Indyuce/mmocore/comp/mythicmobs/MythicMobsMMOLoader.java @@ -7,6 +7,7 @@ import net.Indyuce.mmocore.api.quest.trigger.Trigger; import net.Indyuce.mmocore.comp.mythicmobs.load.*; import net.Indyuce.mmocore.experience.dispenser.ExperienceDispenser; import net.Indyuce.mmocore.experience.source.type.ExperienceSource; +import net.Indyuce.mmocore.loot.droptable.dropitem.DropItem; import org.bukkit.configuration.ConfigurationSection; public class MythicMobsMMOLoader extends MMOLoader { @@ -20,6 +21,15 @@ public class MythicMobsMMOLoader extends MMOLoader { return null; } + @Override + public DropItem loadDropItem(MMOLineConfig config) { + + if (config.getKey().equals("mmdroptable")) + return new MMDropTableDropItem(config); + + return null; + } + @Override public Objective loadObjective(MMOLineConfig config, ConfigurationSection section) { diff --git a/src/main/java/net/Indyuce/mmocore/comp/mythicmobs/load/MMDropTableDropItem.java b/src/main/java/net/Indyuce/mmocore/comp/mythicmobs/load/MMDropTableDropItem.java new file mode 100644 index 00000000..05ea8441 --- /dev/null +++ b/src/main/java/net/Indyuce/mmocore/comp/mythicmobs/load/MMDropTableDropItem.java @@ -0,0 +1,42 @@ +package net.Indyuce.mmocore.comp.mythicmobs.load; + +import io.lumine.mythic.api.drops.DropMetadata; +import io.lumine.mythic.api.drops.IItemDrop; +import io.lumine.mythic.bukkit.BukkitAdapter; +import io.lumine.mythic.bukkit.MythicBukkit; +import io.lumine.mythic.core.drops.Drop; +import io.lumine.mythic.core.drops.DropMetadataImpl; +import io.lumine.mythic.core.drops.DropTable; +import io.lumine.mythic.core.drops.LootBag; +import io.lumine.mythic.lib.api.MMOLineConfig; +import net.Indyuce.mmocore.loot.LootBuilder; +import net.Indyuce.mmocore.loot.droptable.dropitem.DropItem; + +import java.util.NoSuchElementException; + +public class MMDropTableDropItem extends DropItem { + private final DropTable dropTable; + + private static final DropMetadata DROP_METADATA = new DropMetadataImpl(null, null); + + public MMDropTableDropItem(MMOLineConfig config) { + super(config); + + config.validate("id"); + String id = config.getString("id"); + + try { + dropTable = MythicBukkit.inst().getDropManager().getDropTable(id).orElse(null); + } catch (NoSuchElementException exception) { + throw new IllegalArgumentException("Could not find MM drop table with ID '" + id + "'"); + } + } + + @Override + public void collect(LootBuilder builder) { + LootBag lootBag = dropTable.generate(DROP_METADATA); + for (Drop type : lootBag.getDrops()) + if (type instanceof IItemDrop) + builder.addLoot(BukkitAdapter.adapt(((IItemDrop) type).getDrop(DROP_METADATA, 1))); + } +} diff --git a/src/main/java/net/Indyuce/mmocore/loot/droptable/dropitem/MMDropTableDropItem.java b/src/main/java/net/Indyuce/mmocore/loot/droptable/dropitem/MMDropTableDropItem.java deleted file mode 100644 index 2d8d1473..00000000 --- a/src/main/java/net/Indyuce/mmocore/loot/droptable/dropitem/MMDropTableDropItem.java +++ /dev/null @@ -1,40 +0,0 @@ -package net.Indyuce.mmocore.loot.droptable.dropitem; - -import java.util.NoSuchElementException; - -import io.lumine.xikage.mythicmobs.MythicMobs; -import io.lumine.xikage.mythicmobs.adapters.bukkit.BukkitAdapter; -import io.lumine.xikage.mythicmobs.drops.Drop; -import io.lumine.xikage.mythicmobs.drops.DropMetadata; -import io.lumine.xikage.mythicmobs.drops.DropTable; -import io.lumine.xikage.mythicmobs.drops.IItemDrop; -import io.lumine.xikage.mythicmobs.drops.LootBag; -import net.Indyuce.mmocore.loot.LootBuilder; -import io.lumine.mythic.lib.api.MMOLineConfig; - -public class MMDropTableDropItem extends DropItem { - private final DropTable dropTable; - - private static final DropMetadata metadata = new DropMetadata(null, null); - - public MMDropTableDropItem(MMOLineConfig config) { - super(config); - - config.validate("id"); - String id = config.getString("id"); - - try { - dropTable = MythicMobs.inst().getDropManager().getDropTable(id).orElse(null); - } catch (NoSuchElementException exception) { - throw new IllegalArgumentException("Could not find MM drop table with ID '" + id + "'"); - } - } - - @Override - public void collect(LootBuilder builder) { - LootBag lootBag = dropTable.generate(metadata); - for (Drop type : lootBag.getDrops()) - if (type instanceof IItemDrop) - builder.addLoot(BukkitAdapter.adapt(((IItemDrop) type).getDrop(metadata))); - } -}