From e785c9350c604de373ed6cc52eae14aab30d860b Mon Sep 17 00:00:00 2001 From: Auxilor Date: Fri, 28 Aug 2020 21:52:09 +0100 Subject: [PATCH] Added essentials integration --- Plugin/plugin.iml | 5 +++++ Plugin/pom.xml | 6 ++++++ Plugin/src/main/java/com/willfp/ecoenchants/Main.java | 5 +++++ .../willfp/ecoenchants/enchantments/EcoEnchant.java | 10 ++++++++++ .../java/com/willfp/ecoenchants/loader/Loader.java | 4 ++++ Plugin/src/main/resources/plugin.yml | 1 + 6 files changed, 31 insertions(+) diff --git a/Plugin/plugin.iml b/Plugin/plugin.iml index a5db7883..3871ed48 100644 --- a/Plugin/plugin.iml +++ b/Plugin/plugin.iml @@ -116,5 +116,10 @@ + + + + + \ No newline at end of file diff --git a/Plugin/pom.xml b/Plugin/pom.xml index 82c53cc0..947fab65 100644 --- a/Plugin/pom.xml +++ b/Plugin/pom.xml @@ -226,5 +226,11 @@ 4.5.0 provided + + net.ess3 + EssentialsX + 2.18.1 + provided + diff --git a/Plugin/src/main/java/com/willfp/ecoenchants/Main.java b/Plugin/src/main/java/com/willfp/ecoenchants/Main.java index 3504bc5a..cf35e302 100644 --- a/Plugin/src/main/java/com/willfp/ecoenchants/Main.java +++ b/Plugin/src/main/java/com/willfp/ecoenchants/Main.java @@ -35,6 +35,11 @@ public class Main extends JavaPlugin { */ public static boolean hasAE; + /** + * Has Essentials? + */ + public static boolean hasEssentials; + /** * ProtocolLib */ diff --git a/Plugin/src/main/java/com/willfp/ecoenchants/enchantments/EcoEnchant.java b/Plugin/src/main/java/com/willfp/ecoenchants/enchantments/EcoEnchant.java index d6119207..2e94ff0a 100644 --- a/Plugin/src/main/java/com/willfp/ecoenchants/enchantments/EcoEnchant.java +++ b/Plugin/src/main/java/com/willfp/ecoenchants/enchantments/EcoEnchant.java @@ -1,9 +1,12 @@ package com.willfp.ecoenchants.enchantments; +import com.earth2me.essentials.Enchantments; +import com.willfp.ecoenchants.Main; import com.willfp.ecoenchants.config.ConfigManager; import com.willfp.ecoenchants.config.configs.EnchantmentConfig; import com.willfp.ecoenchants.nms.Target; import org.apache.commons.lang.WordUtils; +import org.apache.commons.lang.reflect.FieldUtils; import org.bukkit.Material; import org.bukkit.NamespacedKey; import org.bukkit.enchantments.Enchantment; @@ -14,6 +17,7 @@ import org.bukkit.inventory.ItemStack; import java.lang.reflect.Field; import java.util.*; +@SuppressWarnings("unchecked") public abstract class EcoEnchant extends Enchantment implements Listener { private String name; private String description; @@ -96,6 +100,12 @@ public abstract class EcoEnchant extends Enchantment implements Listener { f.setAccessible(false); Enchantment.registerEnchantment(this); + + if(Main.hasEssentials) { + Map essentialsMap = (Map) FieldUtils.readDeclaredStaticField(Enchantments.class, "ENCHANTMENTS", true); + essentialsMap.remove(this.getName()); + essentialsMap.put(this.getName(), this); + } } catch (NoSuchFieldException | IllegalAccessException ignored) {} } diff --git a/Plugin/src/main/java/com/willfp/ecoenchants/loader/Loader.java b/Plugin/src/main/java/com/willfp/ecoenchants/loader/Loader.java index 6507ec8a..a534dcd6 100644 --- a/Plugin/src/main/java/com/willfp/ecoenchants/loader/Loader.java +++ b/Plugin/src/main/java/com/willfp/ecoenchants/loader/Loader.java @@ -147,6 +147,10 @@ public class Loader { if(Main.hasAE) Bukkit.getLogger().info("AdvancedEnchantments: §aENABLED"); else Bukkit.getLogger().info("AdvancedEnchantments: §9DISABLED"); + Main.hasEssentials = Bukkit.getPluginManager().isPluginEnabled("Essentials"); + if(Main.hasEssentials) Bukkit.getLogger().info("Essentials: §aENABLED"); + else Bukkit.getLogger().info("Essentials: §9DISABLED"); + Bukkit.getLogger().info(""); Bukkit.getLogger().info("Loading Anticheat Integrations..."); diff --git a/Plugin/src/main/resources/plugin.yml b/Plugin/src/main/resources/plugin.yml index 24f4ce60..cd46b21f 100644 --- a/Plugin/src/main/resources/plugin.yml +++ b/Plugin/src/main/resources/plugin.yml @@ -18,6 +18,7 @@ softdepend: - AAC - Matrix - Spartan + - Essentials commands: ecoreload: