mirror of
https://github.com/CarmJos/MineSQL.git
synced 2024-09-19 20:25:45 +00:00
commit
2f55d732ba
@ -1,15 +1,62 @@
|
|||||||
package cc.carm.plugin.easysql.api;
|
package cc.carm.plugin.easysql.api;
|
||||||
|
|
||||||
import cc.carm.lib.easysql.api.SQLManager;
|
import cc.carm.lib.easysql.api.SQLManager;
|
||||||
|
import org.jetbrains.annotations.NotNull;
|
||||||
import org.jetbrains.annotations.Nullable;
|
import org.jetbrains.annotations.Nullable;
|
||||||
|
|
||||||
|
import java.util.Map;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 入口类
|
* 入口类
|
||||||
*/
|
*/
|
||||||
public class EasySQLAPI {
|
public interface EasySQLAPI {
|
||||||
|
/**
|
||||||
|
* 获取指定名称的 SQLManager 实例
|
||||||
|
* @param name 要获取的 SQLManager 实例名称
|
||||||
|
* @return SQLManager 实例
|
||||||
|
*/
|
||||||
|
@Nullable SQLManager getSQLManager(@Nullable String name);
|
||||||
|
|
||||||
public static @Nullable SQLManager getSQLManager(@Nullable String name) {
|
/**
|
||||||
return null;
|
* 获取所有 SQLManager 实例
|
||||||
}
|
* @return SQLManager 实例集合
|
||||||
|
*/
|
||||||
|
@NotNull Map<String, SQLManager> getSQLManagers();
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 获取指定名称的 SQLManager 实例的命名空间
|
||||||
|
* @param name SQLManager 名称
|
||||||
|
* @return 命名空间
|
||||||
|
*/
|
||||||
|
@Nullable
|
||||||
|
String getNameSpace(@Nullable String name);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 获取指定 SQLManager 的注册名
|
||||||
|
* @param sqlManager SQLManager 实例
|
||||||
|
* @return 注册名
|
||||||
|
*/
|
||||||
|
@Nullable
|
||||||
|
String getName(@NotNull SQLManager sqlManager);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 注册 SQLManager 实例
|
||||||
|
* @param namespace 命名空间,通常为插件名称
|
||||||
|
* @param name 实例名称
|
||||||
|
* @param sqlManager SQLManager 实例
|
||||||
|
*/
|
||||||
|
void registerSQLManager(@NotNull String namespace,@NotNull String name, @NotNull SQLManager sqlManager);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 注销指定的 SQLManager 实例
|
||||||
|
* @param name 实例名称
|
||||||
|
*/
|
||||||
|
void unregisterSQLManager(@NotNull String name);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 注销指定命名空间下的所有 SQLManager 实例
|
||||||
|
* @param namespace 命名空间
|
||||||
|
*/
|
||||||
|
void unregisterSQLManagerAll(@NotNull String namespace);
|
||||||
|
|
||||||
}
|
}
|
||||||
|
@ -0,0 +1,15 @@
|
|||||||
|
package cc.carm.plugin.easysql.api;
|
||||||
|
|
||||||
|
import cc.carm.lib.easysql.api.SQLManager;
|
||||||
|
import org.jetbrains.annotations.NotNull;
|
||||||
|
import org.jetbrains.annotations.Nullable;
|
||||||
|
|
||||||
|
public interface EasySQLPluginPlatform {
|
||||||
|
/**
|
||||||
|
* 获取 SQL 管理器
|
||||||
|
* @param name 注册键
|
||||||
|
* @return SQL管理器
|
||||||
|
*/
|
||||||
|
@Nullable
|
||||||
|
SQLManager getSqlManager(@NotNull String name);
|
||||||
|
}
|
@ -1,15 +0,0 @@
|
|||||||
package cc.carm.plugin.easysql.api;
|
|
||||||
|
|
||||||
public class SQLConfiguration {
|
|
||||||
|
|
||||||
String driver;
|
|
||||||
|
|
||||||
String address;
|
|
||||||
int port;
|
|
||||||
|
|
||||||
String database;
|
|
||||||
|
|
||||||
String username;
|
|
||||||
String password;
|
|
||||||
|
|
||||||
}
|
|
@ -48,6 +48,13 @@
|
|||||||
<scope>compile</scope>
|
<scope>compile</scope>
|
||||||
</dependency>
|
</dependency>
|
||||||
|
|
||||||
|
<!-- https://mvnrepository.com/artifact/com.google.guava/guava -->
|
||||||
|
<dependency>
|
||||||
|
<groupId>com.google.guava</groupId>
|
||||||
|
<artifactId>guava</artifactId>
|
||||||
|
<scope>compile</scope>
|
||||||
|
</dependency>
|
||||||
|
|
||||||
</dependencies>
|
</dependencies>
|
||||||
|
|
||||||
<build>
|
<build>
|
||||||
|
@ -1,9 +0,0 @@
|
|||||||
package cc.carm.plugin.easysql;
|
|
||||||
|
|
||||||
public class EasySQL {
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
}
|
|
@ -0,0 +1,141 @@
|
|||||||
|
package cc.carm.plugin.easysql;
|
||||||
|
|
||||||
|
import cc.carm.lib.easysql.api.SQLManager;
|
||||||
|
import cc.carm.plugin.easysql.api.EasySQLAPI;
|
||||||
|
import cc.carm.plugin.easysql.api.EasySQLPluginPlatform;
|
||||||
|
import com.google.common.collect.BiMap;
|
||||||
|
import com.google.common.collect.HashBiMap;
|
||||||
|
import com.google.common.collect.ImmutableMap;
|
||||||
|
import org.jetbrains.annotations.NotNull;
|
||||||
|
import org.jetbrains.annotations.Nullable;
|
||||||
|
|
||||||
|
import java.util.HashSet;
|
||||||
|
import java.util.Map;
|
||||||
|
import java.util.Set;
|
||||||
|
import java.util.concurrent.locks.Lock;
|
||||||
|
import java.util.concurrent.locks.ReentrantLock;
|
||||||
|
|
||||||
|
public class EasySQLManager implements EasySQLAPI {
|
||||||
|
public static final String VERSION = "1.0.0";
|
||||||
|
private final Lock LOCK =new ReentrantLock();
|
||||||
|
private final BiMap<String, Set<String>> nameSpaceRegistry = HashBiMap.create();
|
||||||
|
private final BiMap<String, SQLManager> sqlManagerRegistry = HashBiMap.create();
|
||||||
|
|
||||||
|
// 这个主要是避免外部插件注册此 EasySQLManager
|
||||||
|
// 没有其他意义
|
||||||
|
public EasySQLManager(@NotNull EasySQLPluginPlatform pluginPlatform){
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 获取指定名称的 SQLManager 实例
|
||||||
|
*
|
||||||
|
* @param name 要获取的 SQLManager 实例名称
|
||||||
|
* @return SQLManager 实例
|
||||||
|
*/
|
||||||
|
@Override
|
||||||
|
public @Nullable SQLManager getSQLManager(@Nullable String name) {
|
||||||
|
LOCK.lock();
|
||||||
|
SQLManager sqlManager = this.sqlManagerRegistry.get(name);
|
||||||
|
LOCK.unlock();
|
||||||
|
return sqlManager;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 获取所有 SQLManager 实例
|
||||||
|
*
|
||||||
|
* @return SQLManager 实例集合
|
||||||
|
*/
|
||||||
|
@Override
|
||||||
|
public @NotNull Map<String, SQLManager> getSQLManagers() {
|
||||||
|
return ImmutableMap.copyOf(this.sqlManagerRegistry);
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 获取指定名称的 SQLManager 实例的命名空间
|
||||||
|
*
|
||||||
|
* @param name SQLManager 名称
|
||||||
|
* @return 命名空间
|
||||||
|
*/
|
||||||
|
@Override
|
||||||
|
public @Nullable String getNameSpace(@Nullable String name) {
|
||||||
|
LOCK.lock();
|
||||||
|
String namespace = null;
|
||||||
|
for (Map.Entry<String, Set<String>> stringSetEntry : this.nameSpaceRegistry.entrySet()) {
|
||||||
|
if (stringSetEntry.getValue().contains(name)) {
|
||||||
|
namespace = stringSetEntry.getKey();
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
LOCK.unlock();
|
||||||
|
return namespace;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 获取指定 SQLManager 的注册名
|
||||||
|
*
|
||||||
|
* @param sqlManager SQLManager 实例
|
||||||
|
* @return 注册名
|
||||||
|
*/
|
||||||
|
@Override
|
||||||
|
public @Nullable String getName(@NotNull SQLManager sqlManager) {
|
||||||
|
LOCK.lock();
|
||||||
|
String name = sqlManagerRegistry.inverse().get(sqlManager);
|
||||||
|
LOCK.unlock();
|
||||||
|
return name;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 注册 SQLManager 实例
|
||||||
|
*
|
||||||
|
* @param namespace 命名空间,通常为插件名称
|
||||||
|
* @param name 实例名称
|
||||||
|
* @param sqlManager SQLManager 实例
|
||||||
|
*/
|
||||||
|
@Override
|
||||||
|
public void registerSQLManager(@NotNull String namespace, @NotNull String name, @NotNull SQLManager sqlManager) {
|
||||||
|
LOCK.lock();
|
||||||
|
// 注册命名空间
|
||||||
|
this.sqlManagerRegistry.put(name, sqlManager);
|
||||||
|
// 注册名称
|
||||||
|
this.nameSpaceRegistry.putIfAbsent(namespace, this.nameSpaceRegistry.getOrDefault(namespace, new HashSet<>()));
|
||||||
|
// 注册名称 -> 命名空间
|
||||||
|
this.nameSpaceRegistry.get(namespace).add(name);
|
||||||
|
LOCK.unlock();
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 注销指定的 SQLManager 实例
|
||||||
|
*
|
||||||
|
* @param name 实例名称
|
||||||
|
*/
|
||||||
|
@Override
|
||||||
|
public void unregisterSQLManager(@NotNull String name) {
|
||||||
|
LOCK.lock();
|
||||||
|
for (Map.Entry<String, Set<String>> stringSetEntry : this.nameSpaceRegistry.entrySet()) {
|
||||||
|
stringSetEntry.getValue().remove(name);
|
||||||
|
}
|
||||||
|
this.nameSpaceRegistry.entrySet().removeIf(stringSetEntry -> stringSetEntry.getValue().isEmpty());
|
||||||
|
LOCK.unlock();
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 注销指定命名空间下的所有 SQLManager 实例
|
||||||
|
*
|
||||||
|
* @param namespace 命名空间
|
||||||
|
*/
|
||||||
|
@Override
|
||||||
|
public void unregisterSQLManagerAll(@NotNull String namespace) {
|
||||||
|
LOCK.lock();
|
||||||
|
Set<String> names = this.nameSpaceRegistry.get(namespace);
|
||||||
|
if (names != null) {
|
||||||
|
// 删除所有的 SQLManager 实例
|
||||||
|
for (String name : names) {
|
||||||
|
this.sqlManagerRegistry.remove(name);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
// 删除命名空间
|
||||||
|
this.nameSpaceRegistry.remove(namespace);
|
||||||
|
LOCK.unlock();
|
||||||
|
}
|
||||||
|
}
|
9
easysql-plugin-impl/src/main/resources/config.yml
Normal file
9
easysql-plugin-impl/src/main/resources/config.yml
Normal file
@ -0,0 +1,9 @@
|
|||||||
|
instances:
|
||||||
|
name1:
|
||||||
|
url: jdbc:mysql://localhost:3306/name1
|
||||||
|
username: mc
|
||||||
|
password: password
|
||||||
|
name2:
|
||||||
|
url: jdbc:mysql://localhost:3306/name2
|
||||||
|
username: mc
|
||||||
|
password: password
|
@ -47,14 +47,6 @@
|
|||||||
<version>2.2.1</version>
|
<version>2.2.1</version>
|
||||||
<scope>compile</scope>
|
<scope>compile</scope>
|
||||||
</dependency>
|
</dependency>
|
||||||
|
|
||||||
<dependency>
|
|
||||||
<groupId>cc.carm.lib</groupId>
|
|
||||||
<artifactId>easyplugin-main</artifactId>
|
|
||||||
<optional>true</optional>
|
|
||||||
<scope>compile</scope>
|
|
||||||
</dependency>
|
|
||||||
|
|
||||||
</dependencies>
|
</dependencies>
|
||||||
|
|
||||||
<build>
|
<build>
|
||||||
|
@ -1,4 +1,121 @@
|
|||||||
package cc.carm.plugin.easysql;
|
package cc.carm.plugin.easysql;
|
||||||
|
|
||||||
public class EasySQLBukkit {
|
import cc.carm.lib.easysql.api.SQLManager;
|
||||||
|
import cc.carm.lib.easysql.manager.SQLManagerImpl;
|
||||||
|
import cc.carm.plugin.easysql.api.EasySQLAPI;
|
||||||
|
import cc.carm.plugin.easysql.api.EasySQLPluginPlatform;
|
||||||
|
import cn.beecp.BeeDataSource;
|
||||||
|
import org.bukkit.Bukkit;
|
||||||
|
import org.bukkit.configuration.ConfigurationSection;
|
||||||
|
import org.bukkit.event.EventHandler;
|
||||||
|
import org.bukkit.event.EventPriority;
|
||||||
|
import org.bukkit.event.Listener;
|
||||||
|
import org.bukkit.event.server.PluginDisableEvent;
|
||||||
|
import org.bukkit.plugin.Plugin;
|
||||||
|
import org.bukkit.plugin.java.JavaPlugin;
|
||||||
|
import org.jetbrains.annotations.NotNull;
|
||||||
|
import org.jetbrains.annotations.Nullable;
|
||||||
|
|
||||||
|
public class EasySQLBukkit extends JavaPlugin implements EasySQLPluginPlatform, Listener {
|
||||||
|
private EasySQLAPI apiImpl;
|
||||||
|
|
||||||
|
private boolean setup = false;
|
||||||
|
|
||||||
|
public void setup() {
|
||||||
|
if (setup) return;
|
||||||
|
apiImpl = new EasySQLManager(this);
|
||||||
|
saveDefaultConfig();
|
||||||
|
// 读取配置文件 - 预注册 instance
|
||||||
|
ConfigurationSection instancesConfig = getConfig().getConfigurationSection("instances");
|
||||||
|
if (instancesConfig != null) {
|
||||||
|
for (String instanceName : instancesConfig.getKeys(false)) {
|
||||||
|
SQLManager sqlManager = new SQLManagerImpl(
|
||||||
|
new BeeDataSource("com.mysql.jdbc.Driver"
|
||||||
|
, instancesConfig.getString("url")
|
||||||
|
, instancesConfig.getString("username")
|
||||||
|
, instancesConfig.getString("password")
|
||||||
|
)
|
||||||
|
);
|
||||||
|
this.register(this, instanceName, sqlManager);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
// 获取指定UUID的玩家的盔甲
|
||||||
|
setup = true;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void onLoad() {
|
||||||
|
setup(); // 尽可能早的初始化预注册的 SQLManager
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void onEnable() {
|
||||||
|
setup(); // 在特定情况下 Bukkit 可能不会调用 onLoad 函数
|
||||||
|
Bukkit.getPluginManager().registerEvents(this,this);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void onDisable() {
|
||||||
|
getLogger().info("Shutting down...");
|
||||||
|
this.unregister(this);
|
||||||
|
apiImpl.getSQLManagers().keySet().forEach(apiImpl::unregisterSQLManager);
|
||||||
|
super.onDisable();
|
||||||
|
}
|
||||||
|
@EventHandler(priority = EventPriority.MONITOR)
|
||||||
|
public void onPluginDisable(PluginDisableEvent event){
|
||||||
|
this.unregister(event.getPlugin());
|
||||||
|
}
|
||||||
|
// =========== 平台注册方法 ===========
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 注册 SQLManager 实例
|
||||||
|
* @param plugin 插件实例
|
||||||
|
* @param name SQLManager 映射名称
|
||||||
|
* @param sqlManager SQLManager 实例
|
||||||
|
*/
|
||||||
|
public void register(@NotNull Plugin plugin, @NotNull String name, @NotNull SQLManager sqlManager){
|
||||||
|
if(this.apiImpl.getSQLManagers().containsKey(name)){
|
||||||
|
// 名称冲突处理
|
||||||
|
throw new IllegalArgumentException("Instance name conflict: " + name+", Already registered by "+this.apiImpl.getNameSpace(name));
|
||||||
|
}
|
||||||
|
this.apiImpl.registerSQLManager(plugin.getDescription().getName(), name, sqlManager);
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 注销指定 SQLManager 实例
|
||||||
|
* @param sqlManager SQLManager 实例
|
||||||
|
*/
|
||||||
|
public void unregister(@NotNull SQLManager sqlManager){
|
||||||
|
String name = this.apiImpl.getName(sqlManager);
|
||||||
|
if(name != null){
|
||||||
|
this.apiImpl.unregisterSQLManager(name);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 注销指定名称的 SQLManager
|
||||||
|
* @param name SQLManager 名称
|
||||||
|
*/
|
||||||
|
public void unregister(@NotNull String name){
|
||||||
|
this.apiImpl.unregisterSQLManager(name);
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 注销指定插件注册的所有 SQLManager 实例
|
||||||
|
* @param plugin 插件
|
||||||
|
*/
|
||||||
|
public void unregister(@NotNull Plugin plugin){
|
||||||
|
this.apiImpl.unregisterSQLManagerAll(plugin.getName());
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 获取 SQL 管理器
|
||||||
|
*
|
||||||
|
* @param name 注册键
|
||||||
|
* @return SQL管理器
|
||||||
|
*/
|
||||||
|
@Override
|
||||||
|
public @Nullable SQLManager getSqlManager(@NotNull String name) {
|
||||||
|
return this.apiImpl.getSQLManager(name);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
@ -1,4 +1,138 @@
|
|||||||
package cc.carm.plugin.easysql;
|
package cc.carm.plugin.easysql;
|
||||||
|
|
||||||
public class EasySQLBungee {
|
import cc.carm.lib.easysql.api.SQLManager;
|
||||||
|
import cc.carm.lib.easysql.manager.SQLManagerImpl;
|
||||||
|
import cc.carm.plugin.easysql.api.EasySQLAPI;
|
||||||
|
import cc.carm.plugin.easysql.api.EasySQLPluginPlatform;
|
||||||
|
import cn.beecp.BeeDataSource;
|
||||||
|
import net.md_5.bungee.api.plugin.Plugin;
|
||||||
|
import net.md_5.bungee.config.Configuration;
|
||||||
|
import net.md_5.bungee.config.ConfigurationProvider;
|
||||||
|
import net.md_5.bungee.config.YamlConfiguration;
|
||||||
|
import org.jetbrains.annotations.NotNull;
|
||||||
|
import org.jetbrains.annotations.Nullable;
|
||||||
|
|
||||||
|
import java.io.File;
|
||||||
|
import java.io.IOException;
|
||||||
|
import java.io.InputStream;
|
||||||
|
import java.nio.file.Files;
|
||||||
|
|
||||||
|
public class EasySQLBungee extends Plugin implements EasySQLPluginPlatform {
|
||||||
|
private EasySQLAPI apiImpl;
|
||||||
|
|
||||||
|
private boolean setup = false;
|
||||||
|
|
||||||
|
private void saveDefaultConfig(){
|
||||||
|
if (!getDataFolder().exists())
|
||||||
|
getDataFolder().mkdir();
|
||||||
|
|
||||||
|
File file = new File(getDataFolder(), "config.yml");
|
||||||
|
|
||||||
|
|
||||||
|
if (!file.exists()) {
|
||||||
|
try (InputStream in = getResourceAsStream("config.yml")) {
|
||||||
|
Files.copy(in, file.toPath());
|
||||||
|
} catch (IOException e) {
|
||||||
|
e.printStackTrace();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setup() {
|
||||||
|
if (setup) return;
|
||||||
|
apiImpl = new EasySQLManager(this);
|
||||||
|
saveDefaultConfig();
|
||||||
|
// 读取配置文件 - 预注册 instance
|
||||||
|
Configuration configuration;
|
||||||
|
try {
|
||||||
|
configuration = ConfigurationProvider.getProvider(YamlConfiguration.class).load(new File(getDataFolder(), "config.yml"));
|
||||||
|
} catch (IOException e) {
|
||||||
|
e.printStackTrace();
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
Configuration instancesConfig = configuration.getSection("instances");
|
||||||
|
if (instancesConfig != null) {
|
||||||
|
for (String instanceName : instancesConfig.getKeys()) {
|
||||||
|
SQLManager sqlManager = new SQLManagerImpl(
|
||||||
|
new BeeDataSource("com.mysql.jdbc.Driver"
|
||||||
|
, instancesConfig.getString("url")
|
||||||
|
, instancesConfig.getString("username")
|
||||||
|
, instancesConfig.getString("password")
|
||||||
|
)
|
||||||
|
);
|
||||||
|
this.register(this, instanceName, sqlManager);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
setup = true;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void onLoad() {
|
||||||
|
setup();
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void onEnable() {
|
||||||
|
setup();
|
||||||
|
}
|
||||||
|
@Override
|
||||||
|
public void onDisable() {
|
||||||
|
getLogger().info("Shutting down...");
|
||||||
|
this.unregister(this);
|
||||||
|
apiImpl.getSQLManagers().keySet().forEach(apiImpl::unregisterSQLManager);
|
||||||
|
super.onDisable();
|
||||||
|
}
|
||||||
|
// =========== 平台注册方法 ===========
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 注册 SQLManager 实例
|
||||||
|
* @param plugin 插件实例
|
||||||
|
* @param name SQLManager 映射名称
|
||||||
|
* @param sqlManager SQLManager 实例
|
||||||
|
*/
|
||||||
|
public void register(@NotNull Plugin plugin, @NotNull String name, @NotNull SQLManager sqlManager){
|
||||||
|
if(this.apiImpl.getSQLManagers().containsKey(name)){
|
||||||
|
// 名称冲突处理
|
||||||
|
throw new IllegalArgumentException("Instance name conflict: " + name+", Already registered by "+this.apiImpl.getNameSpace(name));
|
||||||
|
}
|
||||||
|
this.apiImpl.registerSQLManager(plugin.getDescription().getName(), name, sqlManager);
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 注销指定 SQLManager 实例
|
||||||
|
* @param sqlManager SQLManager 实例
|
||||||
|
*/
|
||||||
|
public void unregister(@NotNull SQLManager sqlManager){
|
||||||
|
String name = this.apiImpl.getName(sqlManager);
|
||||||
|
if(name != null){
|
||||||
|
this.apiImpl.unregisterSQLManager(name);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 注销指定名称的 SQLManager
|
||||||
|
* @param name SQLManager 名称
|
||||||
|
*/
|
||||||
|
public void unregister(@NotNull String name){
|
||||||
|
this.apiImpl.unregisterSQLManager(name);
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 注销指定插件注册的所有 SQLManager 实例
|
||||||
|
* @param plugin 插件
|
||||||
|
*/
|
||||||
|
public void unregister(@NotNull Plugin plugin){
|
||||||
|
this.apiImpl.unregisterSQLManagerAll(plugin.getDescription().getName());
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 获取 SQL 管理器
|
||||||
|
*
|
||||||
|
* @param name 注册键
|
||||||
|
* @return SQL管理器
|
||||||
|
*/
|
||||||
|
@Override
|
||||||
|
public @Nullable SQLManager getSqlManager(@NotNull String name) {
|
||||||
|
return this.apiImpl.getSQLManager(name);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
@ -2,16 +2,19 @@ package cc.carm.plugin.easysql;
|
|||||||
|
|
||||||
|
|
||||||
import com.google.inject.Inject;
|
import com.google.inject.Inject;
|
||||||
|
import com.velocitypowered.api.event.Subscribe;
|
||||||
|
import com.velocitypowered.api.event.proxy.ProxyInitializeEvent;
|
||||||
import com.velocitypowered.api.plugin.Plugin;
|
import com.velocitypowered.api.plugin.Plugin;
|
||||||
import com.velocitypowered.api.proxy.ProxyServer;
|
import com.velocitypowered.api.proxy.ProxyServer;
|
||||||
|
|
||||||
import java.util.logging.Logger;
|
import java.util.logging.Logger;
|
||||||
|
|
||||||
|
|
||||||
@Plugin(id = "easysql-plugin", name = "EasySQL Plugin For Velocity", version = "1.0.0",
|
@Plugin(id = "easysql-plugin", name = "EasySQL Plugin For Velocity", version = "1.0.0",
|
||||||
description = "",
|
description = "",
|
||||||
url = "https://github.com/CarmJos/EasySQL-Plugin", authors = "CarmJos"
|
url = "https://github.com/CarmJos/EasySQL-Plugin", authors = "CarmJos"
|
||||||
)
|
)
|
||||||
public class EasySQLVelocity {
|
public class EasySQLVelocity {
|
||||||
|
|
||||||
private static EasySQLVelocity instance;
|
private static EasySQLVelocity instance;
|
||||||
|
|
||||||
@ -23,10 +26,10 @@ public class EasySQLVelocity {
|
|||||||
instance = this;
|
instance = this;
|
||||||
this.server = server;
|
this.server = server;
|
||||||
this.logger = logger;
|
this.logger = logger;
|
||||||
|
// register listeners
|
||||||
|
server.getEventManager().register(this,this);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
public static EasySQLVelocity getInstance() {
|
public static EasySQLVelocity getInstance() {
|
||||||
return instance;
|
return instance;
|
||||||
}
|
}
|
||||||
@ -39,5 +42,8 @@ public class EasySQLVelocity {
|
|||||||
return logger;
|
return logger;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Subscribe
|
||||||
|
public void onInitialize(ProxyInitializeEvent event) {
|
||||||
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
7
pom.xml
7
pom.xml
@ -157,6 +157,13 @@
|
|||||||
<version>${easysql.version}</version>
|
<version>${easysql.version}</version>
|
||||||
</dependency>
|
</dependency>
|
||||||
|
|
||||||
|
<!-- https://mvnrepository.com/artifact/com.google.guava/guava -->
|
||||||
|
<dependency>
|
||||||
|
<groupId>com.google.guava</groupId>
|
||||||
|
<artifactId>guava</artifactId>
|
||||||
|
<version>31.0.1-jre</version>
|
||||||
|
</dependency>
|
||||||
|
|
||||||
</dependencies>
|
</dependencies>
|
||||||
|
|
||||||
</dependencyManagement>
|
</dependencyManagement>
|
||||||
|
Loading…
Reference in New Issue
Block a user