mirror of
https://github.com/proxiodev/RedisBungee.git
synced 2024-11-23 04:28:01 +00:00
Remove the update count task. It's not useful anymore since 1.7 requires a player list and it is easier simply to use that.
/glist still uses the counts.
This commit is contained in:
parent
bb97d35076
commit
73af35aeee
@ -34,8 +34,6 @@ public class RedisBungee extends Plugin implements Listener {
|
|||||||
private static JedisPool pool;
|
private static JedisPool pool;
|
||||||
private static String serverId;
|
private static String serverId;
|
||||||
private static List<String> servers = Lists.newArrayList();
|
private static List<String> servers = Lists.newArrayList();
|
||||||
private UpdateCountTask uct;
|
|
||||||
private static int count = -1;
|
|
||||||
private static RedisBungee plugin;
|
private static RedisBungee plugin;
|
||||||
private boolean canonicalGlist = true;
|
private boolean canonicalGlist = true;
|
||||||
|
|
||||||
@ -57,11 +55,20 @@ public class RedisBungee extends Plugin implements Listener {
|
|||||||
* @return a count of all players found
|
* @return a count of all players found
|
||||||
*/
|
*/
|
||||||
public static int getCount() {
|
public static int getCount() {
|
||||||
return count;
|
Jedis rsc = pool.getResource();
|
||||||
}
|
int c = 0;
|
||||||
|
try {
|
||||||
protected void setCount(int count) {
|
c = plugin.getProxy().getOnlineCount();
|
||||||
RedisBungee.count = count;
|
rsc.set("server:" + plugin.getServerId() + ":playerCount", String.valueOf(c));
|
||||||
|
for (String i : plugin.getServers()) {
|
||||||
|
if (i.equals(plugin.getServerId())) continue;
|
||||||
|
if (rsc.exists("server:" + i + ":playerCount"))
|
||||||
|
c += Integer.valueOf(rsc.get("server:" + i + ":playerCount"));
|
||||||
|
}
|
||||||
|
} finally {
|
||||||
|
pool.returnResource(rsc);
|
||||||
|
}
|
||||||
|
return c;
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@ -160,15 +167,13 @@ public class RedisBungee extends Plugin implements Listener {
|
|||||||
} finally {
|
} finally {
|
||||||
pool.returnResource(tmpRsc);
|
pool.returnResource(tmpRsc);
|
||||||
}
|
}
|
||||||
uct = new UpdateCountTask(this);
|
|
||||||
getProxy().getScheduler().schedule(this, uct, 1, 3, TimeUnit.SECONDS);
|
|
||||||
getProxy().getPluginManager().registerCommand(this, new Command("glist", "bungeecord.command.glist", "redisbungee") {
|
getProxy().getPluginManager().registerCommand(this, new Command("glist", "bungeecord.command.glist", "redisbungee") {
|
||||||
@Override
|
@Override
|
||||||
public void execute(CommandSender sender, String[] args) {
|
public void execute(CommandSender sender, String[] args) {
|
||||||
sender.sendMessage(ChatColor.YELLOW + String.valueOf(getCount()) + " player(s) are currently online.");
|
sender.sendMessage(ChatColor.YELLOW + String.valueOf(getCount()) + " player(s) are currently online.");
|
||||||
if (args.length > 0 && args[0].equals("showall")) {
|
if (args.length > 0 && args[0].equals("showall")) {
|
||||||
if (canonicalGlist) {
|
if (canonicalGlist) {
|
||||||
Multimap<String, String> serverToPlayers = HashMultimap.create(getProxy().getServers().size(), count);
|
Multimap<String, String> serverToPlayers = HashMultimap.create(getProxy().getServers().size(), getCount());
|
||||||
for (String p : getPlayers()) {
|
for (String p : getPlayers()) {
|
||||||
ServerInfo si = getServerFor(p);
|
ServerInfo si = getServerFor(p);
|
||||||
if (si != null)
|
if (si != null)
|
||||||
@ -195,7 +200,6 @@ public class RedisBungee extends Plugin implements Listener {
|
|||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void onDisable() {
|
public void onDisable() {
|
||||||
uct.kill();
|
|
||||||
if (pool != null) {
|
if (pool != null) {
|
||||||
Jedis tmpRsc = pool.getResource();
|
Jedis tmpRsc = pool.getResource();
|
||||||
try {
|
try {
|
||||||
|
@ -1,43 +0,0 @@
|
|||||||
/**
|
|
||||||
* Copyright © 2013 tuxed <write@imaginarycode.com>
|
|
||||||
* This work is free. You can redistribute it and/or modify it under the
|
|
||||||
* terms of the Do What The Fuck You Want To Public License, Version 2,
|
|
||||||
* as published by Sam Hocevar. See http://www.wtfpl.net/ for more details.
|
|
||||||
*/
|
|
||||||
package com.imaginarycode.minecraft.redisbungee;
|
|
||||||
|
|
||||||
import redis.clients.jedis.Jedis;
|
|
||||||
|
|
||||||
public class UpdateCountTask implements Runnable {
|
|
||||||
|
|
||||||
private RedisBungee plugin;
|
|
||||||
private boolean kill = false;
|
|
||||||
|
|
||||||
public UpdateCountTask(RedisBungee plugin) {
|
|
||||||
this.plugin = plugin;
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public void run() {
|
|
||||||
if (kill) {
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
Jedis rsc = plugin.getPool().getResource();
|
|
||||||
try {
|
|
||||||
int c = plugin.getProxy().getOnlineCount();
|
|
||||||
rsc.set("server:" + plugin.getServerId() + ":playerCount", String.valueOf(c));
|
|
||||||
for (String i : plugin.getServers()) {
|
|
||||||
if (i.equals(plugin.getServerId())) continue;
|
|
||||||
if (rsc.exists("server:" + i + ":playerCount"))
|
|
||||||
c += Integer.valueOf(rsc.get("server:" + i + ":playerCount"));
|
|
||||||
}
|
|
||||||
plugin.setCount(c);
|
|
||||||
} finally {
|
|
||||||
plugin.getPool().returnResource(rsc);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
protected void kill() {
|
|
||||||
kill = true;
|
|
||||||
}
|
|
||||||
}
|
|
Loading…
Reference in New Issue
Block a user