Commit 0a96012f authored by KingRainbow44's avatar KingRainbow44
Browse files

why is `Account#onLoad` THE DAMN REASON FOR HOURS OF TESTING

parent b902fa6f
...@@ -14,8 +14,8 @@ plugins { ...@@ -14,8 +14,8 @@ plugins {
id 'application' id 'application'
} }
sourceCompatibility = 17 sourceCompatibility = 16
targetCompatibility = 17 targetCompatibility = 16
repositories { repositories {
mavenCentral() mavenCentral()
......
...@@ -18,7 +18,6 @@ import emu.grasscutter.game.friends.Friendship; ...@@ -18,7 +18,6 @@ import emu.grasscutter.game.friends.Friendship;
import emu.grasscutter.game.inventory.GenshinItem; import emu.grasscutter.game.inventory.GenshinItem;
public final class DatabaseManager { public final class DatabaseManager {
private static MongoClient mongoClient;
private static Datastore datastore; private static Datastore datastore;
private static final Class<?>[] mappedClasses = new Class<?>[] { private static final Class<?>[] mappedClasses = new Class<?>[] {
...@@ -35,7 +34,7 @@ public final class DatabaseManager { ...@@ -35,7 +34,7 @@ public final class DatabaseManager {
public static void initialize() { public static void initialize() {
// Initialize // Initialize
mongoClient = MongoClients.create(Grasscutter.getConfig().DatabaseUrl); MongoClient mongoClient = MongoClients.create(Grasscutter.getConfig().DatabaseUrl);
// Set mapper options. // Set mapper options.
MapperOptions mapperOptions = MapperOptions.builder() MapperOptions mapperOptions = MapperOptions.builder()
......
package emu.grasscutter.game; package emu.grasscutter.game;
import dev.morphia.annotations.Collation; import dev.morphia.annotations.*;
import dev.morphia.annotations.Entity;
import dev.morphia.annotations.Id;
import dev.morphia.annotations.Indexed;
import dev.morphia.annotations.PreLoad;
import emu.grasscutter.database.DatabaseHelper; import emu.grasscutter.database.DatabaseHelper;
import emu.grasscutter.utils.Crypto; import emu.grasscutter.utils.Crypto;
import emu.grasscutter.utils.Utils; import emu.grasscutter.utils.Utils;
import dev.morphia.annotations.IndexOptions;
import java.util.ArrayList; import java.util.ArrayList;
import java.util.List; import java.util.List;
import com.mongodb.DBObject;
@Entity(value = "accounts", useDiscriminator = false) @Entity(value = "accounts", useDiscriminator = false)
public class Account { public class Account {
@Id private String id; @Id private String id;
...@@ -121,15 +114,16 @@ public class Account { ...@@ -121,15 +114,16 @@ public class Account {
return this.token; return this.token;
} }
@PreLoad
public void onLoad(DBObject dbObj) {
// Grant the superuser permissions to accounts created before the permissions update
if (!dbObj.containsField("permissions")) {
this.addPermission("*");
}
}
public void save() { public void save() {
DatabaseHelper.saveAccount(this); DatabaseHelper.saveAccount(this);
} }
// TODO: Find an implementation for this. Morphia 2.0 breaks this method for some reason?
// @PreLoad
// public void onLoad(DBObject object) {
// // Grant the superuser permissions to accounts created before the permissions update
// if (!object.containsField("permissions")) {
// this.addPermission("*");
// }
// }
} }
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment