diff --git a/pom.xml b/pom.xml index 27ef8ce..f5743b0 100644 --- a/pom.xml +++ b/pom.xml @@ -4,7 +4,7 @@ xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"> UltiTools-API com.ultikits - 6.1.0 + 6.1.1 4.0.0 UltiTools-API This project is the base of the Ultitools plugin development. diff --git a/src/main/java/com/ultikits/ultitools/UltiTools.java b/src/main/java/com/ultikits/ultitools/UltiTools.java index 62eee74..1b7671c 100644 --- a/src/main/java/com/ultikits/ultitools/UltiTools.java +++ b/src/main/java/com/ultikits/ultitools/UltiTools.java @@ -8,14 +8,12 @@ import com.ultikits.ultitools.interfaces.Localized; import com.ultikits.ultitools.interfaces.VersionWrapper; import com.ultikits.ultitools.interfaces.impl.data.mysql.MysqlDataStore; import com.ultikits.ultitools.interfaces.impl.data.sqlite.SQLiteDataStore; -import com.ultikits.ultitools.interfaces.impl.logger.BukkitLogFactory; import com.ultikits.ultitools.listeners.PlayerJoinListener; import com.ultikits.ultitools.manager.*; import com.ultikits.ultitools.utils.HttpDownloadUtils; import com.ultikits.ultitools.utils.Metrics; import com.ultikits.ultitools.utils.PluginInitiationUtils; -import cn.hutool.log.LogFactory; import lombok.Getter; import lombok.Setter; import net.milkbowl.vault.economy.Economy; @@ -73,6 +71,8 @@ public final class UltiTools extends JavaPlugin implements Localized { @Getter @Setter private DataStore dataStore; + @Getter + private URLClassLoader ultiToolsClassLoader; /** * Returns the instance of the UltiTools. @@ -119,7 +119,6 @@ public final class UltiTools extends JavaPlugin implements Localized { @Override public void onLoad() { - LogFactory.setCurrentLogFactory(new BukkitLogFactory()); saveDefaultConfig(); ultiTools = this; // Plugin classloader initialization @@ -139,10 +138,10 @@ public final class UltiTools extends JavaPlugin implements Localized { @Override public void onEnable() { // Load all lib - URLClassLoader urlClassLoader = new URLClassLoader(getLibs(), getClassLoader()); + ultiToolsClassLoader = new URLClassLoader(getLibs(), getClassLoader()); // External bukkit libraries initialization try { - dependenceManagers = new DependenceManagers(this, urlClassLoader); + dependenceManagers = new DependenceManagers(this, ultiToolsClassLoader); } catch (Exception | NoClassDefFoundError error) { needLoadLib = true; } @@ -193,7 +192,7 @@ public final class UltiTools extends JavaPlugin implements Localized { file.mkdirs(); } try { - pluginManager.init(urlClassLoader); + pluginManager.init(ultiToolsClassLoader); } catch (IOException e) { throw new RuntimeException(e); } diff --git a/src/main/java/com/ultikits/ultitools/abstracts/AbstractCommendExecutor.java b/src/main/java/com/ultikits/ultitools/abstracts/AbstractCommendExecutor.java index 2fb0a5e..1270412 100644 --- a/src/main/java/com/ultikits/ultitools/abstracts/AbstractCommendExecutor.java +++ b/src/main/java/com/ultikits/ultitools/abstracts/AbstractCommendExecutor.java @@ -458,7 +458,7 @@ public abstract class AbstractCommendExecutor implements TabExecutor { String[] value = params.get(cmdParam.value()); try { paramList.add(parseType(value, paramType)); - } catch (Exception e) { + } catch (Exception | Error e) { commandSender.sendMessage(ChatColor.RED + e.getMessage()); //noinspection CallToPrintStackTrace e.printStackTrace(); diff --git a/src/main/java/com/ultikits/ultitools/abstracts/UltiToolsPlugin.java b/src/main/java/com/ultikits/ultitools/abstracts/UltiToolsPlugin.java index 2ee07b8..02b8ad2 100644 --- a/src/main/java/com/ultikits/ultitools/abstracts/UltiToolsPlugin.java +++ b/src/main/java/com/ultikits/ultitools/abstracts/UltiToolsPlugin.java @@ -68,9 +68,13 @@ public abstract class UltiToolsPlugin implements IPlugin, Localized, Configurabl *

* UltiToolsPlugin的构造函数。仅用于模块开发。 */ - @SneakyThrows protected UltiToolsPlugin() { - InputStream inputStream = getInputStream(); + InputStream inputStream = null; + try { + inputStream = getInputStream(); + }catch (IOException e){ + getLogger().error(e); + } BufferedReader reader = new BufferedReader(new InputStreamReader(inputStream)); YamlConfiguration pluginConfig = YamlConfiguration.loadConfiguration(reader); version = pluginConfig.getString("version"); @@ -79,8 +83,12 @@ public abstract class UltiToolsPlugin implements IPlugin, Localized, Configurabl loadAfter = pluginConfig.getStringList("loadAfter"); minUltiToolsVersion = pluginConfig.getInt("api-version"); mainClass = pluginConfig.getString("main"); - inputStream.close(); - reader.close(); + try{ + inputStream.close(); + reader.close(); + } catch (IOException e) { + getLogger().error(e); + } resourceFolderPath = UltiTools.getInstance().getDataFolder().getAbsolutePath() + File.separator + "pluginConfig" + File.separator + this.getPluginName(); File file = new File(resourceFolderPath + File.separator + "lang" + File.separator + this.getLanguageCode() + ".json"); @@ -98,7 +106,11 @@ public abstract class UltiToolsPlugin implements IPlugin, Localized, Configurabl language = new Language(file); } saveResources(); - initConfig(); + try{ + initConfig(); + } catch (IOException e) { + getLogger().error(e); + } } /** @@ -229,7 +241,7 @@ public abstract class UltiToolsPlugin implements IPlugin, Localized, Configurabl if (annotation != null && annotation.config()) { for (String packageName : DependencyUtils.getPluginPackages(this)) { UltiTools.getInstance().getConfigManager().registerAll( - this, packageName, this.getClass().getClassLoader() + this, packageName, UltiTools.getInstance().getUltiToolsClassLoader() ); } return; diff --git a/src/main/java/com/ultikits/ultitools/manager/CommandManager.java b/src/main/java/com/ultikits/ultitools/manager/CommandManager.java index ec43faf..1324ef8 100644 --- a/src/main/java/com/ultikits/ultitools/manager/CommandManager.java +++ b/src/main/java/com/ultikits/ultitools/manager/CommandManager.java @@ -110,7 +110,7 @@ public class CommandManager { Set> classes = PackageScanUtils.scanAnnotatedClasses( CmdExecutor.class, packageName, - UltiTools.getInstance().getClass().getClassLoader() + UltiTools.getInstance().getUltiToolsClassLoader() ); for (Class clazz : classes) { try { @@ -233,7 +233,7 @@ public class CommandManager { c.setAccessible(true); command = c.newInstance(name, plugin); - } catch (Exception e) { + } catch (Exception | Error e) { e.printStackTrace(); } @@ -250,7 +250,7 @@ public class CommandManager { commandMap = (CommandMap) f.get(Bukkit.getPluginManager()); } - } catch (Exception e) { + } catch (Exception | Error e) { e.printStackTrace(); } diff --git a/src/main/java/com/ultikits/ultitools/manager/DependenceManagers.java b/src/main/java/com/ultikits/ultitools/manager/DependenceManagers.java index 80afeda..8a3a104 100644 --- a/src/main/java/com/ultikits/ultitools/manager/DependenceManagers.java +++ b/src/main/java/com/ultikits/ultitools/manager/DependenceManagers.java @@ -1,8 +1,12 @@ package com.ultikits.ultitools.manager; import cn.hutool.core.comparator.VersionComparator; +import cn.hutool.log.LogFactory; + import com.ultikits.ultitools.UltiTools; import com.ultikits.ultitools.context.ContextConfig; +import com.ultikits.ultitools.interfaces.impl.logger.BukkitLogFactory; + import lombok.Getter; import mc.obliviate.inventory.InventoryAPI; import net.kyori.adventure.platform.bukkit.BukkitAudiences; @@ -23,6 +27,7 @@ public class DependenceManagers { public DependenceManagers(UltiTools plugin, ClassLoader classLoader) { this.classLoader = classLoader; + LogFactory.setCurrentLogFactory(new BukkitLogFactory()); initAdventure(plugin); initSpringContext(); initInventoryAPI(plugin); diff --git a/src/main/java/com/ultikits/ultitools/manager/PluginManager.java b/src/main/java/com/ultikits/ultitools/manager/PluginManager.java index f178e9e..3ca60f3 100644 --- a/src/main/java/com/ultikits/ultitools/manager/PluginManager.java +++ b/src/main/java/com/ultikits/ultitools/manager/PluginManager.java @@ -88,7 +88,7 @@ public class PluginManager { UltiToolsPlugin plugin; try { plugin = initializePlugin(classLoader, pluginClass); - } catch (Exception e) { + } catch (Exception | Error e) { Bukkit.getLogger().log( Level.WARNING, String.format("[UltiTools-API] Cannot initialize plugin for %s", pluginClass.getName()) @@ -130,7 +130,7 @@ public class PluginManager { plugin = initializePlugin( classLoader, pluginClass, pluginName, version, authors, loadAfter, minUltiToolsVersion, mainClass ); - } catch (Exception e) { + } catch (Exception | Error e) { Bukkit.getLogger().log( Level.WARNING, String.format("[UltiTools-API] Cannot initialize plugin for %s", pluginClass.getName()) @@ -164,7 +164,7 @@ public class PluginManager { pluginContext.refresh(); pluginContext.getAutowireCapableBeanFactory().autowireBean(plugin); } - } catch (Exception e) { + } catch (Exception | Error e) { Bukkit.getLogger().log( Level.WARNING, String.format("[UltiTools-API] Cannot initialize plugin for %s", plugin.getPluginName()) @@ -301,7 +301,7 @@ public class PluginManager { ); } return registerSelf; - } catch (Exception e) { + } catch (Exception | Error e) { Bukkit.getLogger().log(Level.WARNING, e, String::new); Bukkit.getLogger().log(Level.WARNING, String.format("[UltiTools-API] %s load failed!", plugin.getPluginName())); return false; diff --git a/src/main/java/com/ultikits/ultitools/utils/PackageScanUtils.java b/src/main/java/com/ultikits/ultitools/utils/PackageScanUtils.java index b40c417..d04b0cd 100644 --- a/src/main/java/com/ultikits/ultitools/utils/PackageScanUtils.java +++ b/src/main/java/com/ultikits/ultitools/utils/PackageScanUtils.java @@ -29,7 +29,7 @@ public class PackageScanUtils { classes.add(c); } } - } catch (Exception e) { + } catch (Exception | Error e) { Bukkit.getLogger().log(Level.SEVERE, "Failed to scan annotated classes", e); } return classes;