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

@@ -34,8 +34,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,13 +8,24 @@ import net.kyori.adventure.platform.bukkit.BukkitAudiences;
import org.bukkit.configuration.ConfigurationSection;
import org.bukkit.configuration.file.FileConfiguration;
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;
import java.util.Objects;
@SuppressWarnings("unused")
public final class CoreBukkitAPI extends CoreAPI {
private final HikariDataSource datasource;
private final RedissonClient redissonClient;
private CoreBukkitAPI() {
FileConfiguration config = HamsterCorePlugin.getInstance().getConfig();
HamsterCorePlugin plugin = HamsterCorePlugin.getInstance();
FileConfiguration config = plugin.getConfig();
ConfigurationSection datasourceConfig = config.getConfigurationSection("datasource");
if (datasourceConfig == null) {
@@ -36,8 +47,20 @@ public final class CoreBukkitAPI 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(
Objects.requireNonNull(plugin.getResource("redission.yml")),
file.toPath(), StandardCopyOption.REPLACE_EXISTING
);
}
redissonClient = Redisson.create(Config.fromYAML(file));
} catch (IOException e) {
throw new RuntimeException("redis 连接加载失败!", e);
}
}
public static CoreBukkitAPI getInstance() {
@@ -61,9 +84,8 @@ public final class CoreBukkitAPI extends CoreAPI {
return datasource;
}
public void reportError(@NotNull String projectID, @NotNull Throwable exception) {
}
public void reportFile(@NotNull String projectID, @NotNull String filename, byte @NotNull [] bytes) {
@Override
public @NotNull RedissonClient getRedissonClient() {
return redissonClient;
}
}