Compare commits
2 Commits
6cef1f2916
...
eb2deaef14
Author | SHA1 | Date |
---|---|---|
|
eb2deaef14 | |
|
43995d580f |
|
@ -1,6 +1,5 @@
|
||||||
package net.krakatoa.proxy;
|
package net.krakatoa.proxy;
|
||||||
|
|
||||||
import com.mongodb.async.client.MongoCollection;
|
|
||||||
import earth.krakatao.KraSocketClient;
|
import earth.krakatao.KraSocketClient;
|
||||||
import earth.krakatao.KraSocketClientConfig;
|
import earth.krakatao.KraSocketClientConfig;
|
||||||
import earth.krakatao.events.KraSocketClientEventInitiater;
|
import earth.krakatao.events.KraSocketClientEventInitiater;
|
||||||
|
@ -22,7 +21,6 @@ import net.krakatoa.proxy.redis.RedisManager;
|
||||||
import net.krakatoa.proxy.util.Formatter;
|
import net.krakatoa.proxy.util.Formatter;
|
||||||
import net.md_5.bungee.api.plugin.Plugin;
|
import net.md_5.bungee.api.plugin.Plugin;
|
||||||
import net.md_5.bungee.api.plugin.PluginManager;
|
import net.md_5.bungee.api.plugin.PluginManager;
|
||||||
import org.bson.Document;
|
|
||||||
|
|
||||||
@Getter
|
@Getter
|
||||||
public class ProxySystem extends Plugin {
|
public class ProxySystem extends Plugin {
|
||||||
|
@ -39,8 +37,6 @@ public class ProxySystem extends Plugin {
|
||||||
private MongoManager mongoManager;
|
private MongoManager mongoManager;
|
||||||
private RedisManager redisManager;
|
private RedisManager redisManager;
|
||||||
|
|
||||||
private MongoCollection<Document> players;
|
|
||||||
|
|
||||||
@SneakyThrows
|
@SneakyThrows
|
||||||
@Override
|
@Override
|
||||||
public void onEnable() {
|
public void onEnable() {
|
||||||
|
@ -71,8 +67,6 @@ public class ProxySystem extends Plugin {
|
||||||
this.configHandler.getMongodbPassword());
|
this.configHandler.getMongodbPassword());
|
||||||
this.mongoManager.connect(this.configHandler.getMongodbDatabase());
|
this.mongoManager.connect(this.configHandler.getMongodbDatabase());
|
||||||
|
|
||||||
this.players = this.mongoManager.getMongoDatabase().getCollection("players");
|
|
||||||
|
|
||||||
this.redisManager = new RedisManager("redis://127.0.0.1:6379");
|
this.redisManager = new RedisManager("redis://127.0.0.1:6379");
|
||||||
this.redisManager.connect();
|
this.redisManager.connect();
|
||||||
|
|
||||||
|
|
|
@ -1,10 +1,17 @@
|
||||||
package net.krakatoa.proxy.listener;
|
package net.krakatoa.proxy.listener;
|
||||||
|
|
||||||
|
import com.mongodb.client.model.Filters;
|
||||||
|
import com.mongodb.client.model.UpdateOptions;
|
||||||
|
import com.mongodb.client.model.Updates;
|
||||||
|
import java.util.ArrayList;
|
||||||
|
import java.util.List;
|
||||||
|
import java.util.Objects;
|
||||||
import net.krakatoa.proxy.ProxySystem;
|
import net.krakatoa.proxy.ProxySystem;
|
||||||
import net.md_5.bungee.api.connection.ProxiedPlayer;
|
import net.md_5.bungee.api.connection.ProxiedPlayer;
|
||||||
import net.md_5.bungee.api.event.PlayerDisconnectEvent;
|
import net.md_5.bungee.api.event.PlayerDisconnectEvent;
|
||||||
import net.md_5.bungee.api.plugin.Listener;
|
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.conversions.Bson;
|
||||||
import org.redisson.api.RMap;
|
import org.redisson.api.RMap;
|
||||||
|
|
||||||
public class PlayerDisconnectListener implements Listener {
|
public class PlayerDisconnectListener implements Listener {
|
||||||
|
@ -27,6 +34,35 @@ public class PlayerDisconnectListener implements Listener {
|
||||||
|
|
||||||
// TODO: save redis player to mongodb
|
// TODO: save redis player to mongodb
|
||||||
|
|
||||||
|
ProxySystem.getInstance().getMongoManager().getPlayers()
|
||||||
|
.find(Filters.eq("uuid", uuid))
|
||||||
|
.first((document, throwable) -> {
|
||||||
|
if (document != null) {
|
||||||
|
List<Bson> updatesList = new ArrayList<>();
|
||||||
|
|
||||||
|
map.forEach((key, value) -> {
|
||||||
|
if (!Objects.equals(key, "_id") && !Objects.equals(key, "uuid")) {
|
||||||
|
updatesList.add(Updates.set(key, value));
|
||||||
|
}
|
||||||
|
});
|
||||||
|
|
||||||
|
Bson updates = Updates.combine(updatesList);
|
||||||
|
|
||||||
|
UpdateOptions options = new UpdateOptions().upsert(true);
|
||||||
|
|
||||||
|
ProxySystem.getInstance().getMongoManager().getPlayers()
|
||||||
|
.updateOne(document, updates, options, (result, t) -> {
|
||||||
|
System.out.println("Modified document count: " + result.getModifiedCount());
|
||||||
|
System.out.println("Upserted id: " + result.getUpsertedId());
|
||||||
|
});
|
||||||
|
} else {
|
||||||
|
System.out.println("Mongo player is null on disconnect");
|
||||||
|
}
|
||||||
|
});
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
/*Long res = ProxySystem.getInstance().getRedisManager().getRedisKeyCommands()
|
/*Long res = ProxySystem.getInstance().getRedisManager().getRedisKeyCommands()
|
||||||
.del("player:" + proxiedPlayer.getUniqueId().toString());
|
.del("player:" + proxiedPlayer.getUniqueId().toString());
|
||||||
|
|
||||||
|
|
|
@ -37,7 +37,7 @@ public class PostLoginListener implements Listener {
|
||||||
String uuid = ProxySystem.getInstance().getFormatter()
|
String uuid = ProxySystem.getInstance().getFormatter()
|
||||||
.formatUuid(proxiedPlayer.getUniqueId().toString());
|
.formatUuid(proxiedPlayer.getUniqueId().toString());
|
||||||
|
|
||||||
ProxySystem.getInstance().getPlayers()
|
ProxySystem.getInstance().getMongoManager().getPlayers()
|
||||||
.find(Filters.eq("uuid", uuid))
|
.find(Filters.eq("uuid", uuid))
|
||||||
.first((document, throwable) -> {
|
.first((document, throwable) -> {
|
||||||
if (document == null) { // new player - create entries in databases
|
if (document == null) { // new player - create entries in databases
|
||||||
|
@ -46,9 +46,10 @@ public class PostLoginListener implements Listener {
|
||||||
|
|
||||||
document = new Document("uuid", uuid).append("voiceWebCode", voiceWebCode);
|
document = new Document("uuid", uuid).append("voiceWebCode", voiceWebCode);
|
||||||
|
|
||||||
ProxySystem.getInstance().getPlayers().insertOne(document, (unused, throwable1) -> {
|
ProxySystem.getInstance().getMongoManager().getPlayers()
|
||||||
System.out.println("insertOne");
|
.insertOne(document, (unused, throwable1) -> {
|
||||||
});
|
System.out.println("insertOne");
|
||||||
|
});
|
||||||
|
|
||||||
sendVoiceWebCodeUrl(proxiedPlayer, voiceWebCode);
|
sendVoiceWebCodeUrl(proxiedPlayer, voiceWebCode);
|
||||||
|
|
||||||
|
@ -120,7 +121,7 @@ public class PostLoginListener implements Listener {
|
||||||
|
|
||||||
UpdateOptions options = new UpdateOptions().upsert(true);
|
UpdateOptions options = new UpdateOptions().upsert(true);
|
||||||
|
|
||||||
ProxySystem.getInstance().getPlayers()
|
ProxySystem.getInstance().getMongoManager().getPlayers()
|
||||||
.updateOne(finalDocument, updates, options, (updateResult, throwable1) -> {
|
.updateOne(finalDocument, updates, options, (updateResult, throwable1) -> {
|
||||||
});
|
});
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue