mirror of
https://gitlab.com/phoenix-dvpmt/mmoitems.git
synced 2025-03-13 13:30:06 +01:00
Added new crafting station triggers. View here https://github.com/mmopluginteam/mmoitems/wiki/Recipe-Triggers
This commit is contained in:
parent
29df32d748
commit
00c28dd750
@ -5,6 +5,7 @@ import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
import java.util.logging.Level;
|
||||
|
||||
import net.Indyuce.mmoitems.comp.mythicmobs.MythicMobsLoader;
|
||||
import org.apache.commons.lang.Validate;
|
||||
import org.bukkit.Bukkit;
|
||||
import org.bukkit.ChatColor;
|
||||
@ -253,6 +254,12 @@ public class MMOItems extends JavaPlugin {
|
||||
new MMOItemsRewardTypes().register();
|
||||
getLogger().log(Level.INFO, "Hooked onto BossShopPro");
|
||||
}
|
||||
// Will be used in the future.
|
||||
//
|
||||
// if (Bukkit.getPluginManager().getPlugin("MythicMobs") != null) {
|
||||
// new MythicMobsLoader();
|
||||
// getLogger().log(Level.INFO, "Hooked onto MythicMobs");
|
||||
// }
|
||||
|
||||
findRpgPlugin();
|
||||
|
||||
|
@ -2,7 +2,7 @@ package net.Indyuce.mmoitems.comp.mythicmobs;
|
||||
|
||||
import java.util.logging.Level;
|
||||
|
||||
import net.Indyuce.mmoitems.api.crafting.trigger.MMOItemTrigger;
|
||||
import net.Indyuce.mmoitems.comp.mythicmobs.crafting.MythicItemIngredient;
|
||||
import org.apache.commons.lang.Validate;
|
||||
import org.bukkit.Bukkit;
|
||||
import org.bukkit.event.EventHandler;
|
||||
@ -37,10 +37,9 @@ public class MythicMobsHook implements Listener {
|
||||
MythicMobs.inst().getPlaceholderManager().register("mmoitems.skill", Placeholder.meta((metadata, arg) -> String
|
||||
.valueOf(PlayerData.get(metadata.getCaster().getEntity().getUniqueId()).getAbilityData().getCachedModifier(arg))));
|
||||
Bukkit.getPluginManager().registerEvents(this, MMOItems.plugin);
|
||||
MMOItems.plugin.getCrafting().registerIngredient("mythicitem", config -> new MythicItemIngredient(config),
|
||||
new ConditionalDisplay("&8" + AltChar.check + " &7#amount# #item#", "&c" + AltChar.cross + " &7#amount# #item#"),
|
||||
nbt -> nbt.hasTag("MYTHIC_TYPE"), nbt -> nbt.getString("MYTHIC_TYPE").toLowerCase());
|
||||
//MMOItems.plugin.getCrafting().registerTrigger("mmskill", config -> new MythicMobsSkillTrigger(config));
|
||||
// MMOItems.plugin.getCrafting().registerIngredient("mythicitem", config -> new MythicItemIngredient(config),
|
||||
// new ConditionalDisplay("&8" + AltChar.check + " &7#amount# #item#", "&c" + AltChar.cross + " &7#amount# #item#"),
|
||||
// nbt -> nbt.hasTag("MYTHIC_TYPE"), nbt -> nbt.getString("MYTHIC_TYPE").toLowerCase());
|
||||
}
|
||||
|
||||
/*
|
||||
|
@ -0,0 +1,33 @@
|
||||
package net.Indyuce.mmoitems.comp.mythicmobs;
|
||||
|
||||
import io.lumine.xikage.mythicmobs.MythicMobs;
|
||||
import io.lumine.xikage.mythicmobs.mobs.MythicMob;
|
||||
import net.Indyuce.mmoitems.MMOItems;
|
||||
import net.Indyuce.mmoitems.comp.mythicmobs.stat.FactionDamage;
|
||||
|
||||
import java.util.Collection;
|
||||
import java.util.LinkedList;
|
||||
|
||||
/*
|
||||
* this loads mmoitems comp for mythic mobs
|
||||
* since MythicMobsHook is never used
|
||||
*/
|
||||
public class MythicMobsLoader {
|
||||
|
||||
public MythicMobsLoader() {
|
||||
for (String faction : this.getFactions()) {
|
||||
MMOItems.plugin.getStats().register(new FactionDamage(faction));
|
||||
}
|
||||
}
|
||||
|
||||
private Collection<String> getFactions(){
|
||||
Collection<String> allFactions = new LinkedList<>();
|
||||
for (MythicMob mob : MythicMobs.inst().getMobManager().getMobTypes()) {
|
||||
if (mob.getFaction() != null) {
|
||||
if (!allFactions.contains(mob.getFaction()))
|
||||
allFactions.add(mob.getFaction());
|
||||
}
|
||||
}
|
||||
return allFactions;
|
||||
}
|
||||
}
|
@ -1,49 +1,49 @@
|
||||
package net.Indyuce.mmoitems.comp.mythicmobs;
|
||||
|
||||
import java.util.Optional;
|
||||
|
||||
import org.apache.commons.lang.Validate;
|
||||
import org.bukkit.inventory.ItemStack;
|
||||
|
||||
import io.lumine.xikage.mythicmobs.MythicMobs;
|
||||
import io.lumine.xikage.mythicmobs.adapters.bukkit.BukkitAdapter;
|
||||
import io.lumine.xikage.mythicmobs.items.MythicItem;
|
||||
import net.Indyuce.mmoitems.api.crafting.ingredient.Ingredient;
|
||||
import net.mmogroup.mmolib.api.MMOLineConfig;
|
||||
|
||||
public class MythicItemIngredient extends Ingredient {
|
||||
private final MythicItem mythicitem;
|
||||
|
||||
private final String display;
|
||||
|
||||
public MythicItemIngredient(MMOLineConfig config) {
|
||||
super("mythicitem", config);
|
||||
|
||||
config.validate("item");
|
||||
Optional<MythicItem> mmitem = MythicMobs.inst().getItemManager().getItem(config.getString("item"));
|
||||
Validate.isTrue(mmitem.isPresent(), "Could not find MM Item with ID '" + mmitem.get() + "'");
|
||||
|
||||
display = config.contains("display") ? config.getString("display") : mmitem.get().getDisplayName();
|
||||
mythicitem = mmitem.get();
|
||||
}
|
||||
|
||||
@Override
|
||||
public String getKey() {
|
||||
return "mythicitem:" + mythicitem.getInternalName().toLowerCase();
|
||||
}
|
||||
|
||||
@Override
|
||||
public String formatLoreDisplay(String string) {
|
||||
return string.replace("#item#", display).replace("#amount#", "" + getAmount());
|
||||
}
|
||||
|
||||
@Override
|
||||
public ItemStack generateItemStack() {
|
||||
return BukkitAdapter.adapt(mythicitem.generateItemStack(getAmount()));
|
||||
}
|
||||
|
||||
@Override
|
||||
public String toString() {
|
||||
return getKey();
|
||||
}
|
||||
}
|
||||
package net.Indyuce.mmoitems.comp.mythicmobs.crafting;
|
||||
|
||||
import java.util.Optional;
|
||||
|
||||
import org.apache.commons.lang.Validate;
|
||||
import org.bukkit.inventory.ItemStack;
|
||||
|
||||
import io.lumine.xikage.mythicmobs.MythicMobs;
|
||||
import io.lumine.xikage.mythicmobs.adapters.bukkit.BukkitAdapter;
|
||||
import io.lumine.xikage.mythicmobs.items.MythicItem;
|
||||
import net.Indyuce.mmoitems.api.crafting.ingredient.Ingredient;
|
||||
import net.mmogroup.mmolib.api.MMOLineConfig;
|
||||
|
||||
public class MythicItemIngredient extends Ingredient {
|
||||
private final MythicItem mythicitem;
|
||||
|
||||
private final String display;
|
||||
|
||||
public MythicItemIngredient(MMOLineConfig config) {
|
||||
super("mythicitem", config);
|
||||
|
||||
config.validate("item");
|
||||
Optional<MythicItem> mmitem = MythicMobs.inst().getItemManager().getItem(config.getString("item"));
|
||||
Validate.isTrue(mmitem.isPresent(), "Could not find MM Item with ID '" + mmitem.get() + "'");
|
||||
|
||||
display = config.contains("display") ? config.getString("display") : mmitem.get().getDisplayName();
|
||||
mythicitem = mmitem.get();
|
||||
}
|
||||
|
||||
@Override
|
||||
public String getKey() {
|
||||
return "mythicitem:" + mythicitem.getInternalName().toLowerCase();
|
||||
}
|
||||
|
||||
@Override
|
||||
public String formatLoreDisplay(String string) {
|
||||
return string.replace("#item#", display).replace("#amount#", "" + getAmount());
|
||||
}
|
||||
|
||||
@Override
|
||||
public ItemStack generateItemStack() {
|
||||
return BukkitAdapter.adapt(mythicitem.generateItemStack(getAmount()));
|
||||
}
|
||||
|
||||
@Override
|
||||
public String toString() {
|
||||
return getKey();
|
||||
}
|
||||
}
|
@ -1,4 +1,4 @@
|
||||
package net.Indyuce.mmoitems.comp.mythicmobs;
|
||||
package net.Indyuce.mmoitems.comp.mythicmobs.crafting;
|
||||
|
||||
import io.lumine.xikage.mythicmobs.MythicMobs;
|
||||
import io.lumine.xikage.mythicmobs.skills.Skill;
|
@ -0,0 +1,13 @@
|
||||
package net.Indyuce.mmoitems.comp.mythicmobs.stat;
|
||||
|
||||
import net.Indyuce.mmoitems.stat.type.DoubleStat;
|
||||
import org.bukkit.Material;
|
||||
import org.bukkit.inventory.ItemStack;
|
||||
|
||||
public class FactionDamage extends DoubleStat {
|
||||
|
||||
public FactionDamage(String faction) {
|
||||
super("FACTION_DAMAGE_" + faction.toUpperCase(), new ItemStack(Material.RED_DYE), faction + " Faction Damage", new String[] { "Deals additional damage to mobs", "from the " + faction + " faction in %." }, new String[] { "all" });
|
||||
}
|
||||
}
|
||||
|
@ -13,6 +13,9 @@ import java.util.function.Predicate;
|
||||
import java.util.logging.Level;
|
||||
|
||||
import net.Indyuce.mmoitems.api.crafting.trigger.*;
|
||||
import net.Indyuce.mmoitems.comp.mythicmobs.crafting.MythicItemIngredient;
|
||||
import net.Indyuce.mmoitems.comp.mythicmobs.crafting.MythicMobsSkillTrigger;
|
||||
import org.bukkit.Bukkit;
|
||||
import org.bukkit.configuration.file.YamlConfiguration;
|
||||
|
||||
import com.google.gson.JsonParser;
|
||||
@ -72,6 +75,14 @@ public class CraftingManager {
|
||||
int level = !upgradeString.isEmpty() ? new JsonParser().parse(upgradeString).getAsJsonObject().get("Level").getAsInt() : 0;
|
||||
return item.getString("MMOITEMS_ITEM_TYPE").toLowerCase() + (level != 0 ? "-" + level : "") + "_" + item.getString("MMOITEMS_ITEM_ID").toLowerCase();
|
||||
});
|
||||
|
||||
// mm comp
|
||||
if (Bukkit.getPluginManager().getPlugin("MythicMobs") != null) {
|
||||
registerIngredient("mythicitem", config -> new MythicItemIngredient(config),
|
||||
new ConditionalDisplay("&8" + AltChar.check + " &7#amount# #item#", "&c" + AltChar.cross + " &7#amount# #item#"),
|
||||
nbt -> nbt.hasTag("MYTHIC_TYPE"), nbt -> nbt.getString("MYTHIC_TYPE").toLowerCase());
|
||||
registerTrigger("mmskill", config -> new MythicMobsSkillTrigger(config));
|
||||
}
|
||||
}
|
||||
|
||||
public void reload() {
|
||||
|
Loading…
Reference in New Issue
Block a user