I am trying to find a user's UUID in my database, but it's returning null for no reason. It's in the connect() method. I can find this manually, and in my project in javaScript. But for some reason, I'm getting this error.
public final class DiscordLink extends JavaPlugin implements Listener {
public MongoCollection<Document> users;
public MongoDatabase mongoDatabase;
@Override
public void onEnable() {
System.setProperty("DEBUG.GO", "true");
System.setProperty("DB.TRACE", "true");
Logger mongoLogger = Logger.getLogger("org.mongodb.driver");
mongoLogger.setLevel(Level.WARNING);
connect();
getServer().getConsoleSender().sendMessage(ChatColor.GREEN + "[DiscordLink] Plugin enabled...");
getServer().getPluginManager().registerEvents(this, this);
}
@Override
public void onDisable() {
getServer().getConsoleSender().sendMessage(ChatColor.RED + "[DiscordLink] Plugin disabled...");
}
public void connect() {
MongoClient mongoClient = MongoClients.create("MONGOURI");
MongoDatabase mongoDatabase = mongoClient.getDatabase("myFirstDatabase");
MongoCollection<Document> users = mongoDatabase.getCollection("users");
Bukkit.getConsoleSender().sendMessage(ChatColor.GREEN + "[DiscordLink] Connected to database!");
}
@EventHandler
public void onPlayerJoin(PlayerJoinEvent event) {
Player player = event.getPlayer();
Document document = users.find(Filters.eq("mcUUID", player.getUniqueId().toString())).first();
if(document != null) {
player.kickPlayer(ChatColor.RED + "Discord Authentication Failed!");
} else { return; }
Error:
[15:43:01 ERROR]: Could not pass event PlayerJoinEvent to DiscordLink v1.0-SNAPSHOT
java.lang.NullPointerException: Cannot invoke "com.mongodb.client.MongoCollection.find(org.bson.conversions.Bson)" because "this.users" is null