maybe fix some NPEs when calling events
All checks were successful
Deploy to Dokku / docker (ubuntu-latest) (push) Successful in 50s

This commit is contained in:
Lee
2024-07-04 03:33:06 +01:00
parent c98d8d7e26
commit 3b3ea2b3cc
3 changed files with 44 additions and 33 deletions

View File

@ -52,12 +52,34 @@ public class UserService implements EventListener {
* @param id The ID of the user
* @return The user
*/
public BatUser getUser(@NonNull String id) {
public BatUser getUser(@NonNull String id, User user) {
long before = System.currentTimeMillis();
// User is cached
if (users.containsKey(id)) {
return users.get(id);
}
// User is not cached
Document document = MongoService.INSTANCE.getUsersCollection().find(Filters.eq("_id", id)).first();
if (document != null) {
BatUser batUser = new BatUser(id, user, document);
users.put(id, batUser);
log.info("Loaded user \"{}\" in {}ms", batUser.getName(),System.currentTimeMillis() - before);
return batUser;
}
// New user
BatUser batUser = new BatUser(id, user, new Document());
users.put(id, batUser);
log.info("Created user \"{}\" - \"{}\"", batUser.getName(), batUser.getId());
return batUser;
}
/**
* Gets a user by its ID
*
* @param id The ID of the user
* @return The user
*/
public BatUser getUser(@NonNull String id) {
User user = DiscordService.JDA.getUserById(id);
if (user == null) {
log.warn("Attempted to get user with ID \"{}\" but they do not exist", id);
@ -67,19 +89,7 @@ public class UserService implements EventListener {
log.warn("Attempted to get user with ID \"{}\" but they are a bot", id);
return null;
}
// User is not cached
Document document = MongoService.INSTANCE.getUsersCollection().find(Filters.eq("_id", id)).first();
if (document != null) {
BatUser batUser = new BatUser(id, document);
users.put(id, batUser);
log.info("Loaded user \"{}\" in {}ms", batUser.getName(),System.currentTimeMillis() - before);
return batUser;
}
// New user
BatUser batUser = new BatUser(id, new Document());
users.put(id, batUser);
log.info("Created user \"{}\" - \"{}\"", batUser.getName(), batUser.getId());
return batUser;
return getUser(id, null);
}
@Override