From b708d041411384b4c853da25642ae8acec6bb8d2 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Federico=20L=C3=B3pez?= Date: Sun, 31 Jan 2021 08:01:44 -0300 Subject: [PATCH] Improve CraftBukkit detection (#2867) --- .../bukkit/listeners/BukkitConnectionListener.java | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/bukkit/src/main/java/me/lucko/luckperms/bukkit/listeners/BukkitConnectionListener.java b/bukkit/src/main/java/me/lucko/luckperms/bukkit/listeners/BukkitConnectionListener.java index 87918aa38..b2abf075f 100644 --- a/bukkit/src/main/java/me/lucko/luckperms/bukkit/listeners/BukkitConnectionListener.java +++ b/bukkit/src/main/java/me/lucko/luckperms/bukkit/listeners/BukkitConnectionListener.java @@ -50,8 +50,12 @@ import java.util.HashSet; import java.util.Set; import java.util.UUID; import java.util.concurrent.TimeUnit; +import java.util.function.Predicate; +import java.util.regex.Pattern; public class BukkitConnectionListener extends AbstractConnectionListener implements Listener { + private static final Predicate IS_CRAFTBUKKIT_PREDICATE = Pattern.compile("^(?:git|\\d+)-Bukkit-[0-9a-f]{7}(?: .*)?$").asPredicate(); + private final LPBukkitPlugin plugin; private final boolean detectedCraftBukkitOfflineMode; @@ -67,7 +71,7 @@ public class BukkitConnectionListener extends AbstractConnectionListener impleme String version = plugin.getBootstrap().getServer().getVersion(); boolean onlineMode = plugin.getBootstrap().getServer().getOnlineMode(); - if (!onlineMode && version.startsWith("git-Bukkit-")) { + if (!onlineMode && IS_CRAFTBUKKIT_PREDICATE.test(version)) { printCraftBukkitOfflineModeError(); this.detectedCraftBukkitOfflineMode = true; } else {