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}