diff options
| author | Myles <mylesandmore9@gmail.com> | 2022-12-11 01:08:11 -0600 | 
|---|---|---|
| committer | Myles <mylesandmore9@gmail.com> | 2022-12-11 01:08:11 -0600 | 
| commit | bfc632c3d5d9b4419de023542c32a58869c7eb60 (patch) | |
| tree | 8b992cffb02d5394184c60ee6b5a603f587aa5e2 | |
| parent | 9b6ef346a5bd3de1a54600bd4aece287a7cbb526 (diff) | |
| download | Tumble-bfc632c3d5d9b4419de023542c32a58869c7eb60.tar.gz Tumble-bfc632c3d5d9b4419de023542c32a58869c7eb60.tar.bz2 Tumble-bfc632c3d5d9b4419de023542c32a58869c7eb60.zip | |
fix bugs
| -rw-r--r-- | src/main/java/com/MylesAndMore/tumble/Game.java | 26 | ||||
| -rw-r--r-- | src/main/java/com/MylesAndMore/tumble/commands/StartGame.java | 2 | 
2 files changed, 24 insertions, 4 deletions
| diff --git a/src/main/java/com/MylesAndMore/tumble/Game.java b/src/main/java/com/MylesAndMore/tumble/Game.java index b5932e3..064b5ae 100644 --- a/src/main/java/com/MylesAndMore/tumble/Game.java +++ b/src/main/java/com/MylesAndMore/tumble/Game.java @@ -8,6 +8,8 @@ import net.md_5.bungee.api.chat.TextComponent;  import org.bukkit.*;  import org.bukkit.enchantments.Enchantment; +import org.bukkit.entity.Entity; +import org.bukkit.entity.Item;  import org.bukkit.entity.Player;  import org.bukkit.inventory.ItemStack;  import org.jetbrains.annotations.NotNull; @@ -42,6 +44,8 @@ public class Game {      private String gameType;      // Define a variable for the autostart PID      private int autoStartID = -1; +    // Define a variable for music ID +    private int musicID = -1;      // Initialize a new instance of the Random class for use later      private final Random Random = new Random(); @@ -186,7 +190,14 @@ public class Game {       */      public void playerDeath(Player player) {          player.setGameMode(GameMode.SPECTATOR); -        player.teleport(gameSpawn); +        // Add a delay to tp them to the gameWorld just in case they have a bed in another world +        // Delay is needed because instant respawn takes 1t +        Bukkit.getServer().getScheduler().scheduleSyncDelayedTask(TumbleManager.getPlugin(), () -> { +            player.teleport(gameSpawn); +            Bukkit.getServer().getScheduler().scheduleSyncDelayedTask(TumbleManager.getPlugin(), () -> { +                player.setGameMode(GameMode.SPECTATOR); +            }, 5); +        }, 5);          // If there are more than 2 players in the game,          if (roundPlayers.size() > 2) {              // remove that player (who just died) from the roundPlayersArray, effectively eliminating them, @@ -364,10 +375,11 @@ public class Game {                  "minecraft:tumble.7",                  "minecraft:tumble.8",                  "minecraft:tumble.9")); +        String currentSong = sounds.get(Random.nextInt(sounds.size()));          for (Player aPlayer : players) { -            aPlayer.playSound(aPlayer.getLocation(), sounds.get(Random.nextInt(sounds.size())), category, volume, pitch); +            aPlayer.playSound(aPlayer.getLocation(), currentSong, category, volume, pitch);          } -        Bukkit.getServer().getScheduler().scheduleSyncDelayedTask(TumbleManager.getPlugin(), () -> { +        musicID = Bukkit.getServer().getScheduler().scheduleSyncDelayedTask(TumbleManager.getPlugin(), () -> {              playMusic(gamePlayers, SoundCategory.NEUTRAL, 1, 1);          }, 1460);      } @@ -425,6 +437,12 @@ public class Game {                  generateLayers(gameType);                  // Wait 5s (100t) for tp method                  Bukkit.getServer().getScheduler().scheduleSyncDelayedTask(TumbleManager.getPlugin(), () -> { +                    // Kill all items (pistons are weird) +                    for (Entity entity : gameWorld.getEntities()) { +                        if (entity instanceof Item) { +                            entity.remove(); +                        } +                    }                      // Re-scatter players                      gameState = "starting";                      scatterPlayers(gamePlayers); @@ -457,6 +475,8 @@ public class Game {          displayActionbar(gamePlayers, ChatColor.BLUE + "Returning to lobby in ten seconds...");          // Wait 10s (200t), then          Bukkit.getServer().getScheduler().scheduleSyncDelayedTask(TumbleManager.getPlugin(), () -> { +            // Stop music from replaying +            Bukkit.getServer().getScheduler().cancelTask(musicID);              // First, check to see if there is a separate location to tp the winner to              if ((TumbleManager.getPlugin().getConfig().getDouble("winnerTeleport.x") != 0) && (TumbleManager.getPlugin().getConfig().getDouble("winnerTeleport.y") != 0)  && (TumbleManager.getPlugin().getConfig().getDouble("winnerTeleport.z") != 0)) {                  // Tp the winner to that location diff --git a/src/main/java/com/MylesAndMore/tumble/commands/StartGame.java b/src/main/java/com/MylesAndMore/tumble/commands/StartGame.java index 652b222..c138cda 100644 --- a/src/main/java/com/MylesAndMore/tumble/commands/StartGame.java +++ b/src/main/java/com/MylesAndMore/tumble/commands/StartGame.java @@ -17,7 +17,7 @@ public class StartGame implements CommandExecutor {              // Check if there is a lobbyWorld specified in config              if (TumbleManager.getLobbyWorld() != null) {                  // Check if there is more than one person in lobby -                if (TumbleManager.getPlayersInLobby().size() > 0) { +                if (TumbleManager.getPlayersInLobby().size() > 1) {                      // Check if there is a gameWorld specified in config                      if (TumbleManager.getGameWorld() != null) {                          // Check if a game is already pending to start | 
