add player to redis when player enters server

master
Alex 2022-04-04 19:35:03 +02:00
parent ec95ff73cb
commit 8297beb679
1 changed files with 28 additions and 23 deletions

View File

@ -25,9 +25,6 @@ import net.md_5.bungee.api.plugin.Listener;
import net.md_5.bungee.event.EventHandler; import net.md_5.bungee.event.EventHandler;
import org.bson.Document; import org.bson.Document;
import org.bson.conversions.Bson; import org.bson.conversions.Bson;
import org.msgpack.core.MessageBufferPacker;
import org.msgpack.core.MessagePack;
import org.msgpack.core.MessageUnpacker;
import org.redisson.api.RMap; import org.redisson.api.RMap;
public class PostLoginListener implements Listener { public class PostLoginListener implements Listener {
@ -42,8 +39,7 @@ public class PostLoginListener implements Listener {
ProxySystem.getInstance().getPlayers() ProxySystem.getInstance().getPlayers()
.find(Filters.eq("uuid", uuid)) .find(Filters.eq("uuid", uuid))
.first((document, throwable) -> { .first((document, throwable) -> {
if (document == null) { if (document == null) { // new player - create entries in databases
// create player in db and send voice url
System.out.println("create player in db"); System.out.println("create player in db");
String voiceWebCode = generateVoiceWebCode(uuid); String voiceWebCode = generateVoiceWebCode(uuid);
@ -54,7 +50,27 @@ public class PostLoginListener implements Listener {
}); });
sendVoiceWebCodeUrl(proxiedPlayer, voiceWebCode); sendVoiceWebCodeUrl(proxiedPlayer, voiceWebCode);
} else {
// redis
RMap<String, String> map = ProxySystem.getInstance().getRedisManager()
.getRedissonClient()
.getMap("player:" + uuid);
if (map.isEmpty()) {
map.put("uuid", uuid);
map.put("voiceWebCode", "voiceWebCode");
ProxySystem.getInstance().getLogger().info("PUT !");
} else {
ProxySystem.getInstance().getLogger()
.warning("REDIS player " + uuid + " exists in the cache, but should not exist");
}
} else { // player found in the database
// redis
ProxySystem.getInstance().getLogger().info("mongodb player " + document.keySet());
// check if both sockets connected // check if both sockets connected
int cmdID = ProxySystem.getInstance().getKraSocketClientProtocol().generateCmdID(); int cmdID = ProxySystem.getInstance().getKraSocketClientProtocol().generateCmdID();
@ -103,6 +119,7 @@ public class PostLoginListener implements Listener {
} }
}); });
/*
MessageBufferPacker packer = MessagePack.newDefaultBufferPacker(); MessageBufferPacker packer = MessagePack.newDefaultBufferPacker();
packer.packString(proxiedPlayer.getName()); packer.packString(proxiedPlayer.getName());
@ -111,7 +128,7 @@ public class PostLoginListener implements Listener {
packer.packString("number 1"); packer.packString("number 1");
packer.packString("number 2"); packer.packString("number 2");
packer.close(); packer.close(); */
/* /*
RBucket<PlayerTest> bucket = ProxySystem.getInstance().getRedisManager().getRedissonClient() RBucket<PlayerTest> bucket = ProxySystem.getInstance().getRedisManager().getRedissonClient()
.getBucket("player:" + proxiedPlayer.getUniqueId().toString()); .getBucket("player:" + proxiedPlayer.getUniqueId().toString());
@ -137,21 +154,9 @@ public class PostLoginListener implements Listener {
} }
}*/ }*/
RMap<String, String> map = ProxySystem.getInstance().getRedisManager().getRedissonClient()
.getMap("player:" + proxiedPlayer.getUniqueId().toString());
if (map.isEmpty()) {
map.put("name", proxiedPlayer.getName());
map.put("money", "123132");
ProxySystem.getInstance().getLogger().info("PUT !"); /*MessageUnpacker unpacker = MessagePack.newDefaultUnpacker(packer.toByteArray());
} else {
ProxySystem.getInstance().getLogger().info("GET" + map.get("name") + " " + map.get("money"));
map.put("money", String.valueOf(Math.random()));
}
MessageUnpacker unpacker = MessagePack.newDefaultUnpacker(packer.toByteArray());
String playerName = unpacker.unpackString(); String playerName = unpacker.unpackString();
int n = unpacker.unpackInt(); int n = unpacker.unpackInt();
@ -161,10 +166,10 @@ public class PostLoginListener implements Listener {
nu[i] = unpacker.unpackString(); nu[i] = unpacker.unpackString();
} }
unpacker.close(); unpacker.close(); */
/*
ProxySystem.getInstance().getLogger() ProxySystem.getInstance().getLogger()
.info("name: " + playerName + " " + n + " " + nu[0] + " " + nu[1]); .info("name: " + playerName + " " + n + " " + nu[0] + " " + nu[1]); */
} }
public void sendVoiceWebCodeUrl(ProxiedPlayer proxiedPlayer, String voiceWebCode) { public void sendVoiceWebCodeUrl(ProxiedPlayer proxiedPlayer, String voiceWebCode) {