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 d1e531a..083bd75 100644
--- a/core/src/main/java/cc/carm/plugin/minesql/MineSQLPlatform.java
+++ b/core/src/main/java/cc/carm/plugin/minesql/MineSQLPlatform.java
@@ -2,6 +2,7 @@ package cc.carm.plugin.minesql;
import co.aikar.commands.CommandManager;
import org.jetbrains.annotations.NotNull;
+import org.jetbrains.annotations.Nullable;
import java.io.File;
import java.util.logging.Logger;
@@ -12,6 +13,6 @@ public interface MineSQLPlatform {
@NotNull Logger getLogger();
- @NotNull CommandManager, ?, ?, ?, ?, ?> getCommandManager();
+ @Nullable CommandManager, ?, ?, ?, ?, ?> getCommandManager();
}
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 a283b97..2ad5e1c 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
@@ -2,10 +2,12 @@ package cc.carm.plugin.minesql;
import cc.carm.lib.easyplugin.EasyPlugin;
import cc.carm.plugin.minesql.conf.PluginConfiguration;
+import co.aikar.commands.CommandManager;
import co.aikar.commands.PaperCommandManager;
import org.bstats.bukkit.Metrics;
import org.bstats.charts.SimplePie;
import org.jetbrains.annotations.NotNull;
+import org.jetbrains.annotations.Nullable;
import java.io.File;
@@ -73,7 +75,7 @@ public class MineSQLBukkit extends EasyPlugin implements MineSQLPlatform {
return this.core.getConfig();
}
- public @NotNull PaperCommandManager getCommandManager() {
+ public @Nullable CommandManager, ?, ?, ?, ?, ?> getCommandManager() {
return commandManager;
}
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 88d9bbb..1b6f1ef 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
@@ -10,6 +10,7 @@ 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;
@@ -88,7 +89,7 @@ public class MineSQLBungee extends Plugin implements MineSQLPlatform {
}
@Override
- public @NotNull CommandManager, ?, ?, ?, ?, ?> getCommandManager() {
+ public @Nullable CommandManager, ?, ?, ?, ?, ?> getCommandManager() {
return this.commandManager;
}
diff --git a/platforms/sponge8/pom.xml b/platforms/sponge8/pom.xml
new file mode 100644
index 0000000..e825cd7
--- /dev/null
+++ b/platforms/sponge8/pom.xml
@@ -0,0 +1,121 @@
+
+
+
+ minesql-parent
+ cc.carm.plugin
+ 1.2.2
+ ../../pom.xml
+
+ 4.0.0
+
+
+ ${project.jdk.version}
+ ${project.jdk.version}
+ UTF-8
+ UTF-8
+ true
+ true
+
+
+ minesql-sponge
+
+ MineSQL-Sponge
+ 轻松(用)SQL的独立运行库Sponge版本插件。
+ https://github.com/CarmJos/MineSQL
+
+
+
+ huanmeng
+ huanmeng-qwq
+ huanmeng@huanmeng-qwq.com
+
+ Contributor
+
+
+
+
+
+
+ GNU General Public License v3.0
+ https://opensource.org/licenses/GPL-3.0
+
+
+
+
+ GitHub Issues
+ https://github.com/CarmJos/EasySQL-Plugin/issues
+
+
+
+ GitHub Actions
+ https://github.com/CarmJos/EasySQL-Plugin/actions/workflows/maven.yml
+
+
+
+
+ sponge
+ https://repo.spongepowered.org/maven
+
+
+
+
+
+
+
+ ${project.parent.groupId}
+ minesql-core
+ ${project.parent.version}
+ compile
+
+
+
+
+ org.spongepowered
+ spongeapi
+ 8.0.0
+ provided
+
+
+ ninja.leaping.configurate
+ configurate-hocon
+
+
+
+
+
+ org.bstats
+ bstats-sponge
+ 3.0.0
+ true
+ compile
+
+
+
+ co.aikar
+ acf-core
+ 0.5.1-SNAPSHOT
+ compile
+
+
+
+
+
+
+
+ org.apache.maven.plugins
+ maven-source-plugin
+
+
+ org.apache.maven.plugins
+ maven-compiler-plugin
+
+
+ org.apache.maven.plugins
+ maven-jar-plugin
+
+
+
+
+
\ No newline at end of file
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
new file mode 100644
index 0000000..7b37e6f
--- /dev/null
+++ b/platforms/sponge8/src/main/java/cc/carm/plugin/minesql/MineSQLSponge.java
@@ -0,0 +1,112 @@
+package cc.carm.plugin.minesql;
+
+import cc.carm.plugin.minesql.conf.PluginConfiguration;
+import co.aikar.commands.CommandManager;
+import com.google.inject.Inject;
+import org.apache.logging.log4j.Logger;
+import org.bstats.charts.SimplePie;
+import org.bstats.sponge.Metrics;
+import org.jetbrains.annotations.NotNull;
+import org.jetbrains.annotations.Nullable;
+import org.spongepowered.api.Server;
+import org.spongepowered.api.Sponge;
+import org.spongepowered.api.config.ConfigDir;
+import org.spongepowered.api.event.Listener;
+import org.spongepowered.api.event.lifecycle.StartingEngineEvent;
+import org.spongepowered.api.event.lifecycle.StoppingEngineEvent;
+import org.spongepowered.plugin.PluginContainer;
+import org.spongepowered.plugin.builtin.jvm.Plugin;
+
+import java.io.File;
+import java.nio.file.Path;
+
+/**
+ * 2022/6/20
+ * MineSQL
+ *
+ * @author huanmeng_qwq
+ */
+@Plugin("minesql")
+public class MineSQLSponge implements MineSQLPlatform {
+ private static MineSQLSponge instance;
+
+ @ConfigDir(sharedRoot = false)
+ private Path configDirectory;
+ @Inject
+ private org.apache.logging.log4j.Logger logger;
+
+ private final PluginContainer pluginContainer;
+ private final Metrics metrics;
+
+ protected MineSQLCore core;
+
+ @Inject
+ public MineSQLSponge(Metrics.Factory factory, PluginContainer pluginContainer) {
+ this.metrics = factory.make(14075);
+ instance = this;
+ this.core = new MineSQLCore(this);
+ this.pluginContainer = pluginContainer;
+ }
+
+ @Listener
+ public void starting(StartingEngineEvent e) {
+ enable();
+ }
+
+ @Listener
+ public void disable(StoppingEngineEvent e) {
+ logger.info("终止全部数据库连接...");
+ this.core.shutdownAll();
+ }
+
+
+ public void enable() {
+ if (getConfiguration().METRICS.getNotNull()) {
+ getLog().info("启用统计数据...");
+ metrics.addCustomChart(new SimplePie("update_check",
+ () -> getConfiguration().UPDATE_CHECKER.getNotNull() ? "ENABLED" : "DISABLED")
+ );
+ metrics.addCustomChart(new SimplePie("properties_configuration",
+ () -> getConfiguration().PROPERTIES.ENABLE.getNotNull() ? "ENABLED" : "DISABLED")
+ );
+ }
+
+ if (getConfiguration().PROPERTIES.ENABLE.getNotNull()) {
+ logger.info("开始检查更新,可能需要一小段时间...");
+ logger.info(" 如不希望检查更新,可在配置文件中关闭。");
+ Sponge.asyncScheduler().executor(pluginContainer)
+ .execute(() -> this.core.checkUpdate(pluginContainer.metadata().version().getQualifier()))
+ ;
+ } else {
+ logger.info("已禁用检查更新,跳过。");
+ }
+ }
+
+ @Override
+ public @NotNull File getPluginFolder() {
+ return configDirectory.toFile();
+ }
+
+ public static @NotNull MineSQLSponge getInstance() {
+ return instance;
+ }
+
+ public @NotNull PluginConfiguration getConfiguration() {
+ return this.core.getConfig();
+ }
+
+ public @NotNull java.util.logging.Logger getLogger() {
+ return java.util.logging.Logger.getLogger("MineSQL");
+ }
+
+ //fixme acf-sponge是基于sponge5编写的 无法使用
+ @Override
+ public @Nullable CommandManager, ?, ?, ?, ?, ?> getCommandManager() {
+ return null;
+ }
+
+
+ private Logger getLog() {
+ return logger;
+ }
+}
diff --git a/platforms/sponge8/src/main/resource/easysql.conf b/platforms/sponge8/src/main/resource/easysql.conf
new file mode 100644
index 0000000..291fa70
--- /dev/null
+++ b/platforms/sponge8/src/main/resource/easysql.conf
@@ -0,0 +1,17 @@
+debug = false
+metrics = false
+check-update = true
+properties {
+ enable = true
+ folder = "db-properties/"
+}
+databases {
+ example-test {
+ driver-type = "MYSQL"
+ host = "localhost"
+ port = -1
+ username = "root"
+ password = "root"
+ }
+}
+
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 76caf32..e4670af 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
@@ -17,6 +17,7 @@ import com.velocitypowered.api.proxy.ProxyServer;
import org.bstats.charts.SimplePie;
import org.bstats.velocity.Metrics;
import org.jetbrains.annotations.NotNull;
+import org.jetbrains.annotations.Nullable;
import java.io.File;
import java.nio.file.Path;
@@ -110,7 +111,7 @@ public class MineSQLVelocity implements MineSQLPlatform {
@Override
- public @NotNull CommandManager, ?, ?, ?, ?, ?> getCommandManager() {
+ public @Nullable CommandManager, ?, ?, ?, ?, ?> getCommandManager() {
return commandManager;
}
diff --git a/pom.xml b/pom.xml
index be63d7b..99ed595 100644
--- a/pom.xml
+++ b/pom.xml
@@ -32,6 +32,7 @@
platforms/bukkit
platforms/bungee
platforms/velocity
+ platforms/sponge8
plugin