Run #fetchMojangServerStatuses in parallel

This commit is contained in:
Braydon 2024-04-13 13:04:43 -04:00
parent b800badcc3
commit 9c4a39641d
2 changed files with 5 additions and 6 deletions

@ -23,6 +23,7 @@
*/
package me.braydon.mc.model.cache;
import com.fasterxml.jackson.annotation.JsonBackReference;
import com.fasterxml.jackson.annotation.JsonIgnore;
import lombok.*;
import me.braydon.mc.model.MinecraftServer;
@ -45,7 +46,7 @@ public final class CachedMinecraftServer implements Serializable {
/**
* The cached server.
*/
@NonNull private final MinecraftServer value;
@JsonBackReference @NonNull private final MinecraftServer value;
/**
* The unix timestamp of when this

@ -520,14 +520,12 @@ public final class MojangService {
@SneakyThrows
private void fetchMojangServerStatuses() {
log.info("Checking Mojang server statuses...");
long before = System.currentTimeMillis();
for (MojangServer server : MojangServer.values()) {
Arrays.stream(MojangServer.values()).parallel().forEach(server -> {
log.info("Pinging {}...", server.getEndpoint());
MojangServer.Status status = server.getStatus(); // Retrieve the server status
log.info("Retrieved status of {}: {}", server.getEndpoint(), status.name());
mojangServerStatuses.put(server, status); // Cache the server status
}
log.info("Mojang server status check took {}ms", System.currentTimeMillis() - before);
});
}
/**
@ -561,7 +559,7 @@ public final class MojangService {
return true;
}
String hashed = Hashing.sha1().hashBytes(hostname.toLowerCase().getBytes(StandardCharsets.ISO_8859_1)).toString();
boolean blocked = bannedServerHashes.contains(hashed); // Is the hostname blocked?
boolean blocked = bannedServerHashes != null && (bannedServerHashes.contains(hashed)); // Is the hostname blocked?
if (blocked) { // Cache the blocked hostname
blockedServersCache.add(hostname);
}