NullValkyrie

Minecraft 1.19 multipurpose plugin for spigot servers with a lot of features where most modern servers have.
git clone https://codeberg.org/night0721/NullValkyrie
Log | Files | Refs | README | LICENSE

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 }