mirror of
https://github.com/CarmJos/MineSQL.git
synced 2024-09-19 20:25:45 +00:00
feat(platform): Sponge8 support (#4)
* feat(support): 恢复Sponge代码
(cherry picked from commit 58bddd86aa
)
* Sponge8 support
* Sponge8 support
* Sponge8 support
Co-authored-by: carm <carm@carm.cc>
This commit is contained in:
parent
3c45eb29bf
commit
3d885a85a2
@ -2,6 +2,7 @@ package cc.carm.plugin.minesql;
|
|||||||
|
|
||||||
import co.aikar.commands.CommandManager;
|
import co.aikar.commands.CommandManager;
|
||||||
import org.jetbrains.annotations.NotNull;
|
import org.jetbrains.annotations.NotNull;
|
||||||
|
import org.jetbrains.annotations.Nullable;
|
||||||
|
|
||||||
import java.io.File;
|
import java.io.File;
|
||||||
import java.util.logging.Logger;
|
import java.util.logging.Logger;
|
||||||
@ -12,6 +13,6 @@ public interface MineSQLPlatform {
|
|||||||
|
|
||||||
@NotNull Logger getLogger();
|
@NotNull Logger getLogger();
|
||||||
|
|
||||||
@NotNull CommandManager<?, ?, ?, ?, ?, ?> getCommandManager();
|
@Nullable CommandManager<?, ?, ?, ?, ?, ?> getCommandManager();
|
||||||
|
|
||||||
}
|
}
|
||||||
|
@ -2,10 +2,12 @@ package cc.carm.plugin.minesql;
|
|||||||
|
|
||||||
import cc.carm.lib.easyplugin.EasyPlugin;
|
import cc.carm.lib.easyplugin.EasyPlugin;
|
||||||
import cc.carm.plugin.minesql.conf.PluginConfiguration;
|
import cc.carm.plugin.minesql.conf.PluginConfiguration;
|
||||||
|
import co.aikar.commands.CommandManager;
|
||||||
import co.aikar.commands.PaperCommandManager;
|
import co.aikar.commands.PaperCommandManager;
|
||||||
import org.bstats.bukkit.Metrics;
|
import org.bstats.bukkit.Metrics;
|
||||||
import org.bstats.charts.SimplePie;
|
import org.bstats.charts.SimplePie;
|
||||||
import org.jetbrains.annotations.NotNull;
|
import org.jetbrains.annotations.NotNull;
|
||||||
|
import org.jetbrains.annotations.Nullable;
|
||||||
|
|
||||||
import java.io.File;
|
import java.io.File;
|
||||||
|
|
||||||
@ -73,7 +75,7 @@ public class MineSQLBukkit extends EasyPlugin implements MineSQLPlatform {
|
|||||||
return this.core.getConfig();
|
return this.core.getConfig();
|
||||||
}
|
}
|
||||||
|
|
||||||
public @NotNull PaperCommandManager getCommandManager() {
|
public @Nullable CommandManager<?, ?, ?, ?, ?, ?> getCommandManager() {
|
||||||
return commandManager;
|
return commandManager;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -10,6 +10,7 @@ import net.md_5.bungee.api.plugin.Plugin;
|
|||||||
import org.bstats.bungeecord.Metrics;
|
import org.bstats.bungeecord.Metrics;
|
||||||
import org.bstats.charts.SimplePie;
|
import org.bstats.charts.SimplePie;
|
||||||
import org.jetbrains.annotations.NotNull;
|
import org.jetbrains.annotations.NotNull;
|
||||||
|
import org.jetbrains.annotations.Nullable;
|
||||||
|
|
||||||
import java.io.File;
|
import java.io.File;
|
||||||
import java.util.Arrays;
|
import java.util.Arrays;
|
||||||
@ -88,7 +89,7 @@ public class MineSQLBungee extends Plugin implements MineSQLPlatform {
|
|||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public @NotNull CommandManager<?, ?, ?, ?, ?, ?> getCommandManager() {
|
public @Nullable CommandManager<?, ?, ?, ?, ?, ?> getCommandManager() {
|
||||||
return this.commandManager;
|
return this.commandManager;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
121
platforms/sponge8/pom.xml
Normal file
121
platforms/sponge8/pom.xml
Normal file
@ -0,0 +1,121 @@
|
|||||||
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
|
<project xmlns="http://maven.apache.org/POM/4.0.0"
|
||||||
|
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
|
||||||
|
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
|
||||||
|
<parent>
|
||||||
|
<artifactId>minesql-parent</artifactId>
|
||||||
|
<groupId>cc.carm.plugin</groupId>
|
||||||
|
<version>1.2.2</version>
|
||||||
|
<relativePath>../../pom.xml</relativePath>
|
||||||
|
</parent>
|
||||||
|
<modelVersion>4.0.0</modelVersion>
|
||||||
|
|
||||||
|
<properties>
|
||||||
|
<maven.compiler.source>${project.jdk.version}</maven.compiler.source>
|
||||||
|
<maven.compiler.target>${project.jdk.version}</maven.compiler.target>
|
||||||
|
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
|
||||||
|
<maven.compiler.encoding>UTF-8</maven.compiler.encoding>
|
||||||
|
<maven.javadoc.skip>true</maven.javadoc.skip>
|
||||||
|
<maven.deploy.skip>true</maven.deploy.skip>
|
||||||
|
</properties>
|
||||||
|
|
||||||
|
<artifactId>minesql-sponge</artifactId>
|
||||||
|
|
||||||
|
<name>MineSQL-Sponge</name>
|
||||||
|
<description>轻松(用)SQL的独立运行库Sponge版本插件。</description>
|
||||||
|
<url>https://github.com/CarmJos/MineSQL</url>
|
||||||
|
|
||||||
|
<developers>
|
||||||
|
<developer>
|
||||||
|
<id>huanmeng</id>
|
||||||
|
<name>huanmeng-qwq</name>
|
||||||
|
<email>huanmeng@huanmeng-qwq.com</email>
|
||||||
|
<roles>
|
||||||
|
<role>Contributor</role>
|
||||||
|
</roles>
|
||||||
|
</developer>
|
||||||
|
</developers>
|
||||||
|
|
||||||
|
<licenses>
|
||||||
|
<license>
|
||||||
|
<name>GNU General Public License v3.0</name>
|
||||||
|
<url>https://opensource.org/licenses/GPL-3.0</url>
|
||||||
|
</license>
|
||||||
|
</licenses>
|
||||||
|
|
||||||
|
<issueManagement>
|
||||||
|
<system>GitHub Issues</system>
|
||||||
|
<url>https://github.com/CarmJos/EasySQL-Plugin/issues</url>
|
||||||
|
</issueManagement>
|
||||||
|
|
||||||
|
<ciManagement>
|
||||||
|
<system>GitHub Actions</system>
|
||||||
|
<url>https://github.com/CarmJos/EasySQL-Plugin/actions/workflows/maven.yml</url>
|
||||||
|
</ciManagement>
|
||||||
|
|
||||||
|
<repositories>
|
||||||
|
<repository>
|
||||||
|
<id>sponge</id>
|
||||||
|
<url>https://repo.spongepowered.org/maven</url>
|
||||||
|
</repository>
|
||||||
|
</repositories>
|
||||||
|
|
||||||
|
<dependencies>
|
||||||
|
|
||||||
|
<!--suppress VulnerableLibrariesLocal -->
|
||||||
|
<dependency>
|
||||||
|
<groupId>${project.parent.groupId}</groupId>
|
||||||
|
<artifactId>minesql-core</artifactId>
|
||||||
|
<version>${project.parent.version}</version>
|
||||||
|
<scope>compile</scope>
|
||||||
|
</dependency>
|
||||||
|
|
||||||
|
<!--suppress VulnerableLibrariesLocal -->
|
||||||
|
<dependency>
|
||||||
|
<groupId>org.spongepowered</groupId>
|
||||||
|
<artifactId>spongeapi</artifactId>
|
||||||
|
<version>8.0.0</version>
|
||||||
|
<scope>provided</scope>
|
||||||
|
<exclusions>
|
||||||
|
<exclusion>
|
||||||
|
<groupId>ninja.leaping.configurate</groupId>
|
||||||
|
<artifactId>configurate-hocon</artifactId>
|
||||||
|
</exclusion>
|
||||||
|
</exclusions>
|
||||||
|
</dependency>
|
||||||
|
|
||||||
|
<dependency>
|
||||||
|
<groupId>org.bstats</groupId>
|
||||||
|
<artifactId>bstats-sponge</artifactId>
|
||||||
|
<version>3.0.0</version>
|
||||||
|
<optional>true</optional>
|
||||||
|
<scope>compile</scope>
|
||||||
|
</dependency>
|
||||||
|
|
||||||
|
<dependency>
|
||||||
|
<groupId>co.aikar</groupId>
|
||||||
|
<artifactId>acf-core</artifactId>
|
||||||
|
<version>0.5.1-SNAPSHOT</version>
|
||||||
|
<scope>compile</scope>
|
||||||
|
</dependency>
|
||||||
|
|
||||||
|
</dependencies>
|
||||||
|
|
||||||
|
<build>
|
||||||
|
<plugins>
|
||||||
|
<plugin>
|
||||||
|
<groupId>org.apache.maven.plugins</groupId>
|
||||||
|
<artifactId>maven-source-plugin</artifactId>
|
||||||
|
</plugin>
|
||||||
|
<plugin>
|
||||||
|
<groupId>org.apache.maven.plugins</groupId>
|
||||||
|
<artifactId>maven-compiler-plugin</artifactId>
|
||||||
|
</plugin>
|
||||||
|
<plugin>
|
||||||
|
<groupId>org.apache.maven.plugins</groupId>
|
||||||
|
<artifactId>maven-jar-plugin</artifactId>
|
||||||
|
</plugin>
|
||||||
|
</plugins>
|
||||||
|
</build>
|
||||||
|
|
||||||
|
</project>
|
@ -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<br>
|
||||||
|
* MineSQL<br>
|
||||||
|
*
|
||||||
|
* @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<Server> e) {
|
||||||
|
enable();
|
||||||
|
}
|
||||||
|
|
||||||
|
@Listener
|
||||||
|
public void disable(StoppingEngineEvent<Server> 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;
|
||||||
|
}
|
||||||
|
}
|
17
platforms/sponge8/src/main/resource/easysql.conf
Normal file
17
platforms/sponge8/src/main/resource/easysql.conf
Normal file
@ -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"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
@ -17,6 +17,7 @@ import com.velocitypowered.api.proxy.ProxyServer;
|
|||||||
import org.bstats.charts.SimplePie;
|
import org.bstats.charts.SimplePie;
|
||||||
import org.bstats.velocity.Metrics;
|
import org.bstats.velocity.Metrics;
|
||||||
import org.jetbrains.annotations.NotNull;
|
import org.jetbrains.annotations.NotNull;
|
||||||
|
import org.jetbrains.annotations.Nullable;
|
||||||
|
|
||||||
import java.io.File;
|
import java.io.File;
|
||||||
import java.nio.file.Path;
|
import java.nio.file.Path;
|
||||||
@ -110,7 +111,7 @@ public class MineSQLVelocity implements MineSQLPlatform {
|
|||||||
|
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public @NotNull CommandManager<?, ?, ?, ?, ?, ?> getCommandManager() {
|
public @Nullable CommandManager<?, ?, ?, ?, ?, ?> getCommandManager() {
|
||||||
return commandManager;
|
return commandManager;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
1
pom.xml
1
pom.xml
@ -32,6 +32,7 @@
|
|||||||
<module>platforms/bukkit</module>
|
<module>platforms/bukkit</module>
|
||||||
<module>platforms/bungee</module>
|
<module>platforms/bungee</module>
|
||||||
<module>platforms/velocity</module>
|
<module>platforms/velocity</module>
|
||||||
|
<module>platforms/sponge8</module>
|
||||||
<module>plugin</module>
|
<module>plugin</module>
|
||||||
</modules>
|
</modules>
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user