feat: 添加redission

This commit is contained in:
2023-08-07 17:16:39 +08:00
parent 3064452c05
commit 0768161203
10 changed files with 164 additions and 16 deletions

View File

@@ -27,8 +27,14 @@ dependencies {
exclude(group = "org.jetbrains")
}
//noinspection GradlePackageUpdate
implementation("com.zaxxer:HikariCP:${property("HikariCP_version")}") {
val hikariVersion = property("HikariCP_version")
implementation("com.zaxxer:HikariCP:${hikariVersion}") {
exclude(group = "org.slf4j")
}
val redissionVersion = property("redission_version")
implementation("org.redisson:redisson:${redissionVersion}") {
exclude(group = "io.netty")
exclude(group = "org.yaml")
exclude(group = "org.slf4j")
}
}

View File

@@ -8,10 +8,19 @@ import com.zaxxer.hikari.HikariDataSource;
import net.kyori.adventure.platform.AudienceProvider;
import net.md_5.bungee.config.Configuration;
import org.jetbrains.annotations.NotNull;
import org.redisson.Redisson;
import org.redisson.api.RedissonClient;
import org.redisson.config.Config;
import java.io.File;
import java.io.IOException;
import java.nio.file.Files;
import java.nio.file.StandardCopyOption;
@SuppressWarnings("unused")
public final class CoreBungeeAPI extends CoreAPI {
private final HikariDataSource datasource;
private final RedissonClient redissonClient;
private CoreBungeeAPI() {
HamsterCorePlugin plugin = HamsterCorePlugin.getInstance();
@@ -37,8 +46,21 @@ public final class CoreBungeeAPI extends CoreAPI {
hikariConfig.setMaxLifetime(datasourceConfig.getLong("max-lifetime", 30 * 60 * 1000));
hikariConfig.setValidationTimeout(datasourceConfig.getLong("validation-timeout", 5000));
hikariConfig.setPoolName("HamsterCore-Pool");
datasource = new HikariDataSource(hikariConfig);
File file = new File(plugin.getDataFolder(), "redission.yml");
try {
if (!file.exists()) {
Files.copy(
plugin.getResourceAsStream("redission.yml"),
file.toPath(), StandardCopyOption.REPLACE_EXISTING
);
}
redissonClient = Redisson.create(Config.fromYAML(file));
} catch (IOException e) {
throw new RuntimeException("redis 连接加载失败!", e);
}
}
public static CoreBungeeAPI getInstance() {
@@ -61,4 +83,9 @@ public final class CoreBungeeAPI extends CoreAPI {
public @NotNull HikariDataSource getDataSource() {
return datasource;
}
@Override
public @NotNull RedissonClient getRedissonClient() {
return redissonClient;
}
}