修改了配置文件config.yml以及多个Java文件ElementOriginLib.java, OriginLibConfig.java, RedisBungeeUtil.java的相关内容。

This commit is contained in:
YuTian 2025-02-06 21:06:58 +08:00
parent f240371292
commit bc82dbb170
4 changed files with 103 additions and 0 deletions

View File

@ -1,5 +1,6 @@
package com.io.yutian.elementoriginlib;
import com.io.yutian.elementoriginlib.config.OriginLibConfig;
import com.io.yutian.elementoriginlib.lang.Lang;
import com.io.yutian.elementoriginlib.listener.GuiHandlerListener;
import com.io.yutian.elementoriginlib.listener.PlayerChatInputListener;
@ -9,6 +10,7 @@ import com.io.yutian.elementoriginlib.redis.RedisIO;
import net.byteflux.libby.*;
import net.byteflux.libby.logging.LogLevel;
import org.bukkit.plugin.java.JavaPlugin;
import org.jetbrains.annotations.NotNull;
import org.slf4j.LoggerFactory;
public final class ElementOriginLib extends JavaPlugin {
@ -20,6 +22,8 @@ public final class ElementOriginLib extends JavaPlugin {
private RedisIO redisIO;
private OriginLibConfig config;
@Override
public void onEnable() {
instance = this;
@ -59,10 +63,18 @@ public final class ElementOriginLib extends JavaPlugin {
}
public void reload() {
config = new OriginLibConfig();
saveDefaultConfig();
reloadConfig();
config.load(getConfig());
Lang.registerLangFile(this);
Lang.reload();
}
public OriginLibConfig getLibConfig() {
return config;
}
public RedisIO getRedisIO() {
return redisIO;
}

View File

@ -0,0 +1,23 @@
package com.io.yutian.elementoriginlib.config;
import org.bukkit.configuration.file.FileConfiguration;
public class OriginLibConfig {
private String redisBungeeNetworkId;
private String redisBungeeProxyId;
public void load(FileConfiguration config) {
redisBungeeNetworkId = config.getString("redisBungeeNetworkId");
redisBungeeProxyId = config.getString("redisBungeeProxyId");
}
public String getRedisBungeeNetworkId() {
return redisBungeeNetworkId;
}
public String getRedisBungeeProxyId() {
return redisBungeeProxyId;
}
}

View File

@ -0,0 +1,65 @@
package com.io.yutian.elementoriginlib.redis;
import com.google.common.net.InetAddresses;
import com.io.yutian.elementoriginlib.ElementOriginLib;
import redis.clients.jedis.Jedis;
import java.net.InetAddress;
import java.util.HashSet;
import java.util.Set;
import java.util.UUID;
public class RedisBungeeUtil {
public static String getProxyFromRedis(UUID uuid) {
try (Jedis jedis = ElementOriginLib.inst().getRedisIO().getJedisPool().getResource()) {
return jedis.hget("redis-bungee::" + ElementOriginLib.inst().getLibConfig().getRedisBungeeNetworkId() + "::player::" + uuid + "::data", "proxy");
}
}
public static String getServerFromRedis(UUID uuid) {
try (Jedis jedis = ElementOriginLib.inst().getRedisIO().getJedisPool().getResource()) {
return jedis.hget("redis-bungee::" + ElementOriginLib.inst().getLibConfig().getRedisBungeeNetworkId() + "::player::" + uuid + "::data", "server");
}
}
public static String getLastServerFromRedis(UUID uuid) {
try (Jedis jedis = ElementOriginLib.inst().getRedisIO().getJedisPool().getResource()) {
return jedis.hget("redis-bungee::" + ElementOriginLib.inst().getLibConfig().getRedisBungeeNetworkId() + "::player::" + uuid + "::data", "last-server");
}
}
public static InetAddress getIpAddressFromRedis(UUID uuid) {
try (Jedis jedis = ElementOriginLib.inst().getRedisIO().getJedisPool().getResource()) {
String ip = jedis.hget("redis-bungee::" + ElementOriginLib.inst().getLibConfig().getRedisBungeeNetworkId() + "::player::" + uuid + "::data", "ip");
if (ip == null) return null;
return InetAddresses.forString(ip);
}
}
public static long getLastOnlineFromRedis(UUID uuid) {
try (Jedis jedis = ElementOriginLib.inst().getRedisIO().getJedisPool().getResource()) {
String unixString = jedis.hget("redis-bungee::" + ElementOriginLib.inst().getLibConfig().getRedisBungeeNetworkId() + "::player::" + uuid + "::data", "last-online");
if (unixString == null) return -1;
return Long.parseLong(unixString);
}
}
public static boolean isPlayerTrulyOnProxy(String proxyId, UUID uuid) {
try (Jedis jedis = ElementOriginLib.inst().getRedisIO().getJedisPool().getResource()) {
return jedis.sismember("redis-bungee::" + ElementOriginLib.inst().getLibConfig().getRedisBungeeNetworkId() + "::proxies::" + proxyId + "::online-players", uuid.toString());
}
}
public static Set<UUID> getProxyMembers(String proxyId) {
try (Jedis jedis = ElementOriginLib.inst().getRedisIO().getJedisPool().getResource()) {
Set<String> uuidsStrings = jedis.smembers("redisbungee::" + ElementOriginLib.inst().getLibConfig().getRedisBungeeNetworkId() + "::proxies::" + proxyId + "::online-players");
HashSet<UUID> uuids = new HashSet<>();
for (String proxyMember : uuidsStrings) {
uuids.add(UUID.fromString(proxyMember));
}
return uuids;
}
}
}

View File

@ -0,0 +1,3 @@
redis-bungee:
networkId: "main"
proxy-id: "proxy-1"