diff --git a/common/src/main/java/me/adrianed/authmevelocity/common/MessageType.java b/common/src/main/java/me/adrianed/authmevelocity/common/MessageType.java index a37b41f..a6064d7 100644 --- a/common/src/main/java/me/adrianed/authmevelocity/common/MessageType.java +++ b/common/src/main/java/me/adrianed/authmevelocity/common/MessageType.java @@ -5,5 +5,7 @@ import net.kyori.adventure.util.Index; public enum MessageType { LOGIN, REGISTER, LOGOUT, FORCE_UNREGISTER, UNREGISTER; - public static final Index INDEX = Index.create((value) -> value.toString(), MessageType.values()); + // Enum#values is a heavy operation, so... cached MessageType members + public static final Index INDEX + = Index.create(MessageType::toString, MessageType.values()); } diff --git a/velocity/src/main/java/me/adrianed/authmevelocity/velocity/utils/AuthmeUtils.java b/velocity/src/main/java/me/adrianed/authmevelocity/velocity/utils/AuthmeUtils.java index 45a5dcf..64f78a1 100644 --- a/velocity/src/main/java/me/adrianed/authmevelocity/velocity/utils/AuthmeUtils.java +++ b/velocity/src/main/java/me/adrianed/authmevelocity/velocity/utils/AuthmeUtils.java @@ -61,9 +61,10 @@ public class AuthmeUtils { Optional server; if (servers.size() == 1) { server = proxy.getServer(servers.get(0)); - if (server.isPresent()) { - yield Pair.of(server.get().getServerInfo().getName(), server.get()); - } + // It is nonsense to make so many attempts if there are a single server + yield Pair.of( + server.map(sv -> sv.getServerInfo().getName()).orElse(null), + server.orElse(null)); } for (int i = 0; i < attempts; i++) { int value = RANDOM.nextInt(servers.size());