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 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();
|
||||
|
||||
}
|
||||
|
@ -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;
|
||||
}
|
||||
|
||||
|
@ -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;
|
||||
}
|
||||
|
||||
|
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.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;
|
||||
}
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user