Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- public class ServerManager{
- private GsonBuilder gsonBuilder;
- private Gson gson;
- private MongoCollection<BasicDBObject> collection;
- public ServerManager(MongoDB mongoDB) {
- this.gsonBuilder = new GsonBuilder();
- this.gsonBuilder.registerTypeHierarchyAdapter(Bedwars.class, new BedwarsCreator());
- this.gsonBuilder.registerTypeHierarchyAdapter(Deacoudre.class, new DeacoudreCreator());
- this.gsonBuilder.registerTypeHierarchyAdapter(Murder.class, new MurderCreator());
- this.gsonBuilder.registerTypeHierarchyAdapter(Skyblock.class, new SkyblockCreator());
- this.gson = gsonBuilder.create();
- this.collection = mongoDB.getMongoDatabase().getCollection("Server", BasicDBObject.class);
- }
- public ServerData create(ServerData serverData) {
- BasicDBObject basicDBObject = new BasicDBObject("serverData.serverName", serverData.getServerName());
- BasicDBObject found = this.collection.find(basicDBObject).first();
- if (found == null)
- this.collection.insertOne(new BasicDBObject("serverData", BasicDBObject.parse(this.gson.toJson(serverData))));
- return serverData;
- }
- public ServerData get(String name) {
- BasicDBObject basicDBObject = new BasicDBObject("serverData.serverName", name);
- BasicDBObject found = this.collection.find(basicDBObject).first();
- if (found != null)
- return this.gson.fromJson(found.getString("serverData"), ServerData.class);
- return null;
- }
- public void update(ServerData serverData) {
- BasicDBObject document = new BasicDBObject("serverData.serverName", serverData.getServerName());
- BasicDBObject found = this.collection.find(document).first();
- if (found != null) {
- BasicDBObject basicDBObject = new BasicDBObject("serverData", BasicDBObject.parse(this.gson.toJson(serverData)));
- this.collection.updateOne(found, new BasicDBObject("$set", basicDBObject));
- }
- }
- public List<ServerData> getAllServers() {
- List<ServerData> serverData = new ArrayList<>();
- FindIterable<BasicDBObject> cursor = this.collection.find();
- for (MongoCursor<BasicDBObject> mongoCursor = cursor.iterator(); mongoCursor.hasNext(); ) {
- BasicDBObject object = mongoCursor.next();
- serverData.add(this.gson.fromJson(object.getString("serverData"), ServerData.class));
- }
- return serverData;
- }
- public List<ServerData> getAllServers(QueueType queueType){
- return getAllServers().stream().filter(serverData -> serverData.getQueueType() == queueType).collect(Collectors.toList());
- }
- public ServerData getAvaliableServer(QueueType queueType, boolean joinPrivate){
- return getAvaliableServer(getAllServers(queueType), joinPrivate);
- }
- public ServerData getAvaliableServer(QueueType queueType){
- return getAvaliableServer(getAllServers(queueType), false);
- }
- public ServerData getAvaliableServer(List<ServerData> servers, boolean joinPrivate){
- for (ServerData server : servers) {
- if(server.isJoinable() && (joinPrivate || !server.isPrivategame()))
- return server;
- }
- return null;
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement