feat: 添加redission
This commit is contained in:
@@ -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")
|
||||
}
|
||||
}
|
||||
|
@@ -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;
|
||||
}
|
||||
}
|
||||
|
Reference in New Issue
Block a user