From b2ea5cbef850a7063268579e0c7e43ca2cc14833 Mon Sep 17 00:00:00 2001 From: HaHaWTH Date: Thu, 23 May 2024 17:55:42 +0800 Subject: [PATCH] Dynamically download H2 --- pom.xml | 22 +++++++++++-------- src/main/java/fr/xephi/authme/AuthMe.java | 7 ++++++ .../initialization/DataSourceProvider.java | 11 +++++++++- 3 files changed, 30 insertions(+), 10 deletions(-) diff --git a/pom.xml b/pom.xml index 4966496b..2d73d759 100644 --- a/pom.xml +++ b/pom.xml @@ -279,10 +279,6 @@ - - org.h2 - fr.xephi.authme.libs.org.h2 - org.apache.http fr.xephi.authme.libs.org.apache.http @@ -341,10 +337,6 @@ com.google.gson fr.xephi.authme.libs.com.google.gson - - org.h2 - fr.xephi.authme.libs.org.h2 - org.apache.http fr.xephi.authme.libs.org.apache.http @@ -467,6 +459,10 @@ org.apache.commons.validator fr.xephi.authme.libs.org.apache.commons.validator + + com.alessiodp.libby + fr.xephi.authme.libs.com.alessiodp.libby + @@ -727,6 +723,14 @@ provided + + + com.alessiodp.libby + libby-bukkit + 2.0.0-SNAPSHOT + compile + + com.zaxxer @@ -1149,7 +1153,7 @@ com.h2database h2 2.2.224 - compile + provided diff --git a/src/main/java/fr/xephi/authme/AuthMe.java b/src/main/java/fr/xephi/authme/AuthMe.java index 7921116c..74da5c30 100644 --- a/src/main/java/fr/xephi/authme/AuthMe.java +++ b/src/main/java/fr/xephi/authme/AuthMe.java @@ -2,6 +2,7 @@ package fr.xephi.authme; import ch.jalu.injector.Injector; import ch.jalu.injector.InjectorBuilder; +import com.alessiodp.libby.BukkitLibraryManager; import com.github.Anon8281.universalScheduler.UniversalScheduler; import com.github.Anon8281.universalScheduler.scheduling.schedulers.TaskScheduler; import fr.xephi.authme.api.v3.AuthMeApi; @@ -143,6 +144,11 @@ public class AuthMe extends JavaPlugin { return scheduler; } + /** + * The library manager + */ + public static BukkitLibraryManager libraryManager; + /** * Method called when the server enables the plugin. */ @@ -151,6 +157,7 @@ public class AuthMe extends JavaPlugin { // Load the plugin version data from the plugin description file loadPluginInfo(getDescription().getVersion()); scheduler = UniversalScheduler.getScheduler(this); + libraryManager = new BukkitLibraryManager(this); // Set the Logger instance and log file path ConsoleLogger.initialize(getLogger(), new File(getDataFolder(), LOG_FILENAME)); diff --git a/src/main/java/fr/xephi/authme/initialization/DataSourceProvider.java b/src/main/java/fr/xephi/authme/initialization/DataSourceProvider.java index 07211ef2..41e48f3f 100644 --- a/src/main/java/fr/xephi/authme/initialization/DataSourceProvider.java +++ b/src/main/java/fr/xephi/authme/initialization/DataSourceProvider.java @@ -1,5 +1,6 @@ package fr.xephi.authme.initialization; +import com.alessiodp.libby.Library; import fr.xephi.authme.ConsoleLogger; import fr.xephi.authme.data.auth.PlayerCache; import fr.xephi.authme.datasource.CacheDataSource; @@ -21,6 +22,8 @@ import javax.inject.Provider; import java.io.File; import java.sql.SQLException; +import static fr.xephi.authme.AuthMe.libraryManager; + /** * Creates the AuthMe data source. */ @@ -78,8 +81,14 @@ public class DataSourceProvider implements Provider { dataSource = new SQLite(settings, dataFolder); break; case H2: + Library h2 = Library.builder() + .groupId("com.h2database") + .artifactId("h2") + .version("2.2.224") + .build(); + libraryManager.addMavenCentral(); + libraryManager.loadLibrary(h2); dataSource = new H2(settings, dataFolder); - logger.warning("You are using H2 database, which is still in development!\nMake sure to backup and report any issues you encounter on GitHub!"); break; default: throw new UnsupportedOperationException("Unknown data source type '" + dataSourceType + "'");