v1.9
This commit is contained in:
parent
ffe3514de8
commit
6894e9e776
12
pom.xml
12
pom.xml
|
@ -88,18 +88,18 @@
|
|||
<artifactId>HikariCP</artifactId>
|
||||
<version>4.0.3</version>
|
||||
</dependency>
|
||||
<!-- https://mvnrepository.com/artifact/com.h2database/h2 -->
|
||||
<dependency>
|
||||
<groupId>com.h2database</groupId>
|
||||
<artifactId>h2</artifactId>
|
||||
<version>2.3.230</version>
|
||||
</dependency>
|
||||
<!-- https://mvnrepository.com/artifact/org.xerial/sqlite-jdbc -->
|
||||
<dependency>
|
||||
<groupId>org.xerial</groupId>
|
||||
<artifactId>sqlite-jdbc</artifactId>
|
||||
<version>3.46.0.0</version>
|
||||
</dependency>
|
||||
<!-- https://mvnrepository.com/artifact/redis.clients/jedis -->
|
||||
<dependency>
|
||||
<groupId>redis.clients</groupId>
|
||||
<artifactId>jedis</artifactId>
|
||||
<version>5.1.3</version>
|
||||
</dependency>
|
||||
|
||||
</dependencies>
|
||||
|
||||
|
|
|
@ -0,0 +1,9 @@
|
|||
package com.io.yutian.aulib.redis;
|
||||
|
||||
public class RedisCacheHelper {
|
||||
|
||||
public static void updateCache(String key, String value) {
|
||||
|
||||
}
|
||||
|
||||
}
|
89
src/main/java/com/io/yutian/aulib/redis/RedisIO.java
Normal file
89
src/main/java/com/io/yutian/aulib/redis/RedisIO.java
Normal file
|
@ -0,0 +1,89 @@
|
|||
package com.io.yutian.aulib.redis;
|
||||
|
||||
import com.io.yutian.aulib.util.FileUtil;
|
||||
import org.bukkit.Bukkit;
|
||||
import org.bukkit.configuration.file.FileConfiguration;
|
||||
import org.bukkit.configuration.file.YamlConfiguration;
|
||||
import org.bukkit.plugin.Plugin;
|
||||
import redis.clients.jedis.Jedis;
|
||||
import redis.clients.jedis.JedisPool;
|
||||
import redis.clients.jedis.JedisPoolConfig;
|
||||
|
||||
import java.io.File;
|
||||
import java.time.Duration;
|
||||
import java.util.Set;
|
||||
import java.util.concurrent.FutureTask;
|
||||
|
||||
public class RedisIO {
|
||||
|
||||
private JedisPool jedisPool;
|
||||
|
||||
public void init(Plugin plugin) {
|
||||
File file = FileUtil.getFile(plugin, "", "redis.yml");
|
||||
if (!file.exists()) {
|
||||
plugin.saveResource("redis.yml", false);
|
||||
}
|
||||
FileConfiguration configuration = YamlConfiguration.loadConfiguration(file);
|
||||
String redisServer = configuration.getString("redis-server", "localhost");
|
||||
int redisPort = configuration.getInt("redis-port", 6379);
|
||||
String redisPassword = configuration.getString("redis-password");
|
||||
if (redisPassword != null && (redisPassword.isEmpty() || redisPassword.equals("none"))) {
|
||||
redisPassword = null;
|
||||
}
|
||||
try {
|
||||
String finalRedisPassword = redisPassword;
|
||||
FutureTask<JedisPool> task = new FutureTask<>(() -> {
|
||||
JedisPoolConfig config = new JedisPoolConfig();
|
||||
config.setMaxTotal(1024);
|
||||
config.setMaxWait(Duration.ofMillis(10000));
|
||||
return new JedisPool(config, redisServer, redisPort, 0, finalRedisPassword);
|
||||
});
|
||||
Bukkit.getServer().getScheduler().runTaskAsynchronously(plugin, task);
|
||||
jedisPool = task.get();
|
||||
} catch (Exception e) {
|
||||
e.printStackTrace();
|
||||
}
|
||||
}
|
||||
|
||||
public void close() {
|
||||
if (jedisPool != null && !jedisPool.isClosed()) {
|
||||
jedisPool.close();
|
||||
jedisPool.destroy();
|
||||
}
|
||||
}
|
||||
|
||||
public JedisPool getJedisPool() {
|
||||
return jedisPool;
|
||||
}
|
||||
|
||||
public Set<String> getKeys(String arg) {
|
||||
try (Jedis resource = jedisPool.getResource()) {
|
||||
return resource.keys(arg);
|
||||
}
|
||||
}
|
||||
|
||||
public void remove(String key) {
|
||||
try (Jedis resource = jedisPool.getResource()) {
|
||||
resource.del(key);
|
||||
}
|
||||
}
|
||||
|
||||
public void remove(String key, String field) {
|
||||
try (Jedis resource = jedisPool.getResource()) {
|
||||
resource.hdel(key, field);
|
||||
}
|
||||
}
|
||||
|
||||
public boolean has(String key) {
|
||||
try (Jedis resource = jedisPool.getResource()) {
|
||||
return resource.exists(key);
|
||||
}
|
||||
}
|
||||
|
||||
public boolean has(String key, String field) {
|
||||
try (Jedis resource = jedisPool.getResource()) {
|
||||
return resource.hexists(key, field);
|
||||
}
|
||||
}
|
||||
|
||||
}
|
106
src/main/java/com/io/yutian/aulib/util/CompressUtils.java
Normal file
106
src/main/java/com/io/yutian/aulib/util/CompressUtils.java
Normal file
|
@ -0,0 +1,106 @@
|
|||
package com.io.yutian.aulib.util;
|
||||
|
||||
import com.github.luben.zstd.Zstd;
|
||||
import org.apache.commons.codec.binary.Base64;
|
||||
import org.apache.commons.compress.archivers.ArchiveEntry;
|
||||
import org.apache.commons.compress.archivers.ArchiveInputStream;
|
||||
import org.apache.commons.compress.archivers.ArchiveOutputStream;
|
||||
import org.apache.commons.compress.archivers.zip.ZipArchiveEntry;
|
||||
import org.apache.commons.compress.archivers.zip.ZipArchiveInputStream;
|
||||
import org.apache.commons.compress.archivers.zip.ZipArchiveOutputStream;
|
||||
import org.apache.commons.compress.utils.IOUtils;
|
||||
|
||||
import java.io.*;
|
||||
import java.nio.file.*;
|
||||
import java.nio.file.attribute.BasicFileAttributes;
|
||||
import java.util.Objects;
|
||||
|
||||
public class CompressUtils {
|
||||
|
||||
public static String zstdString(String unzip) {
|
||||
byte[] compress = Zstd.compress(unzip.getBytes());
|
||||
return Base64.encodeBase64String(compress);
|
||||
}
|
||||
public static String unZstdString(String zip) {
|
||||
byte[] decode = Base64.decodeBase64(zip);
|
||||
Long size = Zstd.decompressedSize(decode);
|
||||
byte[] decompress = Zstd.decompress(decode, size.intValue());
|
||||
return new String(decompress);
|
||||
}
|
||||
|
||||
public static void zip(File file, File file1) {
|
||||
try {
|
||||
OutputStream outputStream = new FileOutputStream(file1);
|
||||
zip(file, outputStream);
|
||||
} catch (Exception e) {
|
||||
e.printStackTrace();
|
||||
}
|
||||
}
|
||||
|
||||
public static void zip(File file, OutputStream outputStream) throws IOException {
|
||||
try (BufferedOutputStream bufferedOutputStream = new BufferedOutputStream(outputStream);
|
||||
ArchiveOutputStream out = new ZipArchiveOutputStream(bufferedOutputStream)) {
|
||||
Path start = Paths.get(file.toURI());
|
||||
Files.walkFileTree(start, new SimpleFileVisitor<>() {
|
||||
|
||||
@Override
|
||||
public FileVisitResult preVisitDirectory(Path dir, BasicFileAttributes attrs) throws IOException {
|
||||
ArchiveEntry entry = new ZipArchiveEntry(dir.toFile(), start.relativize(dir).toString());
|
||||
out.putArchiveEntry(entry);
|
||||
out.closeArchiveEntry();
|
||||
return super.preVisitDirectory(dir, attrs);
|
||||
}
|
||||
|
||||
@Override
|
||||
public FileVisitResult visitFile(Path file, BasicFileAttributes attrs) throws IOException {
|
||||
try (InputStream input = new FileInputStream(file.toFile())) {
|
||||
ArchiveEntry entry = new ZipArchiveEntry(file.toFile(), start.relativize(file).toString());
|
||||
out.putArchiveEntry(entry);
|
||||
IOUtils.copy(input, out);
|
||||
out.closeArchiveEntry();
|
||||
}
|
||||
return super.visitFile(file, attrs);
|
||||
}
|
||||
|
||||
});
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
public static void unzip(File file, String destDir) {
|
||||
try {
|
||||
try (InputStream inputStream = new FileInputStream(file);) {
|
||||
unzip(inputStream, destDir);
|
||||
}
|
||||
} catch (Exception e) {
|
||||
e.printStackTrace();
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
public static void unzip(InputStream inputStream, String destDir) {
|
||||
try {
|
||||
try (BufferedInputStream bufferedInputStream = new BufferedInputStream(inputStream); ArchiveInputStream in = new ZipArchiveInputStream(bufferedInputStream)) {
|
||||
ArchiveEntry entry;
|
||||
while (Objects.nonNull(entry = in.getNextEntry())) {
|
||||
File file = Paths.get(destDir, entry.getName()).toFile();
|
||||
if (in.canReadEntryData(entry)) {
|
||||
if (entry.isDirectory()) {
|
||||
if (!file.exists()) {
|
||||
file.mkdirs();
|
||||
}
|
||||
} else {
|
||||
try (OutputStream out = new FileOutputStream(file)) {
|
||||
IOUtils.copy(in, out);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
} catch (Exception e) {
|
||||
e.printStackTrace();
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
}
|
|
@ -1,5 +1,5 @@
|
|||
name: AuLib
|
||||
main: com.io.yutian.aulib.AuLib
|
||||
version: 1.8
|
||||
version: 1.9
|
||||
api-version: 1.18
|
||||
author: SuperYuTian
|
0
src/main/resources/redis.yml
Normal file
0
src/main/resources/redis.yml
Normal file
File diff suppressed because it is too large
Load Diff
Loading…
Reference in New Issue
Block a user