From cd5574ab4314a0dc4b1832da5e3d7d3a5757e094 Mon Sep 17 00:00:00 2001 From: Jonathan Williams Date: Mon, 12 Jan 2015 12:19:13 -0800 Subject: [PATCH] Changed ServerConfiguration to only pull its groupName specifically. Changed StatsManager to only run once every second and to upload all stats. --- .../serverConfig/ServerConfiguration.java | 15 ++++------ .../src/mineplex/core/stats/StatsManager.java | 5 +--- .../serverdata/RedisServerRepository.java | 29 +++++++++++++++++++ .../mineplex/serverdata/ServerRepository.java | 2 ++ 4 files changed, 37 insertions(+), 14 deletions(-) diff --git a/Plugins/Mineplex.Core/src/mineplex/core/serverConfig/ServerConfiguration.java b/Plugins/Mineplex.Core/src/mineplex/core/serverConfig/ServerConfiguration.java index 5ba0d1397..7e682ec71 100644 --- a/Plugins/Mineplex.Core/src/mineplex/core/serverConfig/ServerConfiguration.java +++ b/Plugins/Mineplex.Core/src/mineplex/core/serverConfig/ServerConfiguration.java @@ -25,7 +25,7 @@ public class ServerConfiguration extends MiniPlugin String groupName = plugin.getConfig().getString("serverstatus.group"); String serverName = plugin.getConfig().getString("serverstatus.name"); - // Ugh serializing json to redis converts a players name that is only numbers to name.0 so we have to parse this off so things don't go boom. hackfix ftw + // Ugh serializing json to redis converts a players name that is only numbers to 'name.0' so we have to parse this off so things don't go boom. hackfix ftw try { String name = serverName.split("-")[0]; @@ -39,17 +39,12 @@ public class ServerConfiguration extends MiniPlugin // Nothing stupid.. } - for (ServerGroup serverGroup : ServerManager.getServerRepository(region).getServerGroups(null)) - { - if (serverGroup.getName().equalsIgnoreCase(groupName)) - { - _serverGroup = serverGroup; - break; - } - } + _serverGroup = ServerManager.getServerRepository(region).getServerGroup(groupName); if (_serverGroup == null) - return; + { + _serverGroup = new ServerGroup(null, null); + } try { diff --git a/Plugins/Mineplex.Core/src/mineplex/core/stats/StatsManager.java b/Plugins/Mineplex.Core/src/mineplex/core/stats/StatsManager.java index eb86d46ce..59062a61d 100644 --- a/Plugins/Mineplex.Core/src/mineplex/core/stats/StatsManager.java +++ b/Plugins/Mineplex.Core/src/mineplex/core/stats/StatsManager.java @@ -42,7 +42,7 @@ public class StatsManager extends MiniDbClientPlugin } }; - plugin.getServer().getScheduler().runTaskTimerAsynchronously(plugin, _saveRunnable, 1L, 1L); + plugin.getServer().getScheduler().runTaskTimerAsynchronously(plugin, _saveRunnable, 20L, 20L); } for (Stat stat : _repository.retrieveStats()) @@ -144,9 +144,6 @@ public class StatsManager extends MiniDbClientPlugin } statIterator.remove(); - - // Only process one player per tick/call. - break; } } diff --git a/Plugins/Mineplex.ServerData/src/mineplex/serverdata/RedisServerRepository.java b/Plugins/Mineplex.ServerData/src/mineplex/serverdata/RedisServerRepository.java index cf0267c36..168b78ff0 100644 --- a/Plugins/Mineplex.ServerData/src/mineplex/serverdata/RedisServerRepository.java +++ b/Plugins/Mineplex.ServerData/src/mineplex/serverdata/RedisServerRepository.java @@ -508,6 +508,35 @@ public class RedisServerRepository implements ServerRepository } } + @Override + public ServerGroup getServerGroup(String serverGroup) + { + ServerGroup server = null; + Jedis jedis = _jedisPool.getResource(); + try + { + String key = concatenate("servergroups", serverGroup); + Map data = jedis.hgetAll(key); + + server = new ServerGroup(data, null); + } + catch (JedisConnectionException exception) + { + exception.printStackTrace(); + _jedisPool.returnBrokenResource(jedis); + jedis = null; + } + finally + { + if (jedis != null) + { + _jedisPool.returnResource(jedis); + } + } + + return server; + } + /* * = "US" or "EU" * serverstatus.minecraft.. stores the JSON encoded information of an active MinecraftServer instance. diff --git a/Plugins/Mineplex.ServerData/src/mineplex/serverdata/ServerRepository.java b/Plugins/Mineplex.ServerData/src/mineplex/serverdata/ServerRepository.java index 8b889f5d5..cd5e4a881 100644 --- a/Plugins/Mineplex.ServerData/src/mineplex/serverdata/ServerRepository.java +++ b/Plugins/Mineplex.ServerData/src/mineplex/serverdata/ServerRepository.java @@ -63,6 +63,8 @@ public interface ServerRepository */ public Collection getServerGroups(Collection servers); + public ServerGroup getServerGroup(String serverGroup); + public Collection getDeadServers(); void updateServerGroup(ServerGroup serverGroup);