Load ChatUsers async

This commit is contained in:
destro174 2021-08-01 15:08:24 +02:00
parent 097541e86f
commit 2d7d39a86d
3 changed files with 38 additions and 7 deletions

View File

@ -7,11 +7,12 @@ import com.alttd.chat.objects.Mail;
import java.util.ArrayList; import java.util.ArrayList;
import java.util.List; import java.util.List;
import java.util.UUID; import java.util.UUID;
import java.util.concurrent.CompletableFuture;
import java.util.stream.Collectors; import java.util.stream.Collectors;
public final class ChatUserManager { public final class ChatUserManager {
private static ArrayList<ChatUser> chatUsers;// not sure on this, could cause errors later on private static ArrayList<ChatUser> chatUsers;
public static void initialize() { public static void initialize() {
chatUsers = new ArrayList<>(); chatUsers = new ArrayList<>();
@ -31,11 +32,14 @@ public final class ChatUserManager {
return user; return user;
} }
} }
ChatUser chatUser = Queries.loadChatUser(uuid); // todo move the CompletableFuture to Queries
if (chatUser != null) { return CompletableFuture.supplyAsync(() -> {
ChatUserManager.addUser(chatUser); ChatUser loadChatUser = Queries.loadChatUser(uuid);
} if (loadChatUser != null) {
return chatUser; ChatUserManager.addUser(loadChatUser);
}
return loadChatUser;
}).join();
// if(user == null) user = new ChatUser(uuid, -1, false, false); // if(user == null) user = new ChatUser(uuid, -1, false, false);
// Queries.saveUser(user); // Queries.saveUser(user);
// chatUsers.add(user); // chatUsers.add(user);

View File

@ -56,6 +56,15 @@
<id>placeholderapi</id> <id>placeholderapi</id>
<url>https://repo.extendedclip.com/content/repositories/placeholderapi/</url> <url>https://repo.extendedclip.com/content/repositories/placeholderapi/</url>
</repository> </repository>
<repository>
<id>dv8tion</id>
<name>m2-dv8tion</name>
<url>https://m2.dv8tion.net/releases</url>
</repository>
<repository>
<id>jitpack.io</id>
<url>https://jitpack.io</url>
</repository>
</repositories> </repositories>
<dependencies> <dependencies>
<dependency> <dependency>
@ -70,12 +79,30 @@
<version>1.7.30</version> <version>1.7.30</version>
<scope>compile</scope> <scope>compile</scope>
</dependency> </dependency>
<dependency>
<groupId>net.dv8tion</groupId>
<artifactId>JDA</artifactId>
<version>4.3.0_291</version>
<scope>compile</scope>
<exclusions>
<exclusion>
<artifactId>opus-java</artifactId>
<groupId>club.minnced</groupId>
</exclusion>
</exclusions>
</dependency>
<dependency> <dependency>
<groupId>me.clip</groupId> <groupId>me.clip</groupId>
<artifactId>placeholderapi</artifactId> <artifactId>placeholderapi</artifactId>
<version>2.10.10</version> <version>2.10.10</version>
<scope>provided</scope> <scope>provided</scope>
</dependency> </dependency>
<dependency>
<groupId>com.gitlab.ruany</groupId>
<artifactId>LiteBansAPI</artifactId>
<version>0.3.4</version>
<scope>provided</scope>
</dependency>
</dependencies> </dependencies>
<properties> <properties>
<maven.compiler.target>11</maven.compiler.target> <maven.compiler.target>11</maven.compiler.target>

View File

@ -25,7 +25,7 @@ public class PlayerListener implements Listener {
ChatUser user = ChatUserManager.getChatUser(uuid); ChatUser user = ChatUserManager.getChatUser(uuid);
if(user != null) return; if(user != null) return;
// todo actually load the users from db // user failed to load - create a new one
ChatUser chatUser = new ChatUser(uuid, -1, false, false); ChatUser chatUser = new ChatUser(uuid, -1, false, false);
ChatUserManager.addUser(chatUser); ChatUserManager.addUser(chatUser);
Queries.saveUser(chatUser); Queries.saveUser(chatUser);