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;