diff --git a/api/pom.xml b/api/pom.xml index 0150633..857a429 100644 --- a/api/pom.xml +++ b/api/pom.xml @@ -5,7 +5,7 @@ minesql-parent cc.carm.plugin - 1.3.1 + 1.4.0 4.0.0 diff --git a/core/pom.xml b/core/pom.xml index 73a4010..09de8f0 100644 --- a/core/pom.xml +++ b/core/pom.xml @@ -5,7 +5,7 @@ minesql-parent cc.carm.plugin - 1.3.1 + 1.4.0 4.0.0 @@ -68,10 +68,17 @@ provided + + net.byteflux + libby-core + ${deps.libby.version} + compile + + com.github.chris2018998 beecp - compile + provided @@ -101,25 +108,6 @@ compile - - org.mariadb.jdbc - mariadb-java-client - compile - - - - mysql - mysql-connector-java - compile - - - - - com.h2database - h2 - compile - - diff --git a/core/src/main/java/cc/carm/plugin/minesql/MineSQLCore.java b/core/src/main/java/cc/carm/plugin/minesql/MineSQLCore.java index e0ec3de..a1be5c4 100644 --- a/core/src/main/java/cc/carm/plugin/minesql/MineSQLCore.java +++ b/core/src/main/java/cc/carm/plugin/minesql/MineSQLCore.java @@ -14,12 +14,14 @@ import cc.carm.plugin.minesql.command.MineSQLCommand; import cc.carm.plugin.minesql.command.MineSQLHelpFormatter; import cc.carm.plugin.minesql.conf.PluginConfiguration; import cc.carm.plugin.minesql.conf.SQLSourceGroup; +import cc.carm.plugin.minesql.lib.PluginLibraries; import cc.carm.plugin.minesql.util.DBPropertiesUtil; import cn.beecp.BeeDataSource; import cn.beecp.BeeDataSourceConfig; import co.aikar.commands.CommandManager; import co.aikar.commands.InvalidCommandArgument; import co.aikar.commands.Locales; +import net.byteflux.libby.Library; import org.jetbrains.annotations.NotNull; import org.jetbrains.annotations.Nullable; @@ -48,6 +50,17 @@ public class MineSQLCore implements IMineSQL { instance = this; this.platform = platform; + getLogger().info("加载数据库依赖文件..."); + getPlatform().getLibraryManager().addMavenLocal(); + getPlatform().getLibraryManager().addMavenCentral(); + getPlatform().getLibraryManager().addSonatype(); + + for (PluginLibraries value : PluginLibraries.values()) { + Library lib = value.getLibrary(); + getLogger().info(" 加载 " + lib.getArtifactId() + " (" + lib.getVersion() + ") ..."); + getPlatform().getLibraryManager().loadLibrary(value.getLibrary()); + } + getLogger().info("加载配置文件..."); this.configProvider = EasyConfiguration.from(new File(platform.getPluginFolder(), "config.yml")); this.config = new PluginConfiguration(); diff --git a/core/src/main/java/cc/carm/plugin/minesql/MineSQLPlatform.java b/core/src/main/java/cc/carm/plugin/minesql/MineSQLPlatform.java index 083bd75..7570e7a 100644 --- a/core/src/main/java/cc/carm/plugin/minesql/MineSQLPlatform.java +++ b/core/src/main/java/cc/carm/plugin/minesql/MineSQLPlatform.java @@ -1,6 +1,7 @@ package cc.carm.plugin.minesql; import co.aikar.commands.CommandManager; +import net.byteflux.libby.LibraryManager; import org.jetbrains.annotations.NotNull; import org.jetbrains.annotations.Nullable; @@ -15,4 +16,6 @@ public interface MineSQLPlatform { @Nullable CommandManager getCommandManager(); + @NotNull LibraryManager getLibraryManager(); + } diff --git a/core/src/main/java/cc/carm/plugin/minesql/command/MineSQLCommand.java b/core/src/main/java/cc/carm/plugin/minesql/command/MineSQLCommand.java index 5f4c7df..d7cfe80 100644 --- a/core/src/main/java/cc/carm/plugin/minesql/command/MineSQLCommand.java +++ b/core/src/main/java/cc/carm/plugin/minesql/command/MineSQLCommand.java @@ -3,6 +3,7 @@ package cc.carm.plugin.minesql.command; import cc.carm.lib.easysql.api.SQLManager; import cc.carm.lib.easysql.api.SQLQuery; import cc.carm.plugin.minesql.MineSQLCore; +import cc.carm.plugin.minesql.lib.PluginLibraries; import cc.carm.plugin.minesql.util.VersionReader; import co.aikar.commands.BaseCommand; import co.aikar.commands.CommandHelp; @@ -42,7 +43,7 @@ public class MineSQLCommand extends BaseCommand { issuer.sendMessage("§c只有后台执行才能使用此命令。"); return; } - VersionReader reader = new VersionReader(); + VersionReader reader = PluginLibraries.READER; String pluginVersion = reader.get("plugin", null); if (pluginVersion == null) { issuer.sendMessage("§c无法获取当前版本信息,请保证使用原生版本以避免安全问题。"); @@ -50,9 +51,9 @@ public class MineSQLCommand extends BaseCommand { } issuer.sendMessage("§r当前插件版本为 §b" + pluginVersion + "§r。 §7(基于 EasySQL &3" + reader.get("api") + "&7)"); issuer.sendMessage("§8 - &f连接池依赖 BeeCP §9" + reader.get("beecp")); - issuer.sendMessage("§8 - &f数据库驱动 MySQL §9" + reader.get("mysql-driver")); - issuer.sendMessage("§8 - &f数据库驱动 MariaDB §9" + reader.get("mariadb-driver")); - issuer.sendMessage("§8 - &f数据库驱动 h2-database §9" + reader.get("h2-driver")); + issuer.sendMessage("§8 - &f数据库驱动 MySQL §9" + PluginLibraries.MYSQL_DRIVER.getVersion()); + issuer.sendMessage("§8 - &f数据库驱动 MariaDB §9" + PluginLibraries.MARIADB_DRIVER.getVersion()); + issuer.sendMessage("§8 - &f数据库驱动 h2-database §9" + PluginLibraries.H2_DRIVER.getVersion()); issuer.sendMessage("§r正在检查插件更新,请稍候..."); core.checkUpdate(pluginVersion); diff --git a/core/src/main/java/cc/carm/plugin/minesql/lib/PluginLibraries.java b/core/src/main/java/cc/carm/plugin/minesql/lib/PluginLibraries.java new file mode 100644 index 0000000..7811d3d --- /dev/null +++ b/core/src/main/java/cc/carm/plugin/minesql/lib/PluginLibraries.java @@ -0,0 +1,36 @@ +package cc.carm.plugin.minesql.lib; + +import cc.carm.plugin.minesql.util.VersionReader; +import net.byteflux.libby.Library; +import org.jetbrains.annotations.NotNull; + +public enum PluginLibraries { + + BEECP("com.github.chris2018998", "beecp"), + H2_DRIVER("com.h2database", "h2"), + MYSQL_DRIVER("com.mysql", "mysql-connector-j"), + MARIADB_DRIVER("org.mariadb.jdbc", "mariadb-java-client"); + + public static final VersionReader READER = new VersionReader(); + + private final @NotNull String groupID; + private final @NotNull String artifactID; + + PluginLibraries(@NotNull String groupID, @NotNull String artifactID) { + this.groupID = groupID; + this.artifactID = artifactID; + } + + public @NotNull Library getLibrary() { + return Library.builder().id(name()) + .groupId(this.groupID).artifactId(this.artifactID) + .version(getVersion()) + .build(); + } + + public @NotNull String getVersion() { + return READER.get(name().toLowerCase().replace('_', '-')); + } + + +} diff --git a/platforms/bukkit/pom.xml b/platforms/bukkit/pom.xml index 7309188..0e9ae30 100644 --- a/platforms/bukkit/pom.xml +++ b/platforms/bukkit/pom.xml @@ -5,7 +5,7 @@ minesql-parent cc.carm.plugin - 1.3.1 + 1.4.0 ../../pom.xml 4.0.0 @@ -79,17 +79,24 @@ provided + + net.byteflux + libby-bukkit + ${deps.libby.version} + compile + + org.bstats bstats-bukkit - 3.0.0 + ${deps.bstats.version} compile co.aikar acf-paper - 0.5.1-SNAPSHOT + ${deps.acf.version} compile diff --git a/platforms/bukkit/src/main/java/cc/carm/plugin/minesql/MineSQLBukkit.java b/platforms/bukkit/src/main/java/cc/carm/plugin/minesql/MineSQLBukkit.java index d3aaa75..d27fad6 100644 --- a/platforms/bukkit/src/main/java/cc/carm/plugin/minesql/MineSQLBukkit.java +++ b/platforms/bukkit/src/main/java/cc/carm/plugin/minesql/MineSQLBukkit.java @@ -4,10 +4,11 @@ import cc.carm.lib.easyplugin.EasyPlugin; import cc.carm.plugin.minesql.conf.PluginConfiguration; import co.aikar.commands.CommandManager; import co.aikar.commands.PaperCommandManager; +import net.byteflux.libby.BukkitLibraryManager; +import net.byteflux.libby.LibraryManager; import org.bstats.bukkit.Metrics; import org.bstats.charts.SimplePie; import org.jetbrains.annotations.NotNull; -import org.jetbrains.annotations.Nullable; import java.io.File; @@ -15,6 +16,8 @@ public class MineSQLBukkit extends EasyPlugin implements MineSQLPlatform { protected static MineSQLBukkit instance; + protected BukkitLibraryManager libraryManager; + protected MineSQLCore core; protected PaperCommandManager commandManager; @@ -22,6 +25,9 @@ public class MineSQLBukkit extends EasyPlugin implements MineSQLPlatform { protected void load() { MineSQLBukkit.instance = this; + log("加载依赖管理器..."); + this.libraryManager = new BukkitLibraryManager(this); + log("加载基础核心..."); this.core = new MineSQLCore(this); } @@ -75,10 +81,15 @@ public class MineSQLBukkit extends EasyPlugin implements MineSQLPlatform { return this.core.getConfig(); } - public @Nullable CommandManager getCommandManager() { + public @NotNull CommandManager getCommandManager() { return commandManager; } + @Override + public @NotNull LibraryManager getLibraryManager() { + return this.libraryManager; + } + @Override public @NotNull File getPluginFolder() { return getDataFolder(); diff --git a/platforms/bungee/pom.xml b/platforms/bungee/pom.xml index 25a0fc7..d7678b4 100644 --- a/platforms/bungee/pom.xml +++ b/platforms/bungee/pom.xml @@ -5,7 +5,7 @@ minesql-parent cc.carm.plugin - 1.3.1 + 1.4.0 ../../pom.xml 4.0.0 @@ -90,17 +90,24 @@ provided + + net.byteflux + libby-bungee + ${deps.libby.version} + compile + + org.bstats bstats-bungeecord - 3.0.0 + ${deps.bstats.version} compile co.aikar acf-bungee - 0.5.1-SNAPSHOT + ${deps.acf.version} compile diff --git a/platforms/bungee/src/main/java/cc/carm/plugin/minesql/MineSQLBungee.java b/platforms/bungee/src/main/java/cc/carm/plugin/minesql/MineSQLBungee.java index bccfb9d..aaf5a97 100644 --- a/platforms/bungee/src/main/java/cc/carm/plugin/minesql/MineSQLBungee.java +++ b/platforms/bungee/src/main/java/cc/carm/plugin/minesql/MineSQLBungee.java @@ -5,12 +5,13 @@ import cc.carm.lib.easyplugin.utils.JarResourceUtils; import cc.carm.plugin.minesql.conf.PluginConfiguration; import co.aikar.commands.BungeeCommandManager; import co.aikar.commands.CommandManager; +import net.byteflux.libby.BungeeLibraryManager; +import net.byteflux.libby.LibraryManager; import net.md_5.bungee.api.ProxyServer; import net.md_5.bungee.api.plugin.Plugin; import org.bstats.bungeecord.Metrics; import org.bstats.charts.SimplePie; import org.jetbrains.annotations.NotNull; -import org.jetbrains.annotations.Nullable; import java.io.File; import java.util.Arrays; @@ -21,6 +22,8 @@ public class MineSQLBungee extends Plugin implements MineSQLPlatform { protected static MineSQLBungee instance; + protected BungeeLibraryManager libraryManager; + protected MineSQLCore core; protected BungeeCommandManager commandManager; @@ -28,6 +31,9 @@ public class MineSQLBungee extends Plugin implements MineSQLPlatform { public void onLoad() { MineSQLBungee.instance = this; + getLogger().info("加载依赖管理器..."); + this.libraryManager = new BungeeLibraryManager(this); + getLogger().info("加载基础核心..."); this.core = new MineSQLCore(this); } @@ -89,10 +95,15 @@ public class MineSQLBungee extends Plugin implements MineSQLPlatform { } @Override - public @Nullable CommandManager getCommandManager() { + public @NotNull CommandManager getCommandManager() { return this.commandManager; } + @Override + public @NotNull LibraryManager getLibraryManager() { + return this.libraryManager; + } + @SuppressWarnings("deprecation") public void outputInfo() { Optional.ofNullable(JarResourceUtils.readResource(this.getResourceAsStream("PLUGIN_INFO"))) diff --git a/platforms/sponge8/pom.xml b/platforms/sponge8/pom.xml index 9e8ee0d..81b60a9 100644 --- a/platforms/sponge8/pom.xml +++ b/platforms/sponge8/pom.xml @@ -5,7 +5,7 @@ minesql-parent cc.carm.plugin - 1.3.1 + 1.4.0 ../../pom.xml 4.0.0 @@ -84,18 +84,24 @@ + + net.byteflux + libby-sponge + ${deps.libby.version} + compile + + org.bstats bstats-sponge - 3.0.0 - true + ${deps.bstats.version} compile co.aikar acf-sponge - 0.5.1-SNAPSHOT + ${deps.acf.version} compile diff --git a/platforms/sponge8/src/main/java/cc/carm/plugin/minesql/MineSQLSponge.java b/platforms/sponge8/src/main/java/cc/carm/plugin/minesql/MineSQLSponge.java index ed55515..f0625e3 100644 --- a/platforms/sponge8/src/main/java/cc/carm/plugin/minesql/MineSQLSponge.java +++ b/platforms/sponge8/src/main/java/cc/carm/plugin/minesql/MineSQLSponge.java @@ -5,6 +5,8 @@ import cc.carm.lib.easyplugin.utils.JarResourceUtils; import cc.carm.plugin.minesql.conf.PluginConfiguration; import co.aikar.commands.CommandManager; import com.google.inject.Inject; +import net.byteflux.libby.LibraryManager; +import net.byteflux.libby.SpongeLibraryManager; import net.kyori.adventure.text.Component; import org.bstats.charts.SimplePie; import org.bstats.sponge.Metrics; @@ -41,14 +43,17 @@ public class MineSQLSponge implements MineSQLPlatform { private final PluginContainer pluginContainer; private final Metrics.Factory metricsFactory; + protected final SpongeLibraryManager libraryManager; protected final MineSQLCore core; // protected SpongeCommandManager commandManager; @Inject public MineSQLSponge(Metrics.Factory factory, - PluginContainer pluginContainer) { + PluginContainer pluginContainer, + SpongeLibraryManager libraryManager) { this.pluginContainer = pluginContainer; this.metricsFactory = factory; + this.libraryManager = libraryManager; getLogger().info("加载基础核心..."); this.core = new MineSQLCore(this); @@ -110,6 +115,11 @@ public class MineSQLSponge implements MineSQLPlatform { return null; } + @Override + public @NotNull LibraryManager getLibraryManager() { + return this.libraryManager; + } + public String getVersion() { return pluginContainer.metadata().version().toString(); } diff --git a/platforms/velocity/pom.xml b/platforms/velocity/pom.xml index d6b7e9f..b2a407d 100644 --- a/platforms/velocity/pom.xml +++ b/platforms/velocity/pom.xml @@ -5,7 +5,7 @@ minesql-parent cc.carm.plugin - 1.3.1 + 1.4.0 ../../pom.xml 4.0.0 @@ -82,16 +82,25 @@ compile + + net.byteflux + libby-velocity + ${deps.libby.version} + compile + + org.bstats bstats-velocity - 3.0.0 + ${deps.bstats.version} + compile co.aikar acf-velocity - 0.5.1-SNAPSHOT + ${deps.acf.version} + compile diff --git a/platforms/velocity/src/main/java/cc/carm/plugin/minesql/MineSQLVelocity.java b/platforms/velocity/src/main/java/cc/carm/plugin/minesql/MineSQLVelocity.java index 4fdaa80..63564b8 100644 --- a/platforms/velocity/src/main/java/cc/carm/plugin/minesql/MineSQLVelocity.java +++ b/platforms/velocity/src/main/java/cc/carm/plugin/minesql/MineSQLVelocity.java @@ -16,11 +16,13 @@ import com.velocitypowered.api.plugin.PluginContainer; import com.velocitypowered.api.plugin.PluginDescription; import com.velocitypowered.api.plugin.annotation.DataDirectory; import com.velocitypowered.api.proxy.ProxyServer; +import net.byteflux.libby.LibraryManager; +import net.byteflux.libby.VelocityLibraryManager; import net.kyori.adventure.text.Component; import org.bstats.charts.SimplePie; import org.bstats.velocity.Metrics; import org.jetbrains.annotations.NotNull; -import org.jetbrains.annotations.Nullable; +import org.slf4j.LoggerFactory; import java.io.File; import java.nio.file.Path; @@ -29,7 +31,7 @@ import java.util.Optional; import java.util.logging.Logger; -@Plugin(id = "minesql", name = "MineSQL (EasySQL-Plugin)", version = "1.3.1", +@Plugin(id = "minesql", name = "MineSQL (EasySQL-Plugin)", version = "1.3.2", description = "EasySQL Plugin For Velocity", url = "https://github.com/CarmJos/MineSQL", authors = {"CarmJos", "GhostChu"} @@ -41,6 +43,7 @@ public class MineSQLVelocity implements MineSQLPlatform { private final File dataFolder; private final Metrics.Factory metricsFactory; + protected VelocityLibraryManager libraryManager; protected MineSQLCore core; protected VelocityCommandManager commandManager; @@ -53,14 +56,19 @@ public class MineSQLVelocity implements MineSQLPlatform { this.logger = logger; this.dataFolder = dataDirectory.toFile(); this.metricsFactory = metricsFactory; - - getLogger().info("加载基础核心..."); - this.core = new MineSQLCore(this); + this.libraryManager = new VelocityLibraryManager<>( + LoggerFactory.getLogger("minesql"), dataDirectory, + server.getPluginManager(), this + ); } @Subscribe(order = PostOrder.FIRST) public void onInitialize(ProxyInitializeEvent event) { outputInfo(); + + getLogger().info("加载基础核心..."); + this.core = new MineSQLCore(this); + getLogger().info("初始化指令管理器..."); this.commandManager = new VelocityCommandManager(server, this); @@ -116,10 +124,15 @@ public class MineSQLVelocity implements MineSQLPlatform { @Override - public @Nullable CommandManager getCommandManager() { + public @NotNull CommandManager getCommandManager() { return commandManager; } + @Override + public @NotNull LibraryManager getLibraryManager() { + return this.libraryManager; + } + public @NotNull PluginConfiguration getConfiguration() { return this.core.getConfig(); } diff --git a/plugin/pom.xml b/plugin/pom.xml index 36b6a13..1ccbec8 100644 --- a/plugin/pom.xml +++ b/plugin/pom.xml @@ -5,7 +5,7 @@ minesql-parent cc.carm.plugin - 1.3.1 + 1.4.0 4.0.0 @@ -80,86 +80,45 @@ org.bstats - cc.carm.plugin.minesql.lib.bstats + ${code.package}.lib.bstats org.json - cc.carm.plugin.minesql.lib.json + ${code.package}.lib.json cc.carm.lib.easyplugin - cc.carm.plugin.minesql.lib.easyplugin + ${code.package}.lib.easyplugin cc.carm.lib.githubreleases4j - cc.carm.plugin.minesql.lib.githubreleases4j + ${code.package}.lib.githubreleases4j cc.carm.lib.configuration - cc.carm.plugin.minesql.lib.configuration + ${code.package}.lib.configuration org.bspfsystems.yamlconfiguration - cc.carm.plugin.minesql.lib.configuration.yaml - + ${code.package}.lib.configuration.yaml org.yaml.snakeyaml - cc.carm.plugin.minesql.lib.yaml + ${code.package}.lib.yaml co.aikar.commands - cc.carm.plugin.minesql.lib.acf + ${code.package}.lib.acf co.aikar.locales - cc.carm.plugin.minesql.lib.locales - - - cn.beecp - cc.carm.plugin.minesql.lib.beecp + ${code.package}.lib.locales - org.h2 - cc.carm.plugin.minesql.driver.h2 - - - org.mariadb - cc.carm.plugin.minesql.driver.mariadb - - - com.mysql - cc.carm.plugin.minesql.driver.mysql - - - - com.sun.jna - cc.carm.plugin.minesql.lib.jna - - - com.google.protobuf - cc.carm.plugin.minesql.lib.google.protobuf - - - - com.google.errorprone - cc.carm.plugin.minesql.lib.google.errorprone - - - - com.github - cc.carm.plugin.minesql.lib.github - - - org.checkerframework - cc.carm.plugin.minesql.lib.checkerframework - - - - waffle - cc.carm.plugin.minesql.lib.waffle + net.byteflux.libby + ${code.package}.lib.libby diff --git a/pom.xml b/pom.xml index a0c5ccd..cfe0057 100644 --- a/pom.xml +++ b/pom.xml @@ -11,20 +11,26 @@ UTF-8 UTF-8 - 0.4.6 + 0.4.7 3.3.1 1.4.18 3.3.9 + 1.1.5 + 0.5.1-SNAPSHOT + 3.0.0 + 8.0.31 3.1.0 2.1.214 + + cc.carm.plugin.minesql cc.carm.plugin minesql-parent pom - 1.3.1 + 1.4.0 api core @@ -99,6 +105,11 @@ https://repo.aikar.co/content/groups/aikar/ + + AlessioDP + https://repo.alessiodp.com/releases/ + + central https://repo1.maven.org/maven2/ @@ -162,8 +173,8 @@ - mysql - mysql-connector-java + com.mysql + mysql-connector-j ${deps.mysql-driver.version}