From 4ffc001900bde0449a78752ef75e437ee4d85d56 Mon Sep 17 00:00:00 2001 From: Joshua Date: Sun, 4 Apr 2021 02:23:59 -0500 Subject: [PATCH] part 1 of MythicEnchants support --- pom.xml | 5 ++++ .../java/net/Indyuce/mmoitems/MMOItems.java | 9 ++++++++ .../interaction/weapon/untargeted/Musket.java | 2 ++ .../mmoitems/api/player/RPGPlayer.java | 17 ++++++-------- .../mythicenchants/MythicEnchantsSupport.java | 23 +++++++++++++++++++ 5 files changed, 46 insertions(+), 10 deletions(-) create mode 100644 src/main/java/net/Indyuce/mmoitems/comp/mythicenchants/MythicEnchantsSupport.java diff --git a/pom.xml b/pom.xml index fc91e4eb..8c51602c 100644 --- a/pom.xml +++ b/pom.xml @@ -172,6 +172,11 @@ system ${basedir}/lib/BossShopPro.jar + + io.lumine + MythicEnchants + 0.0.1-SNAPSHOT + com.bekvon.bukkit Residence diff --git a/src/main/java/net/Indyuce/mmoitems/MMOItems.java b/src/main/java/net/Indyuce/mmoitems/MMOItems.java index ab67bc73..5de25e61 100644 --- a/src/main/java/net/Indyuce/mmoitems/MMOItems.java +++ b/src/main/java/net/Indyuce/mmoitems/MMOItems.java @@ -27,6 +27,7 @@ import net.Indyuce.mmoitems.comp.itemglow.ItemGlowListener; import net.Indyuce.mmoitems.comp.itemglow.NoGlowListener; import net.Indyuce.mmoitems.comp.mmocore.MMOCoreMMOLoader; import net.Indyuce.mmoitems.comp.mmoinventory.MMOInventorySupport; +import net.Indyuce.mmoitems.comp.mythicenchants.MythicEnchantsSupport; import net.Indyuce.mmoitems.comp.mythicmobs.LootsplosionListener; import net.Indyuce.mmoitems.comp.mythicmobs.MythicMobsLoader; import net.Indyuce.mmoitems.comp.parse.IridescentParser; @@ -92,6 +93,7 @@ public class MMOItems extends LuminePlugin { private HologramSupport hologramSupport; private VaultSupport vaultSupport; private RPGHandler rpgPlugin; + private MythicEnchantsSupport mythicEnchantsSupport; @Override public void load() { @@ -128,6 +130,9 @@ public class MMOItems extends LuminePlugin { if (Bukkit.getPluginManager().getPlugin("mcMMO") != null) statManager.register(McMMOHook.disableMcMMORepair); + if (Bukkit.getPluginManager().getPlugin("MythicEnchants") != null) + mythicEnchantsSupport = new MythicEnchantsSupport(); + } @Override public void enable() { @@ -504,6 +509,10 @@ public class MMOItems extends LuminePlugin { return vaultSupport != null && vaultSupport.getPermissions() != null; } + public MythicEnchantsSupport getMythicEnchantsSupport(){ + return this.mythicEnchantsSupport; + } + public boolean hasEconomy() { return vaultSupport != null && vaultSupport.getEconomy() != null; } diff --git a/src/main/java/net/Indyuce/mmoitems/api/interaction/weapon/untargeted/Musket.java b/src/main/java/net/Indyuce/mmoitems/api/interaction/weapon/untargeted/Musket.java index a1186f85..78499891 100644 --- a/src/main/java/net/Indyuce/mmoitems/api/interaction/weapon/untargeted/Musket.java +++ b/src/main/java/net/Indyuce/mmoitems/api/interaction/weapon/untargeted/Musket.java @@ -65,5 +65,7 @@ public class Musket extends UntargetedWeapon { getNBTItem(), trace.getHit()); trace.draw(loc, vec, 2, Color.BLACK); getPlayer().getWorld().playSound(getPlayer().getLocation(), Sound.ENTITY_ZOMBIE_ATTACK_IRON_DOOR, 2, 2); + + } } diff --git a/src/main/java/net/Indyuce/mmoitems/api/player/RPGPlayer.java b/src/main/java/net/Indyuce/mmoitems/api/player/RPGPlayer.java index 5c3c7a9b..ad2f99ad 100644 --- a/src/main/java/net/Indyuce/mmoitems/api/player/RPGPlayer.java +++ b/src/main/java/net/Indyuce/mmoitems/api/player/RPGPlayer.java @@ -1,18 +1,15 @@ package net.Indyuce.mmoitems.api.player; -import java.text.DecimalFormat; - -import net.Indyuce.mmoitems.api.item.mmoitem.MMOItem; -import net.Indyuce.mmoitems.stat.type.ItemStat; -import org.bukkit.ChatColor; -import org.bukkit.Sound; -import org.bukkit.entity.Player; - +import io.lumine.mythic.lib.api.item.NBTItem; import net.Indyuce.mmoitems.MMOItems; import net.Indyuce.mmoitems.api.util.message.Message; import net.Indyuce.mmoitems.stat.data.AbilityData; import net.Indyuce.mmoitems.stat.type.ItemRestriction; -import io.lumine.mythic.lib.api.item.NBTItem; +import org.bukkit.ChatColor; +import org.bukkit.Sound; +import org.bukkit.entity.Player; + +import java.text.DecimalFormat; public abstract class RPGPlayer { private final PlayerData playerData; @@ -91,7 +88,7 @@ public abstract class RPGPlayer { */ public boolean canUse(NBTItem item, boolean message) { return canUse(item, message, false); } - /** + /**g * If this item can be used by this player * @param message Should the player be notified that they cant use the item? *

Use for active checks (the player actually clicking)

diff --git a/src/main/java/net/Indyuce/mmoitems/comp/mythicenchants/MythicEnchantsSupport.java b/src/main/java/net/Indyuce/mmoitems/comp/mythicenchants/MythicEnchantsSupport.java new file mode 100644 index 00000000..3aebf056 --- /dev/null +++ b/src/main/java/net/Indyuce/mmoitems/comp/mythicenchants/MythicEnchantsSupport.java @@ -0,0 +1,23 @@ +package net.Indyuce.mmoitems.comp.mythicenchants; + +import io.lumine.mythicenchants.enchants.MythicEnchant; +import io.lumine.mythicenchants.util.MythicEnchantsHelper; +import io.lumine.xikage.mythicmobs.adapters.AbstractPlayer; +import org.bukkit.enchantments.Enchantment; +import org.bukkit.inventory.ItemStack; + +public class MythicEnchantsSupport { + public MythicEnchantsSupport() {} + + public void reparseWeapon(AbstractPlayer player) { + MythicEnchantsHelper.reparseWeapon(player); + } + + public boolean handleEnchant(ItemStack item, Enchantment enchant, int level) { + if(enchant instanceof MythicEnchant) { + ((MythicEnchant)enchant).applyToItem(item, level); + return true; + } + return false; + } +}