From 490d8b989142091e26ca78628bbcf255bf3eced7 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Elias=20M=C3=BCller?= Date: Wed, 14 Oct 2026 14:47:59 +0200 Subject: [PATCH] added floodgate uuid check to bedrock utils --- .../spawn/core/util/server/Floodgate.java | 19 +++++++++++++++---- 1 file changed, 15 insertions(+), 4 deletions(-) diff --git a/core/src/main/java/eu/mhsl/craftattack/spawn/core/util/server/Floodgate.java b/core/src/main/java/eu/mhsl/craftattack/spawn/core/util/server/Floodgate.java index b71cc09..22bc3e9 100644 --- a/core/src/main/java/eu/mhsl/craftattack/spawn/core/util/server/Floodgate.java +++ b/core/src/main/java/eu/mhsl/craftattack/spawn/core/util/server/Floodgate.java @@ -5,21 +5,32 @@ import org.geysermc.cumulus.form.SimpleForm; import org.geysermc.floodgate.api.FloodgateApi; import org.geysermc.floodgate.api.player.FloodgatePlayer; +import java.util.UUID; import java.util.function.Consumer; public class Floodgate { - private static final FloodgateApi instance = FloodgateApi.getInstance(); + private static FloodgateApi api() { + return FloodgateApi.getInstance(); + } public static boolean isBedrock(Player p) { - return instance.isFloodgatePlayer(p.getUniqueId()); + return api().isFloodgatePlayer(p.getUniqueId()); + } + + /** + * Whether the UUID has the format Floodgate uses for Bedrock players (most significant bits zero). + * Works without the player being online and without the Floodgate API. + */ + public static boolean isFloodgateUuid(UUID uuid) { + return uuid.getMostSignificantBits() == 0; } public static FloodgatePlayer getBedrockPlayer(Player p) { - return instance.getPlayer(p.getUniqueId()); + return api().getPlayer(p.getUniqueId()); } public static void runBedrockOnly(Player p, Consumer callback) { - if(isBedrock(p)) callback.accept(instance.getPlayer(p.getUniqueId())); + if(isBedrock(p)) callback.accept(api().getPlayer(p.getUniqueId())); } public static void runJavaOnly(Player p, Consumer callback) {