Added Support for Essentials
This commit is contained in:
@@ -31,9 +31,9 @@ public class Main extends JavaPlugin {
|
||||
public static String newVersion;
|
||||
|
||||
/**
|
||||
* Has AdvancedEnchantments?
|
||||
* Has Essentials?
|
||||
*/
|
||||
public static boolean hasAE;
|
||||
public static boolean hasEssentials;
|
||||
|
||||
/**
|
||||
* ProtocolLib
|
||||
|
||||
@@ -1,12 +1,10 @@
|
||||
package com.willfp.ecoenchants.enchantments;
|
||||
|
||||
import com.earth2me.essentials.Enchantments;
|
||||
import com.earth2me.essentials.Essentials;
|
||||
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 com.willfp.ecoenchants.util.EssentialsUtils;
|
||||
import org.apache.commons.lang.WordUtils;
|
||||
import org.apache.commons.lang.reflect.FieldUtils;
|
||||
import org.bukkit.Material;
|
||||
@@ -104,12 +102,7 @@ public abstract class EcoEnchant extends Enchantment implements Listener {
|
||||
Enchantment.registerEnchantment(this);
|
||||
|
||||
if(Main.hasEssentials) {
|
||||
Map<String, Enchantment> essentialsMap = EssentialsUtils.getEnchantmentsMap();
|
||||
if (essentialsMap != null) {
|
||||
String key = this.getKey().getKey();
|
||||
essentialsMap.remove(key);
|
||||
essentialsMap.put(key, this);
|
||||
}
|
||||
((Map<String, Enchantment>) FieldUtils.readDeclaredStaticField(Enchantments.class, "ENCHANTMENTS", true)).put(this.getKey().getKey(), this);
|
||||
}
|
||||
} catch (NoSuchFieldException | IllegalAccessException ignored) {}
|
||||
}
|
||||
|
||||
@@ -143,9 +143,9 @@ public class Loader {
|
||||
Bukkit.getLogger().info("Lands: §9DISABLED");
|
||||
}
|
||||
|
||||
Main.hasAE = Bukkit.getPluginManager().isPluginEnabled("AdvancedEnchantments");
|
||||
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...");
|
||||
|
||||
@@ -1,37 +0,0 @@
|
||||
package com.willfp.ecoenchants.util;
|
||||
|
||||
import com.earth2me.essentials.Enchantments;
|
||||
import org.apache.commons.lang.reflect.FieldUtils;
|
||||
import org.bukkit.Bukkit;
|
||||
import org.bukkit.enchantments.Enchantment;
|
||||
import org.jetbrains.annotations.Nullable;
|
||||
|
||||
import java.util.Map;
|
||||
|
||||
public class EssentialsUtils {
|
||||
private static Map<String, Enchantment> essentialsEnchantmentsMap;
|
||||
private static boolean hasCheckedEnchantmentsMap;
|
||||
|
||||
@Nullable
|
||||
public static Map<String, Enchantment> getEnchantmentsMap() {
|
||||
if (hasCheckedEnchantmentsMap) return essentialsEnchantmentsMap;
|
||||
|
||||
if (Bukkit.getPluginManager().isPluginEnabled("Essentials")) {
|
||||
try {
|
||||
Class<?> essEnchantmentsClass = Enchantments.class;
|
||||
|
||||
Object enchantments = FieldUtils.readDeclaredStaticField(essEnchantmentsClass, "ENCHANTMENTS", true);
|
||||
if (enchantments instanceof Map) {
|
||||
hasCheckedEnchantmentsMap = true;
|
||||
//noinspection unchecked - we know the type of it
|
||||
return essentialsEnchantmentsMap = (Map<String, Enchantment>) enchantments;
|
||||
}
|
||||
} catch (IllegalAccessException e) {
|
||||
hasCheckedEnchantmentsMap = true;
|
||||
return null;
|
||||
}
|
||||
}
|
||||
hasCheckedEnchantmentsMap = true;
|
||||
return null;
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user