1
mirror of https://github.com/CarmJos/MineSQL.git synced 2024-09-19 20:25:45 +00:00

feat(lib): 独立数据库依赖加载,缩减文件体积。

This commit is contained in:
Carm Jos 2023-03-16 01:12:25 +08:00
parent 6331cf2047
commit e6fad85438
16 changed files with 192 additions and 107 deletions

View File

@ -5,7 +5,7 @@
<parent> <parent>
<artifactId>minesql-parent</artifactId> <artifactId>minesql-parent</artifactId>
<groupId>cc.carm.plugin</groupId> <groupId>cc.carm.plugin</groupId>
<version>1.3.1</version> <version>1.4.0</version>
</parent> </parent>
<modelVersion>4.0.0</modelVersion> <modelVersion>4.0.0</modelVersion>

View File

@ -5,7 +5,7 @@
<parent> <parent>
<artifactId>minesql-parent</artifactId> <artifactId>minesql-parent</artifactId>
<groupId>cc.carm.plugin</groupId> <groupId>cc.carm.plugin</groupId>
<version>1.3.1</version> <version>1.4.0</version>
</parent> </parent>
<modelVersion>4.0.0</modelVersion> <modelVersion>4.0.0</modelVersion>
<properties> <properties>
@ -68,10 +68,17 @@
<scope>provided</scope> <scope>provided</scope>
</dependency> </dependency>
<dependency>
<groupId>net.byteflux</groupId>
<artifactId>libby-core</artifactId>
<version>${deps.libby.version}</version>
<scope>compile</scope>
</dependency>
<dependency> <dependency>
<groupId>com.github.chris2018998</groupId> <groupId>com.github.chris2018998</groupId>
<artifactId>beecp</artifactId> <artifactId>beecp</artifactId>
<scope>compile</scope> <scope>provided</scope>
</dependency> </dependency>
<dependency> <dependency>
@ -101,25 +108,6 @@
<scope>compile</scope> <scope>compile</scope>
</dependency> </dependency>
<dependency>
<groupId>org.mariadb.jdbc</groupId>
<artifactId>mariadb-java-client</artifactId>
<scope>compile</scope>
</dependency>
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
<scope>compile</scope>
</dependency>
<!--suppress VulnerableLibrariesLocal -->
<dependency>
<groupId>com.h2database</groupId>
<artifactId>h2</artifactId>
<scope>compile</scope>
</dependency>
</dependencies> </dependencies>
<build> <build>

View File

@ -14,12 +14,14 @@ import cc.carm.plugin.minesql.command.MineSQLCommand;
import cc.carm.plugin.minesql.command.MineSQLHelpFormatter; import cc.carm.plugin.minesql.command.MineSQLHelpFormatter;
import cc.carm.plugin.minesql.conf.PluginConfiguration; import cc.carm.plugin.minesql.conf.PluginConfiguration;
import cc.carm.plugin.minesql.conf.SQLSourceGroup; import cc.carm.plugin.minesql.conf.SQLSourceGroup;
import cc.carm.plugin.minesql.lib.PluginLibraries;
import cc.carm.plugin.minesql.util.DBPropertiesUtil; import cc.carm.plugin.minesql.util.DBPropertiesUtil;
import cn.beecp.BeeDataSource; import cn.beecp.BeeDataSource;
import cn.beecp.BeeDataSourceConfig; import cn.beecp.BeeDataSourceConfig;
import co.aikar.commands.CommandManager; import co.aikar.commands.CommandManager;
import co.aikar.commands.InvalidCommandArgument; import co.aikar.commands.InvalidCommandArgument;
import co.aikar.commands.Locales; import co.aikar.commands.Locales;
import net.byteflux.libby.Library;
import org.jetbrains.annotations.NotNull; import org.jetbrains.annotations.NotNull;
import org.jetbrains.annotations.Nullable; import org.jetbrains.annotations.Nullable;
@ -48,6 +50,17 @@ public class MineSQLCore implements IMineSQL {
instance = this; instance = this;
this.platform = platform; 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("加载配置文件..."); getLogger().info("加载配置文件...");
this.configProvider = EasyConfiguration.from(new File(platform.getPluginFolder(), "config.yml")); this.configProvider = EasyConfiguration.from(new File(platform.getPluginFolder(), "config.yml"));
this.config = new PluginConfiguration(); this.config = new PluginConfiguration();

View File

@ -1,6 +1,7 @@
package cc.carm.plugin.minesql; package cc.carm.plugin.minesql;
import co.aikar.commands.CommandManager; import co.aikar.commands.CommandManager;
import net.byteflux.libby.LibraryManager;
import org.jetbrains.annotations.NotNull; import org.jetbrains.annotations.NotNull;
import org.jetbrains.annotations.Nullable; import org.jetbrains.annotations.Nullable;
@ -15,4 +16,6 @@ public interface MineSQLPlatform {
@Nullable CommandManager<?, ?, ?, ?, ?, ?> getCommandManager(); @Nullable CommandManager<?, ?, ?, ?, ?, ?> getCommandManager();
@NotNull LibraryManager getLibraryManager();
} }

View File

@ -3,6 +3,7 @@ package cc.carm.plugin.minesql.command;
import cc.carm.lib.easysql.api.SQLManager; import cc.carm.lib.easysql.api.SQLManager;
import cc.carm.lib.easysql.api.SQLQuery; import cc.carm.lib.easysql.api.SQLQuery;
import cc.carm.plugin.minesql.MineSQLCore; import cc.carm.plugin.minesql.MineSQLCore;
import cc.carm.plugin.minesql.lib.PluginLibraries;
import cc.carm.plugin.minesql.util.VersionReader; import cc.carm.plugin.minesql.util.VersionReader;
import co.aikar.commands.BaseCommand; import co.aikar.commands.BaseCommand;
import co.aikar.commands.CommandHelp; import co.aikar.commands.CommandHelp;
@ -42,7 +43,7 @@ public class MineSQLCommand extends BaseCommand {
issuer.sendMessage("§c只有后台执行才能使用此命令。"); issuer.sendMessage("§c只有后台执行才能使用此命令。");
return; return;
} }
VersionReader reader = new VersionReader(); VersionReader reader = PluginLibraries.READER;
String pluginVersion = reader.get("plugin", null); String pluginVersion = reader.get("plugin", null);
if (pluginVersion == null) { if (pluginVersion == null) {
issuer.sendMessage("§c无法获取当前版本信息请保证使用原生版本以避免安全问题。"); 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("§r当前插件版本为 §b" + pluginVersion + "§r。 §7(基于 EasySQL &3" + reader.get("api") + "&7)");
issuer.sendMessage("§8 - &f连接池依赖 BeeCP §9" + reader.get("beecp")); issuer.sendMessage("§8 - &f连接池依赖 BeeCP §9" + reader.get("beecp"));
issuer.sendMessage("§8 - &f数据库驱动 MySQL §9" + reader.get("mysql-driver")); issuer.sendMessage("§8 - &f数据库驱动 MySQL §9" + PluginLibraries.MYSQL_DRIVER.getVersion());
issuer.sendMessage("§8 - &f数据库驱动 MariaDB §9" + reader.get("mariadb-driver")); issuer.sendMessage("§8 - &f数据库驱动 MariaDB §9" + PluginLibraries.MARIADB_DRIVER.getVersion());
issuer.sendMessage("§8 - &f数据库驱动 h2-database §9" + reader.get("h2-driver")); issuer.sendMessage("§8 - &f数据库驱动 h2-database §9" + PluginLibraries.H2_DRIVER.getVersion());
issuer.sendMessage("§r正在检查插件更新请稍候..."); issuer.sendMessage("§r正在检查插件更新请稍候...");
core.checkUpdate(pluginVersion); core.checkUpdate(pluginVersion);

View File

@ -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('_', '-'));
}
}

View File

@ -5,7 +5,7 @@
<parent> <parent>
<artifactId>minesql-parent</artifactId> <artifactId>minesql-parent</artifactId>
<groupId>cc.carm.plugin</groupId> <groupId>cc.carm.plugin</groupId>
<version>1.3.1</version> <version>1.4.0</version>
<relativePath>../../pom.xml</relativePath> <relativePath>../../pom.xml</relativePath>
</parent> </parent>
<modelVersion>4.0.0</modelVersion> <modelVersion>4.0.0</modelVersion>
@ -79,17 +79,24 @@
<scope>provided</scope> <scope>provided</scope>
</dependency> </dependency>
<dependency>
<groupId>net.byteflux</groupId>
<artifactId>libby-bukkit</artifactId>
<version>${deps.libby.version}</version>
<scope>compile</scope>
</dependency>
<dependency> <dependency>
<groupId>org.bstats</groupId> <groupId>org.bstats</groupId>
<artifactId>bstats-bukkit</artifactId> <artifactId>bstats-bukkit</artifactId>
<version>3.0.0</version> <version>${deps.bstats.version}</version>
<scope>compile</scope> <scope>compile</scope>
</dependency> </dependency>
<dependency> <dependency>
<groupId>co.aikar</groupId> <groupId>co.aikar</groupId>
<artifactId>acf-paper</artifactId> <artifactId>acf-paper</artifactId>
<version>0.5.1-SNAPSHOT</version> <version>${deps.acf.version}</version>
<scope>compile</scope> <scope>compile</scope>
</dependency> </dependency>

View File

@ -4,10 +4,11 @@ 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.CommandManager;
import co.aikar.commands.PaperCommandManager; import co.aikar.commands.PaperCommandManager;
import net.byteflux.libby.BukkitLibraryManager;
import net.byteflux.libby.LibraryManager;
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;
@ -15,6 +16,8 @@ public class MineSQLBukkit extends EasyPlugin implements MineSQLPlatform {
protected static MineSQLBukkit instance; protected static MineSQLBukkit instance;
protected BukkitLibraryManager libraryManager;
protected MineSQLCore core; protected MineSQLCore core;
protected PaperCommandManager commandManager; protected PaperCommandManager commandManager;
@ -22,6 +25,9 @@ public class MineSQLBukkit extends EasyPlugin implements MineSQLPlatform {
protected void load() { protected void load() {
MineSQLBukkit.instance = this; MineSQLBukkit.instance = this;
log("加载依赖管理器...");
this.libraryManager = new BukkitLibraryManager(this);
log("加载基础核心..."); log("加载基础核心...");
this.core = new MineSQLCore(this); this.core = new MineSQLCore(this);
} }
@ -75,10 +81,15 @@ public class MineSQLBukkit extends EasyPlugin implements MineSQLPlatform {
return this.core.getConfig(); return this.core.getConfig();
} }
public @Nullable CommandManager<?, ?, ?, ?, ?, ?> getCommandManager() { public @NotNull CommandManager<?, ?, ?, ?, ?, ?> getCommandManager() {
return commandManager; return commandManager;
} }
@Override
public @NotNull LibraryManager getLibraryManager() {
return this.libraryManager;
}
@Override @Override
public @NotNull File getPluginFolder() { public @NotNull File getPluginFolder() {
return getDataFolder(); return getDataFolder();

View File

@ -5,7 +5,7 @@
<parent> <parent>
<artifactId>minesql-parent</artifactId> <artifactId>minesql-parent</artifactId>
<groupId>cc.carm.plugin</groupId> <groupId>cc.carm.plugin</groupId>
<version>1.3.1</version> <version>1.4.0</version>
<relativePath>../../pom.xml</relativePath> <relativePath>../../pom.xml</relativePath>
</parent> </parent>
<modelVersion>4.0.0</modelVersion> <modelVersion>4.0.0</modelVersion>
@ -90,17 +90,24 @@
<scope>provided</scope> <scope>provided</scope>
</dependency> </dependency>
<dependency>
<groupId>net.byteflux</groupId>
<artifactId>libby-bungee</artifactId>
<version>${deps.libby.version}</version>
<scope>compile</scope>
</dependency>
<dependency> <dependency>
<groupId>org.bstats</groupId> <groupId>org.bstats</groupId>
<artifactId>bstats-bungeecord</artifactId> <artifactId>bstats-bungeecord</artifactId>
<version>3.0.0</version> <version>${deps.bstats.version}</version>
<scope>compile</scope> <scope>compile</scope>
</dependency> </dependency>
<dependency> <dependency>
<groupId>co.aikar</groupId> <groupId>co.aikar</groupId>
<artifactId>acf-bungee</artifactId> <artifactId>acf-bungee</artifactId>
<version>0.5.1-SNAPSHOT</version> <version>${deps.acf.version}</version>
<scope>compile</scope> <scope>compile</scope>
</dependency> </dependency>

View File

@ -5,12 +5,13 @@ import cc.carm.lib.easyplugin.utils.JarResourceUtils;
import cc.carm.plugin.minesql.conf.PluginConfiguration; import cc.carm.plugin.minesql.conf.PluginConfiguration;
import co.aikar.commands.BungeeCommandManager; import co.aikar.commands.BungeeCommandManager;
import co.aikar.commands.CommandManager; 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.ProxyServer;
import net.md_5.bungee.api.plugin.Plugin; 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;
@ -21,6 +22,8 @@ public class MineSQLBungee extends Plugin implements MineSQLPlatform {
protected static MineSQLBungee instance; protected static MineSQLBungee instance;
protected BungeeLibraryManager libraryManager;
protected MineSQLCore core; protected MineSQLCore core;
protected BungeeCommandManager commandManager; protected BungeeCommandManager commandManager;
@ -28,6 +31,9 @@ public class MineSQLBungee extends Plugin implements MineSQLPlatform {
public void onLoad() { public void onLoad() {
MineSQLBungee.instance = this; MineSQLBungee.instance = this;
getLogger().info("加载依赖管理器...");
this.libraryManager = new BungeeLibraryManager(this);
getLogger().info("加载基础核心..."); getLogger().info("加载基础核心...");
this.core = new MineSQLCore(this); this.core = new MineSQLCore(this);
} }
@ -89,10 +95,15 @@ public class MineSQLBungee extends Plugin implements MineSQLPlatform {
} }
@Override @Override
public @Nullable CommandManager<?, ?, ?, ?, ?, ?> getCommandManager() { public @NotNull CommandManager<?, ?, ?, ?, ?, ?> getCommandManager() {
return this.commandManager; return this.commandManager;
} }
@Override
public @NotNull LibraryManager getLibraryManager() {
return this.libraryManager;
}
@SuppressWarnings("deprecation") @SuppressWarnings("deprecation")
public void outputInfo() { public void outputInfo() {
Optional.ofNullable(JarResourceUtils.readResource(this.getResourceAsStream("PLUGIN_INFO"))) Optional.ofNullable(JarResourceUtils.readResource(this.getResourceAsStream("PLUGIN_INFO")))

View File

@ -5,7 +5,7 @@
<parent> <parent>
<artifactId>minesql-parent</artifactId> <artifactId>minesql-parent</artifactId>
<groupId>cc.carm.plugin</groupId> <groupId>cc.carm.plugin</groupId>
<version>1.3.1</version> <version>1.4.0</version>
<relativePath>../../pom.xml</relativePath> <relativePath>../../pom.xml</relativePath>
</parent> </parent>
<modelVersion>4.0.0</modelVersion> <modelVersion>4.0.0</modelVersion>
@ -84,18 +84,24 @@
</exclusions> </exclusions>
</dependency> </dependency>
<dependency>
<groupId>net.byteflux</groupId>
<artifactId>libby-sponge</artifactId>
<version>${deps.libby.version}</version>
<scope>compile</scope>
</dependency>
<dependency> <dependency>
<groupId>org.bstats</groupId> <groupId>org.bstats</groupId>
<artifactId>bstats-sponge</artifactId> <artifactId>bstats-sponge</artifactId>
<version>3.0.0</version> <version>${deps.bstats.version}</version>
<optional>true</optional>
<scope>compile</scope> <scope>compile</scope>
</dependency> </dependency>
<dependency> <dependency>
<groupId>co.aikar</groupId> <groupId>co.aikar</groupId>
<artifactId>acf-sponge</artifactId> <artifactId>acf-sponge</artifactId>
<version>0.5.1-SNAPSHOT</version> <version>${deps.acf.version}</version>
<scope>compile</scope> <scope>compile</scope>
</dependency> </dependency>

View File

@ -5,6 +5,8 @@ import cc.carm.lib.easyplugin.utils.JarResourceUtils;
import cc.carm.plugin.minesql.conf.PluginConfiguration; import cc.carm.plugin.minesql.conf.PluginConfiguration;
import co.aikar.commands.CommandManager; import co.aikar.commands.CommandManager;
import com.google.inject.Inject; import com.google.inject.Inject;
import net.byteflux.libby.LibraryManager;
import net.byteflux.libby.SpongeLibraryManager;
import net.kyori.adventure.text.Component; import net.kyori.adventure.text.Component;
import org.bstats.charts.SimplePie; import org.bstats.charts.SimplePie;
import org.bstats.sponge.Metrics; import org.bstats.sponge.Metrics;
@ -41,14 +43,17 @@ public class MineSQLSponge implements MineSQLPlatform {
private final PluginContainer pluginContainer; private final PluginContainer pluginContainer;
private final Metrics.Factory metricsFactory; private final Metrics.Factory metricsFactory;
protected final SpongeLibraryManager<MineSQLSponge> libraryManager;
protected final MineSQLCore core; protected final MineSQLCore core;
// protected SpongeCommandManager commandManager; // protected SpongeCommandManager commandManager;
@Inject @Inject
public MineSQLSponge(Metrics.Factory factory, public MineSQLSponge(Metrics.Factory factory,
PluginContainer pluginContainer) { PluginContainer pluginContainer,
SpongeLibraryManager<MineSQLSponge> libraryManager) {
this.pluginContainer = pluginContainer; this.pluginContainer = pluginContainer;
this.metricsFactory = factory; this.metricsFactory = factory;
this.libraryManager = libraryManager;
getLogger().info("加载基础核心..."); getLogger().info("加载基础核心...");
this.core = new MineSQLCore(this); this.core = new MineSQLCore(this);
@ -110,6 +115,11 @@ public class MineSQLSponge implements MineSQLPlatform {
return null; return null;
} }
@Override
public @NotNull LibraryManager getLibraryManager() {
return this.libraryManager;
}
public String getVersion() { public String getVersion() {
return pluginContainer.metadata().version().toString(); return pluginContainer.metadata().version().toString();
} }

View File

@ -5,7 +5,7 @@
<parent> <parent>
<artifactId>minesql-parent</artifactId> <artifactId>minesql-parent</artifactId>
<groupId>cc.carm.plugin</groupId> <groupId>cc.carm.plugin</groupId>
<version>1.3.1</version> <version>1.4.0</version>
<relativePath>../../pom.xml</relativePath> <relativePath>../../pom.xml</relativePath>
</parent> </parent>
<modelVersion>4.0.0</modelVersion> <modelVersion>4.0.0</modelVersion>
@ -82,16 +82,25 @@
<scope>compile</scope> <scope>compile</scope>
</dependency> </dependency>
<dependency>
<groupId>net.byteflux</groupId>
<artifactId>libby-velocity</artifactId>
<version>${deps.libby.version}</version>
<scope>compile</scope>
</dependency>
<dependency> <dependency>
<groupId>org.bstats</groupId> <groupId>org.bstats</groupId>
<artifactId>bstats-velocity</artifactId> <artifactId>bstats-velocity</artifactId>
<version>3.0.0</version> <version>${deps.bstats.version}</version>
<scope>compile</scope>
</dependency> </dependency>
<dependency> <dependency>
<groupId>co.aikar</groupId> <groupId>co.aikar</groupId>
<artifactId>acf-velocity</artifactId> <artifactId>acf-velocity</artifactId>
<version>0.5.1-SNAPSHOT</version> <version>${deps.acf.version}</version>
<scope>compile</scope>
</dependency> </dependency>
</dependencies> </dependencies>

View File

@ -16,11 +16,13 @@ import com.velocitypowered.api.plugin.PluginContainer;
import com.velocitypowered.api.plugin.PluginDescription; import com.velocitypowered.api.plugin.PluginDescription;
import com.velocitypowered.api.plugin.annotation.DataDirectory; import com.velocitypowered.api.plugin.annotation.DataDirectory;
import com.velocitypowered.api.proxy.ProxyServer; import com.velocitypowered.api.proxy.ProxyServer;
import net.byteflux.libby.LibraryManager;
import net.byteflux.libby.VelocityLibraryManager;
import net.kyori.adventure.text.Component; import net.kyori.adventure.text.Component;
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 org.slf4j.LoggerFactory;
import java.io.File; import java.io.File;
import java.nio.file.Path; import java.nio.file.Path;
@ -29,7 +31,7 @@ import java.util.Optional;
import java.util.logging.Logger; 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", description = "EasySQL Plugin For Velocity",
url = "https://github.com/CarmJos/MineSQL", url = "https://github.com/CarmJos/MineSQL",
authors = {"CarmJos", "GhostChu"} authors = {"CarmJos", "GhostChu"}
@ -41,6 +43,7 @@ public class MineSQLVelocity implements MineSQLPlatform {
private final File dataFolder; private final File dataFolder;
private final Metrics.Factory metricsFactory; private final Metrics.Factory metricsFactory;
protected VelocityLibraryManager<MineSQLVelocity> libraryManager;
protected MineSQLCore core; protected MineSQLCore core;
protected VelocityCommandManager commandManager; protected VelocityCommandManager commandManager;
@ -53,14 +56,19 @@ public class MineSQLVelocity implements MineSQLPlatform {
this.logger = logger; this.logger = logger;
this.dataFolder = dataDirectory.toFile(); this.dataFolder = dataDirectory.toFile();
this.metricsFactory = metricsFactory; this.metricsFactory = metricsFactory;
this.libraryManager = new VelocityLibraryManager<>(
getLogger().info("加载基础核心..."); LoggerFactory.getLogger("minesql"), dataDirectory,
this.core = new MineSQLCore(this); server.getPluginManager(), this
);
} }
@Subscribe(order = PostOrder.FIRST) @Subscribe(order = PostOrder.FIRST)
public void onInitialize(ProxyInitializeEvent event) { public void onInitialize(ProxyInitializeEvent event) {
outputInfo(); outputInfo();
getLogger().info("加载基础核心...");
this.core = new MineSQLCore(this);
getLogger().info("初始化指令管理器..."); getLogger().info("初始化指令管理器...");
this.commandManager = new VelocityCommandManager(server, this); this.commandManager = new VelocityCommandManager(server, this);
@ -116,10 +124,15 @@ public class MineSQLVelocity implements MineSQLPlatform {
@Override @Override
public @Nullable CommandManager<?, ?, ?, ?, ?, ?> getCommandManager() { public @NotNull CommandManager<?, ?, ?, ?, ?, ?> getCommandManager() {
return commandManager; return commandManager;
} }
@Override
public @NotNull LibraryManager getLibraryManager() {
return this.libraryManager;
}
public @NotNull PluginConfiguration getConfiguration() { public @NotNull PluginConfiguration getConfiguration() {
return this.core.getConfig(); return this.core.getConfig();
} }

View File

@ -5,7 +5,7 @@
<parent> <parent>
<artifactId>minesql-parent</artifactId> <artifactId>minesql-parent</artifactId>
<groupId>cc.carm.plugin</groupId> <groupId>cc.carm.plugin</groupId>
<version>1.3.1</version> <version>1.4.0</version>
</parent> </parent>
<modelVersion>4.0.0</modelVersion> <modelVersion>4.0.0</modelVersion>
<properties> <properties>
@ -80,86 +80,45 @@
<relocations> <relocations>
<relocation> <relocation>
<pattern>org.bstats</pattern> <pattern>org.bstats</pattern>
<shadedPattern>cc.carm.plugin.minesql.lib.bstats</shadedPattern> <shadedPattern>${code.package}.lib.bstats</shadedPattern>
</relocation> </relocation>
<relocation> <relocation>
<pattern>org.json</pattern> <pattern>org.json</pattern>
<shadedPattern>cc.carm.plugin.minesql.lib.json</shadedPattern> <shadedPattern>${code.package}.lib.json</shadedPattern>
</relocation> </relocation>
<relocation> <relocation>
<pattern>cc.carm.lib.easyplugin</pattern> <pattern>cc.carm.lib.easyplugin</pattern>
<shadedPattern>cc.carm.plugin.minesql.lib.easyplugin</shadedPattern> <shadedPattern>${code.package}.lib.easyplugin</shadedPattern>
</relocation> </relocation>
<relocation> <relocation>
<pattern>cc.carm.lib.githubreleases4j</pattern> <pattern>cc.carm.lib.githubreleases4j</pattern>
<shadedPattern>cc.carm.plugin.minesql.lib.githubreleases4j</shadedPattern> <shadedPattern>${code.package}.lib.githubreleases4j</shadedPattern>
</relocation> </relocation>
<relocation> <relocation>
<pattern>cc.carm.lib.configuration</pattern> <pattern>cc.carm.lib.configuration</pattern>
<shadedPattern>cc.carm.plugin.minesql.lib.configuration</shadedPattern> <shadedPattern>${code.package}.lib.configuration</shadedPattern>
</relocation> </relocation>
<relocation> <relocation>
<pattern>org.bspfsystems.yamlconfiguration</pattern> <pattern>org.bspfsystems.yamlconfiguration</pattern>
<shadedPattern>cc.carm.plugin.minesql.lib.configuration.yaml <shadedPattern>${code.package}.lib.configuration.yaml</shadedPattern>
</shadedPattern> <!-- Replace this -->
</relocation> </relocation>
<relocation> <relocation>
<pattern>org.yaml.snakeyaml</pattern> <pattern>org.yaml.snakeyaml</pattern>
<shadedPattern>cc.carm.plugin.minesql.lib.yaml</shadedPattern> <!-- Replace this --> <shadedPattern>${code.package}.lib.yaml</shadedPattern> <!-- Replace this -->
</relocation> </relocation>
<relocation> <relocation>
<pattern>co.aikar.commands</pattern> <pattern>co.aikar.commands</pattern>
<shadedPattern>cc.carm.plugin.minesql.lib.acf</shadedPattern> <!-- Replace this --> <shadedPattern>${code.package}.lib.acf</shadedPattern> <!-- Replace this -->
</relocation> </relocation>
<relocation> <relocation>
<pattern>co.aikar.locales</pattern> <pattern>co.aikar.locales</pattern>
<shadedPattern>cc.carm.plugin.minesql.lib.locales</shadedPattern> <!-- Replace this --> <shadedPattern>${code.package}.lib.locales</shadedPattern> <!-- Replace this -->
</relocation>
<relocation>
<pattern>cn.beecp</pattern>
<shadedPattern>cc.carm.plugin.minesql.lib.beecp</shadedPattern> <!-- Replace this -->
</relocation> </relocation>
<relocation> <relocation>
<pattern>org.h2</pattern> <pattern>net.byteflux.libby</pattern>
<shadedPattern>cc.carm.plugin.minesql.driver.h2</shadedPattern> <!-- Replace this --> <shadedPattern>${code.package}.lib.libby</shadedPattern>
</relocation>
<relocation>
<pattern>org.mariadb</pattern>
<shadedPattern>cc.carm.plugin.minesql.driver.mariadb</shadedPattern> <!-- Replace this -->
</relocation>
<relocation>
<pattern>com.mysql</pattern>
<shadedPattern>cc.carm.plugin.minesql.driver.mysql</shadedPattern> <!-- Replace this -->
</relocation>
<relocation>
<pattern>com.sun.jna</pattern>
<shadedPattern>cc.carm.plugin.minesql.lib.jna</shadedPattern> <!-- Replace this -->
</relocation>
<relocation>
<pattern>com.google.protobuf</pattern>
<shadedPattern>cc.carm.plugin.minesql.lib.google.protobuf
</shadedPattern> <!-- Replace this -->
</relocation>
<relocation>
<pattern>com.google.errorprone</pattern>
<shadedPattern>cc.carm.plugin.minesql.lib.google.errorprone
</shadedPattern> <!-- Replace this -->
</relocation>
<relocation>
<pattern>com.github</pattern>
<shadedPattern>cc.carm.plugin.minesql.lib.github</shadedPattern> <!-- Replace this -->
</relocation>
<relocation>
<pattern>org.checkerframework</pattern>
<shadedPattern>cc.carm.plugin.minesql.lib.checkerframework
</shadedPattern> <!-- Replace this -->
</relocation>
<relocation>
<pattern>waffle</pattern>
<shadedPattern>cc.carm.plugin.minesql.lib.waffle</shadedPattern> <!-- Replace this -->
</relocation> </relocation>
</relocations> </relocations>

19
pom.xml
View File

@ -11,20 +11,26 @@
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding> <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
<maven.compiler.encoding>UTF-8</maven.compiler.encoding> <maven.compiler.encoding>UTF-8</maven.compiler.encoding>
<deps.easysql.version>0.4.6</deps.easysql.version> <deps.easysql.version>0.4.7</deps.easysql.version>
<deps.easyconf.version>3.3.1</deps.easyconf.version> <deps.easyconf.version>3.3.1</deps.easyconf.version>
<deps.easyplugin.version>1.4.18</deps.easyplugin.version> <deps.easyplugin.version>1.4.18</deps.easyplugin.version>
<deps.beecp.version>3.3.9</deps.beecp.version> <deps.beecp.version>3.3.9</deps.beecp.version>
<deps.libby.version>1.1.5</deps.libby.version>
<deps.acf.version>0.5.1-SNAPSHOT</deps.acf.version>
<deps.bstats.version>3.0.0</deps.bstats.version>
<deps.mysql-driver.version>8.0.31</deps.mysql-driver.version> <deps.mysql-driver.version>8.0.31</deps.mysql-driver.version>
<deps.mariadb-driver.version>3.1.0</deps.mariadb-driver.version> <deps.mariadb-driver.version>3.1.0</deps.mariadb-driver.version>
<deps.h2-driver.version>2.1.214</deps.h2-driver.version> <deps.h2-driver.version>2.1.214</deps.h2-driver.version>
<code.package>cc.carm.plugin.minesql</code.package>
</properties> </properties>
<groupId>cc.carm.plugin</groupId> <groupId>cc.carm.plugin</groupId>
<artifactId>minesql-parent</artifactId> <artifactId>minesql-parent</artifactId>
<packaging>pom</packaging> <packaging>pom</packaging>
<version>1.3.1</version> <version>1.4.0</version>
<modules> <modules>
<module>api</module> <module>api</module>
<module>core</module> <module>core</module>
@ -99,6 +105,11 @@
<url>https://repo.aikar.co/content/groups/aikar/</url> <url>https://repo.aikar.co/content/groups/aikar/</url>
</repository> </repository>
<repository>
<id>AlessioDP</id>
<url>https://repo.alessiodp.com/releases/</url>
</repository>
<repository> <repository>
<id>central</id> <id>central</id>
<url>https://repo1.maven.org/maven2/</url> <url>https://repo1.maven.org/maven2/</url>
@ -162,8 +173,8 @@
<!-- https://mvnrepository.com/artifact/mysql/mysql-connector-java --> <!-- https://mvnrepository.com/artifact/mysql/mysql-connector-java -->
<dependency> <dependency>
<groupId>mysql</groupId> <groupId>com.mysql</groupId>
<artifactId>mysql-connector-java</artifactId> <artifactId>mysql-connector-j</artifactId>
<version>${deps.mysql-driver.version}</version> <version>${deps.mysql-driver.version}</version>
</dependency> </dependency>