Party Redis init.

Wrap for 6/4/2016. Total time: 9.3 hrs.
This commit is contained in:
TadahTech 2016-06-05 00:32:04 -05:00
parent 8c3d5f66a2
commit 4ce9c90839

View File

@ -0,0 +1,58 @@
package mineplex.core.party.redis;
import mineplex.core.party.PartyManager;
import redis.clients.jedis.Jedis;
import redis.clients.jedis.JedisPool;
/**
* Redis system for Parties
*/
public class PartyRedisManager
{
protected static final String CHANNEL_BASE = "party-pubsub";
protected static final String PLAYER_REQUEST_CHANNEL = "mineplex-player-locater";
private PartyManager _plugin;
private JedisPool _writePool;
private JedisPool _readPool;
private String _channel;
private String _serverName;
public PartyRedisManager(PartyManager plugin, String serverName, JedisPool writePool, JedisPool readPool)
{
_plugin = plugin;
_serverName = serverName;
_readPool = readPool;
_writePool = writePool;
_channel = CHANNEL_BASE + "-" + serverName;
plugin.runAsync(() -> {
try (Jedis jedis = readPool.getResource())
{
jedis.subscribe(new PartyRedisListener(), _channel);
jedis.subscribe(new PlayerFinderListener(), PLAYER_REQUEST_CHANNEL);
}
});
}
public void findPlayer(String player)
{
_plugin.runAsync(() -> {
try (Jedis jedis = _writePool.getResource())
{
jedis.publish(PLAYER_REQUEST_CHANNEL, player + ":" + _serverName);
}
});
}
public void publish(String message, String server)
{
_plugin.runAsync(() -> {
try (Jedis jedis = _writePool.getResource())
{
jedis.publish(CHANNEL_BASE + "-" + server, message);
}
});
}
}