63 lines
3.5 KiB
Java
63 lines
3.5 KiB
Java
package com.imaginarycode.minecraft.redisbungee.api.util.payload;
|
|
|
|
import com.google.gson.Gson;
|
|
import com.imaginarycode.minecraft.redisbungee.RedisBungeeAPI;
|
|
import com.imaginarycode.minecraft.redisbungee.api.AbstractDataManager;
|
|
import redis.clients.jedis.Jedis;
|
|
import redis.clients.jedis.JedisCluster;
|
|
import redis.clients.jedis.Pipeline;
|
|
|
|
import java.util.UUID;
|
|
|
|
public class PayloadUtils {
|
|
private static final Gson gson = new Gson();
|
|
|
|
public static void cleanUpPlayer(String uuid, Jedis rsc) {
|
|
rsc.srem("proxy:" + RedisBungeeAPI.getRedisBungeeApi().getProxyId() + ":usersOnline", uuid);
|
|
rsc.hdel("player:" + uuid, "server", "ip", "proxy");
|
|
long timestamp = System.currentTimeMillis();
|
|
rsc.hset("player:" + uuid, "online", String.valueOf(timestamp));
|
|
rsc.publish("redisbungee-data", gson.toJson(new AbstractDataManager.DataManagerMessage<>(
|
|
UUID.fromString(uuid), RedisBungeeAPI.getRedisBungeeApi().getProxyId(), AbstractDataManager.DataManagerMessage.Action.LEAVE,
|
|
new AbstractDataManager.LogoutPayload(timestamp))));
|
|
}
|
|
|
|
public static void cleanUpPlayer(String uuid, Pipeline rsc) {
|
|
rsc.srem("proxy:" + RedisBungeeAPI.getRedisBungeeApi().getProxyId() + ":usersOnline", uuid);
|
|
rsc.hdel("player:" + uuid, "server", "ip", "proxy");
|
|
long timestamp = System.currentTimeMillis();
|
|
rsc.hset("player:" + uuid, "online", String.valueOf(timestamp));
|
|
rsc.publish("redisbungee-data", gson.toJson(new AbstractDataManager.DataManagerMessage<>(
|
|
UUID.fromString(uuid), RedisBungeeAPI.getRedisBungeeApi().getProxyId(), AbstractDataManager.DataManagerMessage.Action.LEAVE,
|
|
new AbstractDataManager.LogoutPayload(timestamp))));
|
|
}
|
|
|
|
public static void cleanUpPlayer(String uuid, JedisCluster rsc) {
|
|
rsc.srem("proxy:" + RedisBungeeAPI.getRedisBungeeApi().getProxyId() + ":usersOnline", uuid);
|
|
rsc.hdel("player:" + uuid, "server", "ip", "proxy");
|
|
long timestamp = System.currentTimeMillis();
|
|
rsc.hset("player:" + uuid, "online", String.valueOf(timestamp));
|
|
rsc.publish("redisbungee-data", gson.toJson(new AbstractDataManager.DataManagerMessage<>(
|
|
UUID.fromString(uuid), RedisBungeeAPI.getRedisBungeeApi().getProxyId(), AbstractDataManager.DataManagerMessage.Action.LEAVE,
|
|
new AbstractDataManager.LogoutPayload(timestamp))));
|
|
}
|
|
|
|
public static void kickPlayer(UUID uuid, String message, Pipeline pipeline) {
|
|
pipeline.publish("redisbungee-data", gson.toJson(new AbstractDataManager.DataManagerMessage<>(
|
|
uuid, RedisBungeeAPI.getRedisBungeeApi().getProxyId(), AbstractDataManager.DataManagerMessage.Action.KICK,
|
|
new AbstractDataManager.KickPayload(message))));
|
|
}
|
|
|
|
public static void kickPlayer(UUID uuid, String message, Jedis jedis) {
|
|
jedis.publish("redisbungee-data", gson.toJson(new AbstractDataManager.DataManagerMessage<>(
|
|
uuid, RedisBungeeAPI.getRedisBungeeApi().getProxyId(), AbstractDataManager.DataManagerMessage.Action.KICK,
|
|
new AbstractDataManager.KickPayload(message))));
|
|
}
|
|
|
|
public static void kickPlayer(UUID uuid, String message, JedisCluster jedisCluster) {
|
|
jedisCluster.publish("redisbungee-data", gson.toJson(new AbstractDataManager.DataManagerMessage<>(
|
|
uuid, RedisBungeeAPI.getRedisBungeeApi().getProxyId(), AbstractDataManager.DataManagerMessage.Action.KICK,
|
|
new AbstractDataManager.KickPayload(message))));
|
|
}
|
|
}
|