Advertisement
Yazhog_g

Untitled

Jan 5th, 2022
569
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Java 3.26 KB | None | 0 0
  1. public class ServerManager{
  2.  
  3.     private GsonBuilder gsonBuilder;
  4.     private Gson gson;
  5.     private MongoCollection<BasicDBObject> collection;
  6.  
  7.     public ServerManager(MongoDB mongoDB) {
  8.         this.gsonBuilder = new GsonBuilder();
  9.         this.gsonBuilder.registerTypeHierarchyAdapter(Bedwars.class, new BedwarsCreator());
  10.         this.gsonBuilder.registerTypeHierarchyAdapter(Deacoudre.class, new DeacoudreCreator());
  11.         this.gsonBuilder.registerTypeHierarchyAdapter(Murder.class, new MurderCreator());
  12.         this.gsonBuilder.registerTypeHierarchyAdapter(Skyblock.class, new SkyblockCreator());
  13.         this.gson = gsonBuilder.create();
  14.         this.collection = mongoDB.getMongoDatabase().getCollection("Server", BasicDBObject.class);
  15.     }
  16.  
  17.     public ServerData create(ServerData serverData) {
  18.         BasicDBObject basicDBObject = new BasicDBObject("serverData.serverName", serverData.getServerName());
  19.         BasicDBObject found = this.collection.find(basicDBObject).first();
  20.         if (found == null)
  21.             this.collection.insertOne(new BasicDBObject("serverData", BasicDBObject.parse(this.gson.toJson(serverData))));
  22.         return serverData;
  23.     }
  24.  
  25.     public ServerData get(String name) {
  26.         BasicDBObject basicDBObject = new BasicDBObject("serverData.serverName", name);
  27.         BasicDBObject found = this.collection.find(basicDBObject).first();
  28.         if (found != null)
  29.             return this.gson.fromJson(found.getString("serverData"), ServerData.class);
  30.         return null;
  31.     }
  32.  
  33.     public void update(ServerData serverData) {
  34.         BasicDBObject document = new BasicDBObject("serverData.serverName", serverData.getServerName());
  35.         BasicDBObject found = this.collection.find(document).first();
  36.         if (found != null) {
  37.             BasicDBObject basicDBObject = new BasicDBObject("serverData", BasicDBObject.parse(this.gson.toJson(serverData)));
  38.             this.collection.updateOne(found, new BasicDBObject("$set", basicDBObject));
  39.         }
  40.     }
  41.  
  42.     public List<ServerData> getAllServers() {
  43.         List<ServerData> serverData = new ArrayList<>();
  44.         FindIterable<BasicDBObject> cursor = this.collection.find();
  45.         for (MongoCursor<BasicDBObject> mongoCursor = cursor.iterator(); mongoCursor.hasNext(); ) {
  46.             BasicDBObject object = mongoCursor.next();
  47.             serverData.add(this.gson.fromJson(object.getString("serverData"), ServerData.class));
  48.         }
  49.         return serverData;
  50.     }
  51.  
  52.     public List<ServerData> getAllServers(QueueType queueType){
  53.         return getAllServers().stream().filter(serverData -> serverData.getQueueType() == queueType).collect(Collectors.toList());
  54.     }
  55.  
  56.     public ServerData getAvaliableServer(QueueType queueType, boolean joinPrivate){
  57.         return getAvaliableServer(getAllServers(queueType), joinPrivate);
  58.     }
  59.  
  60.     public ServerData getAvaliableServer(QueueType queueType){
  61.         return getAvaliableServer(getAllServers(queueType), false);
  62.     }
  63.  
  64.     public ServerData getAvaliableServer(List<ServerData> servers, boolean joinPrivate){
  65.         for (ServerData server : servers) {
  66.             if(server.isJoinable() && (joinPrivate || !server.isPrivategame()))
  67.                 return server;
  68.         }
  69.         return null;
  70.     }
  71.  
  72. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement