diff --git a/Plugin/src/main/java/com/willfp/ecoenchants/command/commands/CommandEcodebug.java b/Plugin/src/main/java/com/willfp/ecoenchants/command/commands/CommandEcodebug.java index 94879eb7..8b4ebc0a 100644 --- a/Plugin/src/main/java/com/willfp/ecoenchants/command/commands/CommandEcodebug.java +++ b/Plugin/src/main/java/com/willfp/ecoenchants/command/commands/CommandEcodebug.java @@ -5,6 +5,7 @@ import com.willfp.ecoenchants.command.AbstractCommand; import com.willfp.ecoenchants.display.EnchantmentCache; import com.willfp.ecoenchants.enchantments.EcoEnchant; import com.willfp.ecoenchants.enchantments.EcoEnchants; +import com.willfp.ecoenchants.integrations.placeholder.PlaceholderManager; import com.willfp.ecoenchants.util.Logger; import org.bukkit.Bukkit; import org.bukkit.command.CommandSender; @@ -23,22 +24,24 @@ import java.util.stream.Collectors; @SuppressWarnings("unchecked") public final class CommandEcodebug extends AbstractCommand { public CommandEcodebug() { - super("ecodebug", "ecoenchants.ecodebug", true); + super("ecodebug", "ecoenchants.ecodebug", false); } @Override public void onExecute(CommandSender sender, List args) { Logger.info("--------------- BEGIN DEBUG ----------------"); - Player player = (Player) sender; - player.sendMessage("Held Item: " + player.getInventory().getItemInMainHand().toString()); - Logger.info(""); + if(sender instanceof Player) { + Player player = (Player) sender; + player.sendMessage("Held Item: " + player.getInventory().getItemInMainHand().toString()); + Logger.info(""); + + Logger.info("Held Item: " + player.getInventory().getItemInMainHand().toString()); + Logger.info(""); + } Logger.info("Running Version: " + EcoEnchantsPlugin.getInstance().getDescription().getVersion()); Logger.info(""); - Logger.info("Held Item: " + player.getInventory().getItemInMainHand().toString()); - Logger.info(""); - Logger.info("EcoEnchants.getAll(): " + EcoEnchants.getAll().toString()); Logger.info(""); @@ -70,11 +73,10 @@ public final class CommandEcodebug extends AbstractCommand { Logger.info(""); List brokenCache = Arrays.stream(Enchantment.values()).collect(Collectors.toList()); - brokenCache.removeAll(EnchantmentCache.getCache().stream() - .filter(cacheEntry -> cacheEntry.getRawName().equalsIgnoreCase("null") - || cacheEntry.getName().equalsIgnoreCase("null") - || cacheEntry.getStringDescription().equalsIgnoreCase("null ")) - .map(EnchantmentCache.CacheEntry::getEnchantment).collect(Collectors.toList())); + brokenCache.removeIf(enchantment -> !( + EnchantmentCache.getEntry(enchantment).getName().equalsIgnoreCase("null") || + EnchantmentCache.getEntry(enchantment).getRawName().equalsIgnoreCase("null") || + EnchantmentCache.getEntry(enchantment).getStringDescription().equalsIgnoreCase("null"))); Logger.info("Enchantments with broken cache: " + brokenCache.toString()); Logger.info(""); 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 a5919206..7bd573f4 100644 --- a/Plugin/src/main/java/com/willfp/ecoenchants/enchantments/EcoEnchant.java +++ b/Plugin/src/main/java/com/willfp/ecoenchants/enchantments/EcoEnchant.java @@ -68,9 +68,6 @@ public abstract class EcoEnchant extends Enchantment implements Listener, Regist ConfigManager.addEnchantmentConfig(new EnchantmentConfig(this.permissionName, plugin, this.type)); this.config = ConfigManager.getEnchantmentConfig(this.permissionName); - if(!Prerequisite.areMet(prerequisites)) - return; - if(Bukkit.getPluginManager().getPermission("ecoenchants.fromtable." + permissionName) == null) { Permission permission = new Permission( "ecoenchants.fromtable." + permissionName, @@ -81,6 +78,9 @@ public abstract class EcoEnchant extends Enchantment implements Listener, Regist Bukkit.getPluginManager().addPermission(permission); } + if(!Prerequisite.areMet(prerequisites)) + return; + this.update(); this.add(); } 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 9f34a79e..f2842c61 100644 --- a/Plugin/src/main/java/com/willfp/ecoenchants/loader/Loader.java +++ b/Plugin/src/main/java/com/willfp/ecoenchants/loader/Loader.java @@ -55,6 +55,7 @@ import com.willfp.ecoenchants.util.ClassUtils; import com.willfp.ecoenchants.util.Logger; import com.willfp.ecoenchants.util.StringUtils; import com.willfp.ecoenchants.util.UpdateChecker; +import com.willfp.ecoenchants.util.interfaces.Callable; import com.willfp.ecoenchants.util.interfaces.EcoRunnable; import com.willfp.ecoenchants.util.optional.Prerequisite; import org.apache.maven.artifact.versioning.DefaultArtifactVersion; @@ -62,9 +63,11 @@ import org.bstats.bukkit.Metrics; import org.bukkit.Bukkit; import org.bukkit.event.HandlerList; import org.bukkit.generator.BlockPopulator; +import org.bukkit.plugin.Plugin; +import org.checkerframework.checker.units.qual.A; -import java.util.ArrayList; -import java.util.List; +import java.util.*; +import java.util.stream.Collectors; /** * Class containing methods for the loading and unloading of EcoEnchants @@ -171,6 +174,58 @@ public class Loader { Bukkit.getPluginManager().registerEvents(new WatcherTriggers(), EcoEnchantsPlugin.getInstance()); Logger.info(""); + /* + Load integrations + */ + + Logger.info("Loading Integrations..."); + + final HashMap integrations = new HashMap() {{ + // AntiGrief + put("WorldGuard", () -> AntigriefManager.register(new AntigriefWorldGuard())); + put("GriefPrevention", () -> AntigriefManager.register(new AntigriefGriefPrevention())); + put("FactionsUUID", () -> AntigriefManager.register(new AntigriefFactionsUUID())); + put("Towny", () -> AntigriefManager.register(new AntigriefTowny())); + put("Lands", () -> AntigriefManager.register(new AntigriefLands())); + put("Kingdoms", () -> AntigriefManager.register(new AntigriefKingdoms())); + + // AntiCheat + put("AAC", () -> AnticheatManager.register(new AnticheatAAC())); + put("Matrix", () -> AnticheatManager.register(new AnticheatMatrix())); + put("NoCheatPlus", () -> AnticheatManager.register(new AnticheatNCP())); + put("Spartan", () -> AnticheatManager.register(new AnticheatSpartan())); + + // MISC + put("Essentials", () -> EssentialsManager.register(new IntegrationEssentials())); + put("PlaceholderAPI", () -> PlaceholderManager.addIntegration(new PlaceholderIntegrationPAPI())); + put("mcMMO", () -> McmmoManager.registerIntegration(new McmmoIntegrationImpl())); + }}; + + Set enabledPlugins = Arrays.stream(Bukkit.getPluginManager().getPlugins()).map(Plugin::getName).collect(Collectors.toSet()); + + integrations.forEach(((s, callable) -> { + StringBuilder log = new StringBuilder(); + log.append(s).append(": "); + if(enabledPlugins.contains(s)) { + callable.call(); + log.append("&aENABLED"); + } else { + log.append("&9DISABLED"); + } + Logger.info(log.toString()); + })); + + Prerequisite.update(); + + if(ClassUtils.exists("net.wesjd.anvilgui.AnvilGUI")) { + AnvilGUIManager.registerIntegration(new AnvilGUIImpl()); + Logger.info("AnvilGUI: &aENABLED"); + } else { + Logger.info("AnvilGUI: &9DISABLED"); + } + + Logger.info(""); + /* Create enchantment config files (for first time use) */ @@ -349,109 +404,7 @@ public class Loader { Logger.info(""); Logger.info("Updating cache..."); EnchantmentCache.update(); - - Logger.info(""); - Logger.info("Loading Integrations..."); - - if(Bukkit.getPluginManager().isPluginEnabled("WorldGuard")) { - AntigriefManager.register(new AntigriefWorldGuard()); - Logger.info("WorldGuard: &aENABLED"); - } else { - Logger.info("WorldGuard: &9DISABLED"); - } - - if(Bukkit.getPluginManager().isPluginEnabled("GriefPrevention")) { - AntigriefManager.register(new AntigriefGriefPrevention()); - Logger.info("GriefPrevention: &aENABLED"); - } else { - Logger.info("GriefPrevention: &9DISABLED"); - } - - if(Bukkit.getPluginManager().isPluginEnabled("FactionsUUID")) { - AntigriefManager.register(new AntigriefFactionsUUID()); - Logger.info("FactionsUUID: &aENABLED"); - } else { - Logger.info("FactionsUUID: &9DISABLED"); - } - - if(Bukkit.getPluginManager().isPluginEnabled("Towny")) { - AntigriefManager.register(new AntigriefTowny()); - Logger.info("Towny: &aENABLED"); - } else { - Logger.info("Towny: &9DISABLED"); - } - - if(Bukkit.getPluginManager().isPluginEnabled("Lands")) { - AntigriefManager.register(new AntigriefLands()); - Logger.info("Lands: &aENABLED"); - } else { - Logger.info("Lands: &9DISABLED"); - } - - if(Bukkit.getPluginManager().isPluginEnabled("Kingdoms")) { - AntigriefManager.register(new AntigriefKingdoms()); - Logger.info("Kingdoms: &aENABLED"); - } else { - Logger.info("Kingdoms: &9DISABLED"); - } - - if(Bukkit.getPluginManager().isPluginEnabled("Essentials")) { - EssentialsManager.register(new IntegrationEssentials()); - Logger.info("Essentials: &aENABLED"); - EssentialsManager.registerEnchantments(); - } else { - Logger.info("Essentials: &9DISABLED"); - } - - if(Bukkit.getPluginManager().isPluginEnabled("AAC")) { - AnticheatManager.register(new AnticheatAAC()); - Logger.info("AAC: &aENABLED"); - } else { - Logger.info("AAC: &9DISABLED"); - } - - if(Bukkit.getPluginManager().isPluginEnabled("Matrix")) { - AnticheatManager.register(new AnticheatMatrix()); - Logger.info("Matrix: &aENABLED"); - } else { - Logger.info("Matrix: &9DISABLED"); - } - - if(Bukkit.getPluginManager().isPluginEnabled("NoCheatPlus")) { - AnticheatManager.register(new AnticheatNCP()); - Logger.info("NCP: &aENABLED"); - } else { - Logger.info("NCP: &9DISABLED"); - } - - if(Bukkit.getPluginManager().isPluginEnabled("Spartan")) { - AnticheatManager.register(new AnticheatSpartan()); - Logger.info("Spartan: &aENABLED"); - } else { - Logger.info("Spartan: &9DISABLED"); - } - - if(Bukkit.getPluginManager().isPluginEnabled("PlaceholderAPI")) { - PlaceholderManager.addIntegration(new PlaceholderIntegrationPAPI()); - Logger.info("PlaceholderAPI: &aENABLED"); - } else { - Logger.info("PlaceholderAPI: &9DISABLED"); - } - - if(Bukkit.getPluginManager().isPluginEnabled("mcMMO")) { - McmmoManager.registerIntegration(new McmmoIntegrationImpl()); - Logger.info("mcMMO: &aENABLED"); - } else { - Logger.info("mcMMO: &9DISABLED"); - } - - if(ClassUtils.exists("net.wesjd.anvilgui.AnvilGUI")) { - AnvilGUIManager.registerIntegration(new AnvilGUIImpl()); - Logger.info("AnvilGUI: &aENABLED"); - } else { - Logger.info("AnvilGUI: &9DISABLED"); - } - + EssentialsManager.registerEnchantments(); /* Check for paper diff --git a/Plugin/src/main/java/com/willfp/ecoenchants/util/optional/Prerequisite.java b/Plugin/src/main/java/com/willfp/ecoenchants/util/optional/Prerequisite.java index e736a624..fabd8aaa 100644 --- a/Plugin/src/main/java/com/willfp/ecoenchants/util/optional/Prerequisite.java +++ b/Plugin/src/main/java/com/willfp/ecoenchants/util/optional/Prerequisite.java @@ -36,6 +36,10 @@ public enum Prerequisite { } static { + update(); + } + + public static void update() { MinVer1_16.setMet(!Bukkit.getServer().getClass().getPackage().getName().split("\\.")[3].contains("15")); HasPaper.setMet(ClassUtils.exists("com.destroystokyo.paper.event.player.PlayerElytraBoostEvent")); }