From b2a928883bab199221d904cf8953a3151c5cd955 Mon Sep 17 00:00:00 2001 From: 4drian3d Date: Mon, 15 Aug 2022 14:27:41 +0000 Subject: [PATCH] feat: Improved Random SendMode --- .../me/adrianed/authmevelocity/common/MessageType.java | 4 +++- .../authmevelocity/velocity/utils/AuthmeUtils.java | 7 ++++--- 2 files changed, 7 insertions(+), 4 deletions(-) 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());