Load all chat users on startup

Load all parties on startup
This commit is contained in:
2021-08-04 15:07:16 +02:00
parent 9957158758
commit 571f02b6df
4 changed files with 63 additions and 11 deletions
@@ -5,6 +5,7 @@ import com.alttd.chat.objects.ChatUser;
import com.alttd.chat.objects.Mail;
import java.util.ArrayList;
import java.util.Collections;
import java.util.List;
import java.util.UUID;
import java.util.concurrent.CompletableFuture;
@@ -16,6 +17,7 @@ public final class ChatUserManager {
public static void initialize() {
chatUsers = new ArrayList<>();
loadUsers();
}
public static void addUser(ChatUser user) {
@@ -32,11 +34,7 @@ public final class ChatUserManager {
return user;
}
}
ChatUser user = Queries.loadChatUser(uuid);
if(user == null) user = new ChatUser(uuid, -1, false, false);
Queries.saveUser(user);
chatUsers.add(user);
return user;
return Queries.loadChatUser(uuid);
}
public List<Mail> getUnReadMail(ChatUser user) {
@@ -44,4 +42,12 @@ public final class ChatUserManager {
.filter(Mail::isUnRead)
.collect(Collectors.toList());
}
public static void loadUsers() {
Queries.loadChatUsers();
}
protected static List<ChatUser> getChatUsers() {
return Collections.unmodifiableList(chatUsers);
}
}
@@ -0,0 +1,47 @@
package com.alttd.chat.managers;
import com.alttd.chat.database.Queries;
import com.alttd.chat.objects.ChatUser;
import com.alttd.chat.objects.Party;
import java.util.ArrayList;
import java.util.UUID;
public class PartyManager {
private static ArrayList<Party> parties;
public static void initialize() {
parties = new ArrayList<>();
loadParties();
}
public static void addParty(Party party) {
parties.add(party);
}
public static void removeParty(Party party) {
parties.remove(party);
}
public static Party getParty(int id) {
for(Party party : parties) {
if(id == party.getPartyId()) {
return party;
}
}
return null;
}
public static Party getParty(UUID uuid) {
return getParty(ChatUserManager.getChatUser(uuid).getPartyId());
}
public static void loadParties() {
Queries.loadParties();
for (ChatUser chatUser : ChatUserManager.getChatUsers()) {
Party party = getParty(chatUser.getPartyId());
if (party != null) party.addUser(chatUser);
}
}
}