From 68de0397bed4a34b5f3a94e26c6d3a55511665c8 Mon Sep 17 00:00:00 2001 From: Myles <43725835+MylesAndMore@users.noreply.github.com> Date: Thu, 2 Feb 2023 21:56:39 -0600 Subject: [PATCH] Fix "kicked for flying" bug (for real this time) --- src/main/java/com/MylesAndMore/tumble/Game.java | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/src/main/java/com/MylesAndMore/tumble/Game.java b/src/main/java/com/MylesAndMore/tumble/Game.java index 6b4a9ae..1400887 100644 --- a/src/main/java/com/MylesAndMore/tumble/Game.java +++ b/src/main/java/com/MylesAndMore/tumble/Game.java @@ -94,8 +94,6 @@ else if (Objects.equals(gameState, "running")) { // Generate the correct layers for a Shovels game // The else statement is just in case the generator fails; this command will fail if (generateLayers(type)) { - // Put all players in spectator to prevent them from getting kicked for flying - setGamemode(TumbleManager.getPlayersInLobby(), GameMode.SPECTATOR); // Send all players from lobby to the game scatterPlayers(TumbleManager.getPlayersInLobby()); } else { @@ -114,6 +112,10 @@ else if (Objects.equals(gameState, "running")) { // Create a list that will later keep track of each player's wins gameWins = new ArrayList<>(); gameWins.addAll(List.of(0,0,0,0,0,0,0,0)); + // Put all players in spectator to prevent them from getting kicked for flying (this needs a delay bc servers are SLOOOWWW) + Bukkit.getServer().getScheduler().scheduleSyncDelayedTask(TumbleManager.getPlugin(), () -> { + setGamemode(gamePlayers, GameMode.SPECTATOR); + }, 25); // Wait 5s (100t) for the clients to load in Bukkit.getServer().getScheduler().scheduleSyncDelayedTask(TumbleManager.getPlugin(), () -> { // Begin the countdown sequence