diff --git a/agones/build.gradle.kts b/agones/build.gradle.kts deleted file mode 100644 index 1cbdc40..0000000 --- a/agones/build.gradle.kts +++ /dev/null @@ -1,14 +0,0 @@ -plugins { - java - `java-library` -} - -dependencies { - api(libs.agones4j) - api(libs.grpc.stub) - api(libs.grpc.protobuf) - api(libs.grpc.netty) - api(libs.grpc.okhttp) - api(libs.tomcat.annotations.api) - api("com.google.protobuf:protobuf-java:4.32.1") -} \ No newline at end of file diff --git a/agones/src/main/java/net/onelitefeather/agones/AgonesAPI.java b/agones/src/main/java/net/onelitefeather/agones/AgonesAPI.java deleted file mode 100644 index 60ebb89..0000000 --- a/agones/src/main/java/net/onelitefeather/agones/AgonesAPI.java +++ /dev/null @@ -1,46 +0,0 @@ -package net.onelitefeather.agones; - -import agones.dev.sdk.Sdk; - -import java.time.Duration; -import java.util.concurrent.CompletableFuture; - -/** - * The Agones Integration. - */ -public sealed interface AgonesAPI permits AgonesAPIImpl { - - /** - * Sets the GameServer to ready. - */ - void setReady(); - - /** - * Shuts down the GameServer. - */ - void shutdown(); - - /** - * Sends a health check to the GameServer. - */ - void alive(); - - /** - * Reserves the GameServer for a specific duration. - * - * @param duration the duration to reserve the GameServer - */ - void reserve(Duration duration); - - CompletableFuture allocateFuture(); - - /** - * Creates a new instance of the Agones API. - * - * @return a new instance of the Agones API - */ - static AgonesAPI instance() { - return AgonesAPIImpl.instance(); - } - -} diff --git a/agones/src/main/java/net/onelitefeather/agones/AgonesAPIImpl.java b/agones/src/main/java/net/onelitefeather/agones/AgonesAPIImpl.java deleted file mode 100644 index 0d9c5b5..0000000 --- a/agones/src/main/java/net/onelitefeather/agones/AgonesAPIImpl.java +++ /dev/null @@ -1,58 +0,0 @@ -package net.onelitefeather.agones; - -import agones.dev.sdk.Sdk; -import io.grpc.stub.StreamObserver; -import net.infumia.agones4j.Agones; - -import java.time.Duration; -import java.util.concurrent.CompletableFuture; - -final class AgonesAPIImpl implements AgonesAPI { - - private static final AgonesAPIImpl INSTANCE = new AgonesAPIImpl(); - - private final Agones agones; - private StreamObserver healthCheckStream; - - private AgonesAPIImpl() { - this.agones = Agones.builder().withAddress().build(); - if (null != agones) { - healthCheckStream = this.agones.healthCheckStream(); - } - } - - @Override - public void setReady() { - this.agones.ready(); - } - - @Override - public void shutdown() { - this.agones.shutdown(); - } - - @Override - public void alive() { - if (null != healthCheckStream) { - healthCheckStream.onNext(Sdk.Empty.getDefaultInstance()); - } - } - - @Override - public void reserve(Duration duration) { - this.agones.reserve(duration); - } - - @Override - public CompletableFuture allocateFuture() { - return this.agones.allocateFuture(); - } - - synchronized static AgonesAPI instance() { - if (INSTANCE == null) { - return new AgonesAPIImpl(); - } - return INSTANCE; - } - -} diff --git a/game/build.gradle.kts b/game/build.gradle.kts index 290d413..4f7b516 100644 --- a/game/build.gradle.kts +++ b/game/build.gradle.kts @@ -22,7 +22,6 @@ dependencies { implementation(platform(libs.mycelium.bom)) implementation(platform(libs.aonyx.bom)) implementation(project(":common")) - implementation(project(":agones")) implementation(libs.minestom) implementation(libs.aves) implementation(libs.xerus) diff --git a/game/src/main/java/net/onelitefeather/cygnus/Cygnus.java b/game/src/main/java/net/onelitefeather/cygnus/Cygnus.java index b13bd89..b844a85 100644 --- a/game/src/main/java/net/onelitefeather/cygnus/Cygnus.java +++ b/game/src/main/java/net/onelitefeather/cygnus/Cygnus.java @@ -17,11 +17,9 @@ import net.minestom.server.event.player.PlayerDisconnectEvent; import net.minestom.server.event.player.PlayerEntityInteractEvent; import net.minestom.server.event.player.PlayerSpawnEvent; -import net.minestom.server.event.server.ServerTickMonitorEvent; import net.minestom.server.instance.InstanceContainer; import net.minestom.server.listener.EntityActionListener; import net.minestom.server.network.packet.client.play.ClientEntityActionPacket; -import net.onelitefeather.agones.AgonesAPI; import net.onelitefeather.cygnus.ambient.AmbientProvider; import net.onelitefeather.cygnus.command.StartCommand; import net.onelitefeather.cygnus.common.ListenerHandling; @@ -138,7 +136,6 @@ private void initListener() { ); manager.addListener(PlayerChatEvent.class, new PlayerChatListener()); registerCancelListener(manager); - manager.addListener(ServerTickMonitorEvent.class, event -> AgonesAPI.instance().alive()); } private void registerGameListener() { diff --git a/game/src/main/java/net/onelitefeather/cygnus/CygnusLoader.java b/game/src/main/java/net/onelitefeather/cygnus/CygnusLoader.java index 7f060b2..a7acef1 100644 --- a/game/src/main/java/net/onelitefeather/cygnus/CygnusLoader.java +++ b/game/src/main/java/net/onelitefeather/cygnus/CygnusLoader.java @@ -1,13 +1,11 @@ package net.onelitefeather.cygnus; import net.minestom.server.MinecraftServer; -import net.onelitefeather.agones.AgonesAPI; public final class CygnusLoader { public static void main(String[] args) { MinecraftServer server = MinecraftServer.init(); - MinecraftServer.getSchedulerManager().buildShutdownTask(AgonesAPI.instance()::shutdown); new Cygnus(); server.start("0.0.0.0", 25565); } diff --git a/game/src/main/java/net/onelitefeather/cygnus/phase/GamePhase.java b/game/src/main/java/net/onelitefeather/cygnus/phase/GamePhase.java index b32cdfa..45b787e 100644 --- a/game/src/main/java/net/onelitefeather/cygnus/phase/GamePhase.java +++ b/game/src/main/java/net/onelitefeather/cygnus/phase/GamePhase.java @@ -1,22 +1,17 @@ package net.onelitefeather.cygnus.phase; -import agones.dev.sdk.Sdk; import net.theevilreaper.aves.util.functional.VoidConsumer; import net.theevilreaper.xerus.api.phase.TickDirection; import net.theevilreaper.xerus.api.phase.TimedPhase; import net.minestom.server.MinecraftServer; import net.minestom.server.event.player.PlayerTickEvent; -import net.onelitefeather.agones.AgonesAPI; import net.onelitefeather.cygnus.event.GameFinishEvent; import net.onelitefeather.cygnus.listener.player.CygnusPlayerTickListener; import net.onelitefeather.cygnus.view.GameView; import org.jetbrains.annotations.NotNull; -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; import java.time.temporal.ChronoUnit; import java.util.HashSet; -import java.util.concurrent.CompletableFuture; /** * @author theEvilReaper @@ -25,7 +20,6 @@ **/ public final class GamePhase extends TimedPhase { - private static final Logger LOGGER = LoggerFactory.getLogger(GamePhase.class); private final GameView gameView; private final Runnable startRunnable; private final VoidConsumer updateWorldTime; @@ -70,19 +64,9 @@ public void setFinishEvent(@NotNull GameFinishEvent finishEvent) { public void onStart() { super.onStart(); addListener(PlayerTickEvent.class, new CygnusPlayerTickListener()); - AgonesAPI.instance().allocateFuture() - .exceptionallyCompose(this::allocateFuture) - .exceptionallyCompose(this::allocateFuture) - .exceptionallyCompose(this::allocateFuture) - .thenRun(() -> LOGGER.info("GameServer allocated")); this.startRunnable.run(); } - private CompletableFuture allocateFuture(Throwable throwable) { - LOGGER.error("Failed to allocate the GameServer", throwable); - return AgonesAPI.instance().allocateFuture(); - } - @Override protected void onFinish() { finishEvent = finishEvent == null ? new GameFinishEvent(GameFinishEvent.Reason.TIME_OVER) : finishEvent; diff --git a/game/src/main/java/net/onelitefeather/cygnus/phase/LobbyPhase.java b/game/src/main/java/net/onelitefeather/cygnus/phase/LobbyPhase.java index 6e62a8b..2c43624 100644 --- a/game/src/main/java/net/onelitefeather/cygnus/phase/LobbyPhase.java +++ b/game/src/main/java/net/onelitefeather/cygnus/phase/LobbyPhase.java @@ -9,10 +9,8 @@ import net.minestom.server.entity.Player; import net.minestom.server.network.ConnectionManager; import net.minestom.server.timer.Task; -import net.onelitefeather.agones.AgonesAPI; import org.jetbrains.annotations.NotNull; -import java.time.Duration; import java.time.temporal.ChronoUnit; import static net.onelitefeather.cygnus.common.config.GameConfig.FORCE_START_TIME; @@ -90,7 +88,6 @@ public void checkStopCondition() { public void start() { super.start(); setLevel(); - AgonesAPI.instance().reserve(Duration.ofMinutes(5)); } @Override diff --git a/settings.gradle.kts b/settings.gradle.kts index 4765dd8..6c2a324 100644 --- a/settings.gradle.kts +++ b/settings.gradle.kts @@ -72,4 +72,3 @@ dependencyResolutionManagement { include("common") include("setup") include("game") -include("agones")