From 577a792c682dbb1748831289e2ed65d4ffeba7f0 Mon Sep 17 00:00:00 2001 From: Ling Bao Date: Tue, 2 Jul 2024 14:04:56 +0000 Subject: [PATCH] =?UTF-8?q?2024/07/03=20=E6=9B=B4=E6=96=B0=20=E7=89=88?= =?UTF-8?q?=E6=9C=AC6.1.1=201.=20=E4=BF=AE=E5=A4=8D=E4=BA=866.1.0=E6=8F=92?= =?UTF-8?q?=E4=BB=B6=E6=97=A0=E6=B3=95=E4=B8=8B=E8=BD=BD=E4=BE=9D=E8=B5=96?= =?UTF-8?q?=E7=9A=84=E9=97=AE=E9=A2=98=202.=20=E4=BF=AE=E5=A4=8D=E4=BA=86?= =?UTF-8?q?=E9=83=A8=E5=88=86=E6=8A=A5=E9=94=99=E4=B8=8D=E5=8F=AF=E8=A7=81?= =?UTF-8?q?=E7=9A=84=E9=97=AE=E9=A2=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- pom.xml | 2 +- .../com/ultikits/ultitools/UltiTools.java | 11 ++++----- .../abstracts/AbstractCommendExecutor.java | 2 +- .../ultitools/abstracts/UltiToolsPlugin.java | 24 ++++++++++++++----- .../ultitools/manager/CommandManager.java | 6 ++--- .../ultitools/manager/DependenceManagers.java | 5 ++++ .../ultitools/manager/PluginManager.java | 8 +++---- .../ultitools/utils/PackageScanUtils.java | 2 +- 8 files changed, 38 insertions(+), 22 deletions(-) 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;