RankDataManager.java (1861B)
1 package me.night.nullvalkyrie.database; 2 3 import com.mongodb.client.MongoCursor; 4 import me.night.nullvalkyrie.util.Rank; 5 import me.night.nullvalkyrie.ui.player.ScoreboardListener; 6 import org.bson.Document; 7 import org.bson.conversions.Bson; 8 import org.bukkit.Bukkit; 9 import org.bukkit.entity.Player; 10 11 import java.util.UUID; 12 13 public class RankDataManager { 14 public static void setRank(UUID uuid, Rank rank, ScoreboardListener... listener) { 15 // TODO: fix not working in rank command 16 Document document = new DatabaseManager().getRanksDB().find(new Document("UUID", uuid.toString())).first(); 17 if (document != null) { 18 Bson updated = new Document("Rank", rank.name()); 19 Bson update = new Document("$set", updated); 20 new DatabaseManager().getRanksDB().updateOne(document, update); 21 } else { 22 Document newDocument = new Document(); 23 newDocument.put("UUID", uuid.toString()); 24 newDocument.put("Rank", rank.name()); 25 new DatabaseManager().getRanksDB().insertOne(newDocument); 26 } 27 for (Player player : Bukkit.getOnlinePlayers()) { 28 if (player.hasPlayedBefore()) { 29 listener[0].nameTagManager.removeTag(player); 30 listener[0].nameTagManager.newTag(player); 31 } 32 } 33 } 34 35 public static Rank getRank(UUID uuid) { 36 try (MongoCursor<Document> cursor = new DatabaseManager().getRanksDB().find(new Document("UUID", uuid.toString())).cursor()) { 37 while (cursor.hasNext()) { 38 Document doc = cursor.next(); 39 for (String key : doc.keySet()) { 40 if (key.equals("Rank")) { 41 return Rank.valueOf((String) doc.get(key)); 42 } 43 } 44 } 45 } 46 return null; 47 } 48 }