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: