From 40d0950d22280206cf8d711987d9abb41da6a0fb Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Elias=20M=C3=BCller?= <elias@elias-mueller.com>
Date: Fri, 8 Dec 2023 22:43:25 +0100
Subject: [PATCH] Added floodgate tools

---
 build.gradle                                  |  4 ++++
 .../craftattack/spawn/util/Floodgate.java     | 22 +++++++++++++++++++
 2 files changed, 26 insertions(+)
 create mode 100644 src/main/java/eu/mhsl/craftattack/spawn/util/Floodgate.java

diff --git a/build.gradle b/build.gradle
index 6c0f203..0fa6847 100644
--- a/build.gradle
+++ b/build.gradle
@@ -16,10 +16,14 @@ repositories {
         name = "sonatype"
         url = "https://oss.sonatype.org/content/groups/public/"
     }
+    maven {
+        url = uri("https://repo.opencollab.dev/main/")
+    }
 }
 
 dependencies {
     compileOnly "io.papermc.paper:paper-api:1.19.4-R0.1-SNAPSHOT"
+    compileOnly 'org.geysermc.floodgate:api:2.2.2-SNAPSHOT'
     implementation 'com.squareup.okhttp3:okhttp:4.11.0'
 }
 
diff --git a/src/main/java/eu/mhsl/craftattack/spawn/util/Floodgate.java b/src/main/java/eu/mhsl/craftattack/spawn/util/Floodgate.java
new file mode 100644
index 0000000..5299b00
--- /dev/null
+++ b/src/main/java/eu/mhsl/craftattack/spawn/util/Floodgate.java
@@ -0,0 +1,22 @@
+package eu.mhsl.craftattack.spawn.util;
+
+import org.bukkit.entity.Player;
+import org.geysermc.floodgate.api.FloodgateApi;
+import org.geysermc.floodgate.api.player.FloodgatePlayer;
+
+import java.util.function.Consumer;
+
+public class Floodgate {
+    private static final FloodgateApi instance = FloodgateApi.getInstance();
+    public static boolean isBedrock(Player p) {
+        return instance.isFloodgatePlayer(p.getUniqueId());
+    }
+
+    public static void runBedrockOnly(Player p, Consumer<FloodgatePlayer> callback) {
+        if(isBedrock(p)) callback.accept(instance.getPlayer(p.getUniqueId()));
+    }
+
+    public static void runJavaOnly(Player p, Consumer<Player> callback) {
+        if(!isBedrock(p)) callback.accept(p);
+    }
+}