修改了配置文件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