修改了配置文件config.yml以及多个Java文件ElementOriginLib.java, OriginLibConfig.java, RedisBungeeUtil.java的相关内容。
This commit is contained in:
parent
f240371292
commit
bc82dbb170
|
@ -1,5 +1,6 @@
|
||||||
package com.io.yutian.elementoriginlib;
|
package com.io.yutian.elementoriginlib;
|
||||||
|
|
||||||
|
import com.io.yutian.elementoriginlib.config.OriginLibConfig;
|
||||||
import com.io.yutian.elementoriginlib.lang.Lang;
|
import com.io.yutian.elementoriginlib.lang.Lang;
|
||||||
import com.io.yutian.elementoriginlib.listener.GuiHandlerListener;
|
import com.io.yutian.elementoriginlib.listener.GuiHandlerListener;
|
||||||
import com.io.yutian.elementoriginlib.listener.PlayerChatInputListener;
|
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.*;
|
||||||
import net.byteflux.libby.logging.LogLevel;
|
import net.byteflux.libby.logging.LogLevel;
|
||||||
import org.bukkit.plugin.java.JavaPlugin;
|
import org.bukkit.plugin.java.JavaPlugin;
|
||||||
|
import org.jetbrains.annotations.NotNull;
|
||||||
import org.slf4j.LoggerFactory;
|
import org.slf4j.LoggerFactory;
|
||||||
|
|
||||||
public final class ElementOriginLib extends JavaPlugin {
|
public final class ElementOriginLib extends JavaPlugin {
|
||||||
|
@ -20,6 +22,8 @@ public final class ElementOriginLib extends JavaPlugin {
|
||||||
|
|
||||||
private RedisIO redisIO;
|
private RedisIO redisIO;
|
||||||
|
|
||||||
|
private OriginLibConfig config;
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void onEnable() {
|
public void onEnable() {
|
||||||
instance = this;
|
instance = this;
|
||||||
|
@ -59,10 +63,18 @@ public final class ElementOriginLib extends JavaPlugin {
|
||||||
}
|
}
|
||||||
|
|
||||||
public void reload() {
|
public void reload() {
|
||||||
|
config = new OriginLibConfig();
|
||||||
|
saveDefaultConfig();
|
||||||
|
reloadConfig();
|
||||||
|
config.load(getConfig());
|
||||||
Lang.registerLangFile(this);
|
Lang.registerLangFile(this);
|
||||||
Lang.reload();
|
Lang.reload();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public OriginLibConfig getLibConfig() {
|
||||||
|
return config;
|
||||||
|
}
|
||||||
|
|
||||||
public RedisIO getRedisIO() {
|
public RedisIO getRedisIO() {
|
||||||
return redisIO;
|
return redisIO;
|
||||||
}
|
}
|
||||||
|
|
|
@ -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;
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
|
@ -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;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
3
src/main/resources/config.yml
Normal file
3
src/main/resources/config.yml
Normal file
|
@ -0,0 +1,3 @@
|
||||||
|
redis-bungee:
|
||||||
|
networkId: "main"
|
||||||
|
proxy-id: "proxy-1"
|
Loading…
Reference in New Issue
Block a user