mongodb document subscriber

master
alex 2022-04-11 22:25:18 +02:00
parent 854e713d52
commit d1644689a9
2 changed files with 36 additions and 18 deletions

View File

@ -13,6 +13,9 @@ 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.reactivestreams.Publisher;
import org.reactivestreams.Subscriber;
import org.reactivestreams.Subscription;
import org.redisson.api.RMap; import org.redisson.api.RMap;
public class PlayerDisconnectListener implements Listener { public class PlayerDisconnectListener implements Listener {
@ -30,11 +33,18 @@ public class PlayerDisconnectListener implements Listener {
.getMap("player:" + uuid); .getMap("player:" + uuid);
// mongo // mongo
Document document = (Document) ProxySystem.getInstance().getMongoManager() Publisher<Document> document = ProxySystem.getInstance().getMongoManager()
.getPlayersCollection() .getPlayersCollection()
.find(Filters.eq("uuid", uuid)).first(); .find(Filters.eq("uuid", uuid)).first();
if (document != null) { document.subscribe(new Subscriber<Document>() {
@Override
public void onSubscribe(Subscription subscription) {
subscription.request(1);
}
@Override
public void onNext(Document document) {
List<Bson> updatesList = new ArrayList<>(); List<Bson> updatesList = new ArrayList<>();
map.forEach((key, value) -> { map.forEach((key, value) -> {
@ -61,10 +71,19 @@ public class PlayerDisconnectListener implements Listener {
System.out.println("Upserted id: " + result.getUpsertedId()); System.out.println("Upserted id: " + result.getUpsertedId());
} }
}); */ }); */
} else { }
@Override
public void onError(Throwable throwable) {
System.out.println("Mongo player is null on disconnect"); System.out.println("Mongo player is null on disconnect");
} }
@Override
public void onComplete() {
}
});
// redis // redis
if (!map.isEmpty()) { if (!map.isEmpty()) {
map.delete(); map.delete();

View File

@ -35,8 +35,7 @@ public class PostLoginListener implements Listener {
document.subscribe(new Subscriber<Document>() { document.subscribe(new Subscriber<Document>() {
@Override @Override
public void onSubscribe(Subscription subscription) { public void onSubscribe(Subscription subscription) {
//subscription.request(1); subscription.request(1);
ProxySystem.getInstance().getLogger().info("subscripe");
} }
@Override @Override