diff options
| author | sowgro <tpoke.ferrari@gmail.com> | 2024-07-31 22:11:38 -0400 | 
|---|---|---|
| committer | sowgro <tpoke.ferrari@gmail.com> | 2024-07-31 22:11:38 -0400 | 
| commit | ac7778112934593d65e2e7c06794a141ed47ab63 (patch) | |
| tree | 53942cbee89f10be291938aff611e4fff2b210c7 /src | |
| parent | 13b5a6bbfb246906caf98c77589718fefa091084 (diff) | |
| download | Tumble-ac7778112934593d65e2e7c06794a141ed47ab63.tar.gz Tumble-ac7778112934593d65e2e7c06794a141ed47ab63.tar.bz2 Tumble-ac7778112934593d65e2e7c06794a141ed47ab63.zip | |
Make managers static again
Diffstat (limited to 'src')
19 files changed, 175 insertions, 202 deletions
| diff --git a/src/main/java/com/MylesAndMore/Tumble/Main.java b/src/main/java/com/MylesAndMore/Tumble/Main.java index ca1c4f7..eb1c4e0 100644 --- a/src/main/java/com/MylesAndMore/Tumble/Main.java +++ b/src/main/java/com/MylesAndMore/Tumble/Main.java @@ -16,17 +16,13 @@ import java.util.Objects;  public class Main extends JavaPlugin{      public static Main plugin; -    public static LanguageManager languageManager; -    public static ArenaManager arenaManager; -    public static ConfigManager configManager; -      @Override      public void onEnable() {          plugin = this; -        languageManager = new LanguageManager(); -        configManager = new ConfigManager(); -        arenaManager = new ArenaManager(); +        LanguageManager.readConfig(); +        ConfigManager.readConfig(); +        ArenaManager.readConfig();          Objects.requireNonNull(this.getCommand("tumble")).setExecutor(new Tumble());          new Metrics(this, 16940); @@ -37,7 +33,7 @@ public class Main extends JavaPlugin{      @Override      public void onDisable() {          // stop running games -        for (Arena a : arenaManager.arenas.values()) { +        for (Arena a : ArenaManager.arenas.values()) {              if (a.game != null) {                  a.game.stopGame();              } diff --git a/src/main/java/com/MylesAndMore/Tumble/commands/Create.java b/src/main/java/com/MylesAndMore/Tumble/commands/Create.java index d21f8a4..667be5e 100644 --- a/src/main/java/com/MylesAndMore/Tumble/commands/Create.java +++ b/src/main/java/com/MylesAndMore/Tumble/commands/Create.java @@ -1,5 +1,7 @@  package com.MylesAndMore.Tumble.commands; +import com.MylesAndMore.Tumble.config.ArenaManager; +import com.MylesAndMore.Tumble.config.LanguageManager;  import com.MylesAndMore.Tumble.game.Arena;  import com.MylesAndMore.Tumble.plugin.SubCommand;  import org.bukkit.command.Command; @@ -11,9 +13,6 @@ import org.jetbrains.annotations.NotNull;  import java.util.Collections;  import java.util.List; -import static com.MylesAndMore.Tumble.Main.arenaManager; -import static com.MylesAndMore.Tumble.Main.languageManager; -  public class Create implements SubCommand, CommandExecutor, TabCompleter {      @Override      public String getCommandName() { @@ -28,14 +27,14 @@ public class Create implements SubCommand, CommandExecutor, TabCompleter {      @Override      public boolean onCommand(@NotNull CommandSender sender, @NotNull Command command, @NotNull String label, String[] args) {          if (args.length == 0 || args[0] == null || args[0].isEmpty()) { -            sender.sendMessage(languageManager.fromKey("missing-arena-parameter")); +            sender.sendMessage(LanguageManager.fromKey("missing-arena-parameter"));              return false;          }          String arenaName = args[0]; -        arenaManager.arenas.put(arenaName, new Arena(arenaName)); -        arenaManager.WriteConfig(); -        sender.sendMessage(languageManager.fromKey("create-success")); +        ArenaManager.arenas.put(arenaName, new Arena(arenaName)); +        ArenaManager.WriteConfig(); +        sender.sendMessage(LanguageManager.fromKey("create-success"));          return true;      } diff --git a/src/main/java/com/MylesAndMore/Tumble/commands/ForceStart.java b/src/main/java/com/MylesAndMore/Tumble/commands/ForceStart.java index 121b946..3953bea 100644 --- a/src/main/java/com/MylesAndMore/Tumble/commands/ForceStart.java +++ b/src/main/java/com/MylesAndMore/Tumble/commands/ForceStart.java @@ -1,5 +1,7 @@  package com.MylesAndMore.Tumble.commands; +import com.MylesAndMore.Tumble.config.ArenaManager; +import com.MylesAndMore.Tumble.config.LanguageManager;  import com.MylesAndMore.Tumble.game.Game;  import com.MylesAndMore.Tumble.plugin.GameState;  import com.MylesAndMore.Tumble.plugin.SubCommand; @@ -13,9 +15,6 @@ import org.jetbrains.annotations.NotNull;  import java.util.ArrayList;  import java.util.List; -import static com.MylesAndMore.Tumble.Main.arenaManager; -import static com.MylesAndMore.Tumble.Main.languageManager; -  public class ForceStart implements SubCommand, CommandExecutor, TabCompleter {      @Override @@ -34,23 +33,23 @@ public class ForceStart implements SubCommand, CommandExecutor, TabCompleter {          Game game;          if (args.length < 1 || args[0] == null) {              // no arena passed in, try to infer from game player is in -            game = arenaManager.findGamePlayerIsIn((Player)sender); +            game = ArenaManager.findGamePlayerIsIn((Player)sender);              if (game == null) { -                sender.sendMessage(languageManager.fromKey("missing-arena-parameter")); +                sender.sendMessage(LanguageManager.fromKey("missing-arena-parameter"));                  return false;              }          }          else {              String arenaName = args[0]; -            if (!arenaManager.arenas.containsKey(arenaName)) { -                sender.sendMessage(languageManager.fromKey("invalid-arena").replace("%arena%",arenaName)); +            if (!ArenaManager.arenas.containsKey(arenaName)) { +                sender.sendMessage(LanguageManager.fromKey("invalid-arena").replace("%arena%",arenaName));                  return false;              } -            game = arenaManager.arenas.get(arenaName).game; +            game = ArenaManager.arenas.get(arenaName).game;          }          if (game == null) { -            sender.sendMessage(languageManager.fromKey("no-game-in-arena")); +            sender.sendMessage(LanguageManager.fromKey("no-game-in-arena"));              return false;          } @@ -59,14 +58,14 @@ public class ForceStart implements SubCommand, CommandExecutor, TabCompleter {          }          game.gameStart(); -        sender.sendMessage(languageManager.fromKey("forcestart-success")); +        sender.sendMessage(LanguageManager.fromKey("forcestart-success"));          return true;      }      @Override      public List<String> onTabComplete(@NotNull CommandSender sender, @NotNull Command command, @NotNull String label, String[] args) {          if (args.length == 1) { -            return arenaManager.arenas.keySet().stream().toList(); +            return ArenaManager.arenas.keySet().stream().toList();          }          return new ArrayList<>();      } diff --git a/src/main/java/com/MylesAndMore/Tumble/commands/ForceStop.java b/src/main/java/com/MylesAndMore/Tumble/commands/ForceStop.java index a69779a..37d3465 100644 --- a/src/main/java/com/MylesAndMore/Tumble/commands/ForceStop.java +++ b/src/main/java/com/MylesAndMore/Tumble/commands/ForceStop.java @@ -1,5 +1,7 @@  package com.MylesAndMore.Tumble.commands; +import com.MylesAndMore.Tumble.config.ArenaManager; +import com.MylesAndMore.Tumble.config.LanguageManager;  import com.MylesAndMore.Tumble.game.Game;  import com.MylesAndMore.Tumble.plugin.SubCommand;  import org.bukkit.command.Command; @@ -12,9 +14,6 @@ import org.jetbrains.annotations.NotNull;  import java.util.ArrayList;  import java.util.List; -import static com.MylesAndMore.Tumble.Main.arenaManager; -import static com.MylesAndMore.Tumble.Main.languageManager; -  public class ForceStop implements SubCommand, CommandExecutor, TabCompleter {      @Override @@ -33,35 +32,35 @@ public class ForceStop implements SubCommand, CommandExecutor, TabCompleter {          Game game;          if (args.length < 1 || args[0] == null) {              // no arena passed in, try to infer from game player is in -            game = arenaManager.findGamePlayerIsIn((Player)sender); +            game = ArenaManager.findGamePlayerIsIn((Player)sender);              if (game == null) { -                sender.sendMessage(languageManager.fromKey("missing-arena-parameter")); +                sender.sendMessage(LanguageManager.fromKey("missing-arena-parameter"));                  return false;              }          }          else {              String arenaName = args[0]; -            if (!arenaManager.arenas.containsKey(arenaName)) { -                sender.sendMessage(languageManager.fromKey("invalid-arena").replace("%arena%",arenaName)); +            if (!ArenaManager.arenas.containsKey(arenaName)) { +                sender.sendMessage(LanguageManager.fromKey("invalid-arena").replace("%arena%",arenaName));                  return false;              } -            game = arenaManager.arenas.get(arenaName).game; +            game = ArenaManager.arenas.get(arenaName).game;          }          if (game == null) { -            sender.sendMessage(languageManager.fromKey("no-game-in-arena")); +            sender.sendMessage(LanguageManager.fromKey("no-game-in-arena"));              return false;          }          game.stopGame(); -        sender.sendMessage(languageManager.fromKey("forcestop-success")); +        sender.sendMessage(LanguageManager.fromKey("forcestop-success"));          return true;      }      @Override      public List<String> onTabComplete(@NotNull CommandSender sender, @NotNull Command command, @NotNull String label, String[] args) {          if (args.length == 1) { -            return arenaManager.arenas.keySet().stream().toList(); +            return ArenaManager.arenas.keySet().stream().toList();          }          return new ArrayList<>();      } diff --git a/src/main/java/com/MylesAndMore/Tumble/commands/Join.java b/src/main/java/com/MylesAndMore/Tumble/commands/Join.java index 6b5494d..6ce33c3 100644 --- a/src/main/java/com/MylesAndMore/Tumble/commands/Join.java +++ b/src/main/java/com/MylesAndMore/Tumble/commands/Join.java @@ -1,5 +1,7 @@  package com.MylesAndMore.Tumble.commands; +import com.MylesAndMore.Tumble.config.ArenaManager; +import com.MylesAndMore.Tumble.config.LanguageManager;  import com.MylesAndMore.Tumble.game.Arena;  import com.MylesAndMore.Tumble.game.Game;  import com.MylesAndMore.Tumble.plugin.GameState; @@ -18,9 +20,6 @@ import java.util.List;  import java.util.Objects;  import java.util.stream.Collectors; -import static com.MylesAndMore.Tumble.Main.arenaManager; -import static com.MylesAndMore.Tumble.Main.languageManager; -  public class Join implements SubCommand, CommandExecutor, TabCompleter {      @Override @@ -37,32 +36,33 @@ public class Join implements SubCommand, CommandExecutor, TabCompleter {      public boolean onCommand(@NotNull CommandSender sender, @NotNull Command command, @NotNull String label, String[] args) {          if (!(sender instanceof Player p)) { -            sender.sendMessage(languageManager.fromKey("not-for-console")); +            sender.sendMessage(LanguageManager.fromKey("not-for-console"));              return false;          } -        if (arenaManager.findGamePlayerIsIn((Player)sender) != null) { -            sender.sendMessage(languageManager.fromKey("already-in-game")); +        if (ArenaManager.findGamePlayerIsIn((Player)sender) != null) { +            sender.sendMessage(LanguageManager.fromKey("already-in-game")); +            return false;          }          if (args.length < 1 || args[0] == null) { -            sender.sendMessage(languageManager.fromKey("missing-arena-parameter")); +            sender.sendMessage(LanguageManager.fromKey("missing-arena-parameter"));              return false;          }          String arenaName = args[0]; -        if (!arenaManager.arenas.containsKey(arenaName)) +        if (!ArenaManager.arenas.containsKey(arenaName))          { -            sender.sendMessage(languageManager.fromKey("invalid-arena").replace("%arena%", arenaName)); +            sender.sendMessage(LanguageManager.fromKey("invalid-arena").replace("%arena%", arenaName));              return false;          } -        Arena arena = arenaManager.arenas.get(arenaName); +        Arena arena = ArenaManager.arenas.get(arenaName);          Game game;          if (args.length < 2 || args[1] == null) {              // no type specified: try to infer game type from game taking place in the arena              if (arena.game == null) {                  // cant infer if no game is taking place -                sender.sendMessage(languageManager.fromKey("specify-game-type")); +                sender.sendMessage(LanguageManager.fromKey("specify-game-type"));                  return false;              } @@ -76,7 +76,7 @@ public class Join implements SubCommand, CommandExecutor, TabCompleter {                  case "snowballs", "snowball" -> type = GameType.SNOWBALLS;                  case "mix", "mixed"          -> type = GameType.MIXED;                  default                      -> { -                    sender.sendMessage(languageManager.fromKey("invalid-type")); +                    sender.sendMessage(LanguageManager.fromKey("invalid-type"));                      return false;                  }              } @@ -92,7 +92,7 @@ public class Join implements SubCommand, CommandExecutor, TabCompleter {                      game = arena.game;                  }                  else { -                    sender.sendMessage(languageManager.fromKey("another-type-in-arena") +                    sender.sendMessage(LanguageManager.fromKey("another-type-in-arena")                              .replace("%type%",type.toString())                              .replace("%arena%",arenaName));                      return false; @@ -103,20 +103,20 @@ public class Join implements SubCommand, CommandExecutor, TabCompleter {          // check to make sure the arena has a game spawn          if (game.arena.gameSpawn == null) {              if (p.isOp()) { -                sender.sendMessage(languageManager.fromKey("arena-not-ready-op")); +                sender.sendMessage(LanguageManager.fromKey("arena-not-ready-op"));              } else { -                sender.sendMessage(languageManager.fromKey("arena-not-ready")); +                sender.sendMessage(LanguageManager.fromKey("arena-not-ready"));              }              return false;          }          if (game.gameState != GameState.WAITING) { -            sender.sendMessage(languageManager.fromKey("game-in-progress")); +            sender.sendMessage(LanguageManager.fromKey("game-in-progress"));              return false;          }          game.addPlayer((Player)sender); -        sender.sendMessage(languageManager.fromKey("join-success") +        sender.sendMessage(LanguageManager.fromKey("join-success")                  .replace("%type%", game.type.toString())                  .replace("%arena%", arena.name));          return true; @@ -125,7 +125,7 @@ public class Join implements SubCommand, CommandExecutor, TabCompleter {      @Override      public List<String> onTabComplete(@NotNull CommandSender sender, @NotNull Command command, @NotNull String label, String[] args) {          if (args.length == 1) { -            return arenaManager.arenas.keySet().stream().toList(); +            return ArenaManager.arenas.keySet().stream().toList();          }          if (args.length == 2) {              return Arrays.stream(GameType.values()).map(Objects::toString).collect(Collectors.toList()); diff --git a/src/main/java/com/MylesAndMore/Tumble/commands/Leave.java b/src/main/java/com/MylesAndMore/Tumble/commands/Leave.java index f5a4eeb..693f122 100644 --- a/src/main/java/com/MylesAndMore/Tumble/commands/Leave.java +++ b/src/main/java/com/MylesAndMore/Tumble/commands/Leave.java @@ -1,5 +1,7 @@  package com.MylesAndMore.Tumble.commands; +import com.MylesAndMore.Tumble.config.ArenaManager; +import com.MylesAndMore.Tumble.config.LanguageManager;  import com.MylesAndMore.Tumble.game.Game;  import com.MylesAndMore.Tumble.plugin.SubCommand;  import org.bukkit.command.Command; @@ -12,9 +14,6 @@ import org.jetbrains.annotations.NotNull;  import java.util.ArrayList;  import java.util.List; -import static com.MylesAndMore.Tumble.Main.arenaManager; -import static com.MylesAndMore.Tumble.Main.languageManager; -  public class Leave implements SubCommand, CommandExecutor, TabCompleter {      @Override @@ -31,18 +30,18 @@ public class Leave implements SubCommand, CommandExecutor, TabCompleter {      public boolean onCommand(@NotNull CommandSender sender, @NotNull Command command, @NotNull String label, String[] args) {          if (!(sender instanceof Player)) { -            sender.sendMessage(languageManager.fromKey("not-for-console")); +            sender.sendMessage(LanguageManager.fromKey("not-for-console"));              return false;          } -        Game game = arenaManager.findGamePlayerIsIn((Player)sender); +        Game game = ArenaManager.findGamePlayerIsIn((Player)sender);          if (game == null) { -            sender.sendMessage(languageManager.fromKey("no-game-in-arena")); +            sender.sendMessage(LanguageManager.fromKey("no-game-in-arena"));              return false;          }          game.removePlayer((Player) sender); -        sender.sendMessage(languageManager.fromKey("leave-success") +        sender.sendMessage(LanguageManager.fromKey("leave-success")                  .replace("%arena%", game.arena.name)                  .replace("%type%", game.type.toString()));          return true; diff --git a/src/main/java/com/MylesAndMore/Tumble/commands/Reload.java b/src/main/java/com/MylesAndMore/Tumble/commands/Reload.java index 03ce42d..79faef9 100644 --- a/src/main/java/com/MylesAndMore/Tumble/commands/Reload.java +++ b/src/main/java/com/MylesAndMore/Tumble/commands/Reload.java @@ -1,5 +1,7 @@  package com.MylesAndMore.Tumble.commands; +import com.MylesAndMore.Tumble.config.ArenaManager; +import com.MylesAndMore.Tumble.config.LanguageManager;  import com.MylesAndMore.Tumble.game.Arena;  import com.MylesAndMore.Tumble.plugin.SubCommand;  import org.bukkit.command.Command; @@ -11,7 +13,7 @@ import org.jetbrains.annotations.NotNull;  import java.util.ArrayList;  import java.util.List; -import static com.MylesAndMore.Tumble.Main.*; +import static com.MylesAndMore.Tumble.Main.plugin;  public class Reload implements SubCommand, CommandExecutor, TabCompleter { @@ -28,14 +30,14 @@ public class Reload implements SubCommand, CommandExecutor, TabCompleter {      @Override      public boolean onCommand(@NotNull CommandSender sender, @NotNull Command command, @NotNull String label, String[] args) { -        for (Arena a : arenaManager.arenas.values()) { +        for (Arena a : ArenaManager.arenas.values()) {              if (a.game != null) {                  a.game.stopGame();              }          }          plugin.onEnable(); -        sender.sendMessage(languageManager.fromKey("reload-success")); +        sender.sendMessage(LanguageManager.fromKey("reload-success"));          return true;      } diff --git a/src/main/java/com/MylesAndMore/Tumble/commands/Remove.java b/src/main/java/com/MylesAndMore/Tumble/commands/Remove.java index 2d6f9eb..c2aa149 100644 --- a/src/main/java/com/MylesAndMore/Tumble/commands/Remove.java +++ b/src/main/java/com/MylesAndMore/Tumble/commands/Remove.java @@ -1,5 +1,7 @@  package com.MylesAndMore.Tumble.commands; +import com.MylesAndMore.Tumble.config.ArenaManager; +import com.MylesAndMore.Tumble.config.LanguageManager;  import com.MylesAndMore.Tumble.plugin.SubCommand;  import org.bukkit.command.Command;  import org.bukkit.command.CommandExecutor; @@ -10,9 +12,6 @@ import org.jetbrains.annotations.NotNull;  import java.util.Collections;  import java.util.List; -import static com.MylesAndMore.Tumble.Main.arenaManager; -import static com.MylesAndMore.Tumble.Main.languageManager; -  public class Remove implements SubCommand, CommandExecutor, TabCompleter {      @Override @@ -28,26 +27,26 @@ public class Remove implements SubCommand, CommandExecutor, TabCompleter {      @Override      public boolean onCommand(@NotNull CommandSender sender, @NotNull Command command, @NotNull String label, String[] args) {          if (args.length == 0 || args[0] == null || args[0].isEmpty()) { -            sender.sendMessage(languageManager.fromKey("missing-arena-parameter")); +            sender.sendMessage(LanguageManager.fromKey("missing-arena-parameter"));              return false;          }          String arenaName = args[0]; -        if (!arenaManager.arenas.containsKey(arenaName)) { -            sender.sendMessage(languageManager.fromKey("invalid-arena").replace("%arena%",arenaName)); +        if (!ArenaManager.arenas.containsKey(arenaName)) { +            sender.sendMessage(LanguageManager.fromKey("invalid-arena").replace("%arena%",arenaName));              return false;          } -        arenaManager.arenas.remove(arenaName); -        arenaManager.WriteConfig(); -        sender.sendMessage(languageManager.fromKey("remove-success")); +        ArenaManager.arenas.remove(arenaName); +        ArenaManager.WriteConfig(); +        sender.sendMessage(LanguageManager.fromKey("remove-success"));          return true;      }      @Override      public List<String> onTabComplete(@NotNull CommandSender sender, @NotNull Command command, @NotNull String label, String[] args) {          if (args.length == 1) { -            return arenaManager.arenas.keySet().stream().toList(); +            return ArenaManager.arenas.keySet().stream().toList();          }          return Collections.emptyList(); diff --git a/src/main/java/com/MylesAndMore/Tumble/commands/SetGameSpawn.java b/src/main/java/com/MylesAndMore/Tumble/commands/SetGameSpawn.java index 7711de9..21bdfe8 100644 --- a/src/main/java/com/MylesAndMore/Tumble/commands/SetGameSpawn.java +++ b/src/main/java/com/MylesAndMore/Tumble/commands/SetGameSpawn.java @@ -1,5 +1,7 @@  package com.MylesAndMore.Tumble.commands; +import com.MylesAndMore.Tumble.config.ArenaManager; +import com.MylesAndMore.Tumble.config.LanguageManager;  import com.MylesAndMore.Tumble.game.Arena;  import com.MylesAndMore.Tumble.plugin.SubCommand;  import org.bukkit.command.Command; @@ -12,9 +14,6 @@ import org.jetbrains.annotations.NotNull;  import java.util.Collections;  import java.util.List; -import static com.MylesAndMore.Tumble.Main.arenaManager; -import static com.MylesAndMore.Tumble.Main.languageManager; -  public class SetGameSpawn implements SubCommand, CommandExecutor, TabCompleter {      @Override      public String getCommandName() { @@ -29,32 +28,32 @@ public class SetGameSpawn implements SubCommand, CommandExecutor, TabCompleter {      @Override      public boolean onCommand(@NotNull CommandSender sender, @NotNull Command command, @NotNull String label, String[] args) {          if (!(sender instanceof Player)) { -            sender.sendMessage(languageManager.fromKey("not-for-console")); +            sender.sendMessage(LanguageManager.fromKey("not-for-console"));              return false;          }          if (args.length == 0 || args[0] == null || args[0].isEmpty()) { -            sender.sendMessage(languageManager.fromKey("missing-arena-parameter")); +            sender.sendMessage(LanguageManager.fromKey("missing-arena-parameter"));              return false;          }          String arenaName = args[0]; -        if (!arenaManager.arenas.containsKey(arenaName)) { -            sender.sendMessage(languageManager.fromKey("invalid-arena").replace("%arena%",arenaName)); +        if (!ArenaManager.arenas.containsKey(arenaName)) { +            sender.sendMessage(LanguageManager.fromKey("invalid-arena").replace("%arena%",arenaName));              return false;          } -        Arena arena = arenaManager.arenas.get(arenaName); +        Arena arena = ArenaManager.arenas.get(arenaName);          arena.gameSpawn = ((Player)sender).getLocation(); -        arenaManager.WriteConfig(); -        sender.sendMessage(languageManager.fromKey("set-success")); +        ArenaManager.WriteConfig(); +        sender.sendMessage(LanguageManager.fromKey("set-success"));          return true;      }      @Override      public List<String> onTabComplete(@NotNull CommandSender sender, @NotNull Command command, @NotNull String label, String[] args) {          if (args.length == 1) { -            return arenaManager.arenas.keySet().stream().toList(); +            return ArenaManager.arenas.keySet().stream().toList();          }          return Collections.emptyList(); diff --git a/src/main/java/com/MylesAndMore/Tumble/commands/SetKillYLevel.java b/src/main/java/com/MylesAndMore/Tumble/commands/SetKillYLevel.java index 6e2a59e..142ffdd 100644 --- a/src/main/java/com/MylesAndMore/Tumble/commands/SetKillYLevel.java +++ b/src/main/java/com/MylesAndMore/Tumble/commands/SetKillYLevel.java @@ -1,5 +1,7 @@  package com.MylesAndMore.Tumble.commands; +import com.MylesAndMore.Tumble.config.ArenaManager; +import com.MylesAndMore.Tumble.config.LanguageManager;  import com.MylesAndMore.Tumble.game.Arena;  import com.MylesAndMore.Tumble.plugin.SubCommand;  import org.bukkit.command.Command; @@ -12,9 +14,6 @@ import org.jetbrains.annotations.NotNull;  import java.util.Collections;  import java.util.List; -import static com.MylesAndMore.Tumble.Main.arenaManager; -import static com.MylesAndMore.Tumble.Main.languageManager; -  public class SetKillYLevel implements SubCommand, CommandExecutor, TabCompleter {      @Override @@ -30,32 +29,32 @@ public class SetKillYLevel implements SubCommand, CommandExecutor, TabCompleter      @Override      public boolean onCommand(@NotNull CommandSender sender, @NotNull Command command, @NotNull String label, String[] args) {          if (!(sender instanceof Player)) { -            sender.sendMessage(languageManager.fromKey("not-for-console")); +            sender.sendMessage(LanguageManager.fromKey("not-for-console"));              return false;          }          if (args.length == 0 || args[0] == null || args[0].isEmpty()) { -            sender.sendMessage(languageManager.fromKey("missing-arena-parameter")); +            sender.sendMessage(LanguageManager.fromKey("missing-arena-parameter"));              return false;          }          String arenaName = args[0]; -        if (!arenaManager.arenas.containsKey(arenaName)) { -            sender.sendMessage(languageManager.fromKey("invalid-arena").replace("%arena%",arenaName)); +        if (!ArenaManager.arenas.containsKey(arenaName)) { +            sender.sendMessage(LanguageManager.fromKey("invalid-arena").replace("%arena%",arenaName));              return false;          } -        Arena arena = arenaManager.arenas.get(arenaName); +        Arena arena = ArenaManager.arenas.get(arenaName);          arena.killAtY = ((int) ((Player) sender).getLocation().getY()); -        arenaManager.WriteConfig(); -        sender.sendMessage(languageManager.fromKey("set-success")); +        ArenaManager.WriteConfig(); +        sender.sendMessage(LanguageManager.fromKey("set-success"));          return true;      }      @Override      public List<String> onTabComplete(@NotNull CommandSender sender, @NotNull Command command, @NotNull String label, String[] args) {          if (args.length == 1) { -            return arenaManager.arenas.keySet().stream().toList(); +            return ArenaManager.arenas.keySet().stream().toList();          }          return Collections.emptyList(); diff --git a/src/main/java/com/MylesAndMore/Tumble/commands/SetLobby.java b/src/main/java/com/MylesAndMore/Tumble/commands/SetLobby.java index 3dedf50..a080d08 100644 --- a/src/main/java/com/MylesAndMore/Tumble/commands/SetLobby.java +++ b/src/main/java/com/MylesAndMore/Tumble/commands/SetLobby.java @@ -1,5 +1,7 @@  package com.MylesAndMore.Tumble.commands; +import com.MylesAndMore.Tumble.config.ArenaManager; +import com.MylesAndMore.Tumble.config.LanguageManager;  import com.MylesAndMore.Tumble.game.Arena;  import com.MylesAndMore.Tumble.plugin.SubCommand;  import org.bukkit.command.Command; @@ -12,9 +14,6 @@ import org.jetbrains.annotations.NotNull;  import java.util.Collections;  import java.util.List; -import static com.MylesAndMore.Tumble.Main.arenaManager; -import static com.MylesAndMore.Tumble.Main.languageManager; -  public class SetLobby implements SubCommand, CommandExecutor, TabCompleter {      @Override      public String getCommandName() { @@ -29,32 +28,32 @@ public class SetLobby implements SubCommand, CommandExecutor, TabCompleter {      @Override      public boolean onCommand(@NotNull CommandSender sender, @NotNull Command command, @NotNull String label, String[] args) {          if (!(sender instanceof Player)) { -            sender.sendMessage(languageManager.fromKey("not-for-console")); +            sender.sendMessage(LanguageManager.fromKey("not-for-console"));              return false;          }          if (args.length == 0 || args[0] == null || args[0].isEmpty()) { -            sender.sendMessage(languageManager.fromKey("missing-arena-parameter")); +            sender.sendMessage(LanguageManager.fromKey("missing-arena-parameter"));              return false;          }          String arenaName = args[0]; -        if (!arenaManager.arenas.containsKey(arenaName)) { -            sender.sendMessage(languageManager.fromKey("invalid-arena").replace("%arena%",arenaName)); +        if (!ArenaManager.arenas.containsKey(arenaName)) { +            sender.sendMessage(LanguageManager.fromKey("invalid-arena").replace("%arena%",arenaName));              return false;          } -        Arena arena = arenaManager.arenas.get(arenaName); +        Arena arena = ArenaManager.arenas.get(arenaName);          arena.lobby = ((Player)sender).getLocation(); -        arenaManager.WriteConfig(); -        sender.sendMessage(languageManager.fromKey("set-success")); +        ArenaManager.WriteConfig(); +        sender.sendMessage(LanguageManager.fromKey("set-success"));          return true;      }      @Override      public List<String> onTabComplete(@NotNull CommandSender sender, @NotNull Command command, @NotNull String label, String[] args) {          if (args.length == 1) { -            return arenaManager.arenas.keySet().stream().toList(); +            return ArenaManager.arenas.keySet().stream().toList();          }          return Collections.emptyList(); diff --git a/src/main/java/com/MylesAndMore/Tumble/commands/SetWaitArea.java b/src/main/java/com/MylesAndMore/Tumble/commands/SetWaitArea.java index d00a0cb..a96e1a9 100644 --- a/src/main/java/com/MylesAndMore/Tumble/commands/SetWaitArea.java +++ b/src/main/java/com/MylesAndMore/Tumble/commands/SetWaitArea.java @@ -1,5 +1,7 @@  package com.MylesAndMore.Tumble.commands; +import com.MylesAndMore.Tumble.config.ArenaManager; +import com.MylesAndMore.Tumble.config.LanguageManager;  import com.MylesAndMore.Tumble.game.Arena;  import com.MylesAndMore.Tumble.plugin.SubCommand;  import org.bukkit.command.Command; @@ -12,9 +14,6 @@ import org.jetbrains.annotations.NotNull;  import java.util.Collections;  import java.util.List; -import static com.MylesAndMore.Tumble.Main.arenaManager; -import static com.MylesAndMore.Tumble.Main.languageManager; -  public class SetWaitArea implements SubCommand, CommandExecutor, TabCompleter {      @Override      public String getCommandName() { @@ -29,32 +28,32 @@ public class SetWaitArea implements SubCommand, CommandExecutor, TabCompleter {      @Override      public boolean onCommand(@NotNull CommandSender sender, @NotNull Command command, @NotNull String label, String[] args) {          if (!(sender instanceof Player)) { -            sender.sendMessage(languageManager.fromKey("not-for-console")); +            sender.sendMessage(LanguageManager.fromKey("not-for-console"));              return false;          }          if (args.length == 0 || args[0] == null || args[0].isEmpty()) { -            sender.sendMessage(languageManager.fromKey("missing-arena-parameter")); +            sender.sendMessage(LanguageManager.fromKey("missing-arena-parameter"));              return false;          }          String arenaName = args[0]; -        if (!arenaManager.arenas.containsKey(arenaName)) { -            sender.sendMessage(languageManager.fromKey("invalid-arena").replace("%arena%",arenaName)); +        if (!ArenaManager.arenas.containsKey(arenaName)) { +            sender.sendMessage(LanguageManager.fromKey("invalid-arena").replace("%arena%",arenaName));              return false;          } -        Arena arena = arenaManager.arenas.get(arenaName); +        Arena arena = ArenaManager.arenas.get(arenaName);          arena.waitArea = ((Player)sender).getLocation(); -        arenaManager.WriteConfig(); -        sender.sendMessage(languageManager.fromKey("set-success")); +        ArenaManager.WriteConfig(); +        sender.sendMessage(LanguageManager.fromKey("set-success"));          return true;      }      @Override      public List<String> onTabComplete(@NotNull CommandSender sender, @NotNull Command command, @NotNull String label, String[] args) {          if (args.length == 1) { -            return arenaManager.arenas.keySet().stream().toList(); +            return ArenaManager.arenas.keySet().stream().toList();          }          return Collections.emptyList(); diff --git a/src/main/java/com/MylesAndMore/Tumble/commands/SetWinnerLobby.java b/src/main/java/com/MylesAndMore/Tumble/commands/SetWinnerLobby.java index f40344e..98a535b 100644 --- a/src/main/java/com/MylesAndMore/Tumble/commands/SetWinnerLobby.java +++ b/src/main/java/com/MylesAndMore/Tumble/commands/SetWinnerLobby.java @@ -1,5 +1,7 @@  package com.MylesAndMore.Tumble.commands; +import com.MylesAndMore.Tumble.config.ArenaManager; +import com.MylesAndMore.Tumble.config.LanguageManager;  import com.MylesAndMore.Tumble.game.Arena;  import com.MylesAndMore.Tumble.plugin.SubCommand;  import org.bukkit.command.Command; @@ -12,9 +14,6 @@ import org.jetbrains.annotations.NotNull;  import java.util.Collections;  import java.util.List; -import static com.MylesAndMore.Tumble.Main.arenaManager; -import static com.MylesAndMore.Tumble.Main.languageManager; -  public class SetWinnerLobby implements SubCommand, CommandExecutor, TabCompleter {      @Override      public String getCommandName() { @@ -29,32 +28,32 @@ public class SetWinnerLobby implements SubCommand, CommandExecutor, TabCompleter      @Override      public boolean onCommand(@NotNull CommandSender sender, @NotNull Command command, @NotNull String label, String[] args) {          if (!(sender instanceof Player)) { -            sender.sendMessage(languageManager.fromKey("not-for-console")); +            sender.sendMessage(LanguageManager.fromKey("not-for-console"));              return false;          }          if (args.length == 0 || args[0] == null || args[0].isEmpty()) { -            sender.sendMessage(languageManager.fromKey("missing-arena-parameter")); +            sender.sendMessage(LanguageManager.fromKey("missing-arena-parameter"));              return false;          }          String arenaName = args[0]; -        if (!arenaManager.arenas.containsKey(arenaName)) { -            sender.sendMessage(languageManager.fromKey("invalid-arena").replace("%arena%",arenaName)); +        if (!ArenaManager.arenas.containsKey(arenaName)) { +            sender.sendMessage(LanguageManager.fromKey("invalid-arena").replace("%arena%",arenaName));              return false;          } -        Arena arena = arenaManager.arenas.get(arenaName); +        Arena arena = ArenaManager.arenas.get(arenaName);          arena.winnerLobby = ((Player)sender).getLocation(); -        arenaManager.WriteConfig(); -        sender.sendMessage(languageManager.fromKey("set-success")); +        ArenaManager.WriteConfig(); +        sender.sendMessage(LanguageManager.fromKey("set-success"));          return true;      }      @Override      public List<String> onTabComplete(@NotNull CommandSender sender, @NotNull Command command, @NotNull String label, String[] args) {          if (args.length == 1) { -            return arenaManager.arenas.keySet().stream().toList(); +            return ArenaManager.arenas.keySet().stream().toList();          }          return Collections.emptyList(); diff --git a/src/main/java/com/MylesAndMore/Tumble/commands/Tumble.java b/src/main/java/com/MylesAndMore/Tumble/commands/Tumble.java index 67213ee..8b4f925 100644 --- a/src/main/java/com/MylesAndMore/Tumble/commands/Tumble.java +++ b/src/main/java/com/MylesAndMore/Tumble/commands/Tumble.java @@ -1,5 +1,6 @@  package com.MylesAndMore.Tumble.commands; +import com.MylesAndMore.Tumble.config.LanguageManager;  import com.MylesAndMore.Tumble.plugin.SubCommand;  import org.bukkit.command.Command;  import org.bukkit.command.CommandExecutor; @@ -7,9 +8,10 @@ import org.bukkit.command.CommandSender;  import org.bukkit.command.TabCompleter;  import org.jetbrains.annotations.NotNull; -import java.util.*; - -import static com.MylesAndMore.Tumble.Main.languageManager; +import java.util.ArrayList; +import java.util.Collections; +import java.util.List; +import java.util.Map;  public class Tumble implements CommandExecutor, TabCompleter { @@ -31,14 +33,14 @@ public class Tumble implements CommandExecutor, TabCompleter {      @Override      public boolean onCommand(@NotNull CommandSender sender, @NotNull Command command, @NotNull String label, String[] args) {          if (!subCommands.containsKey(args[0])) { -            sender.sendMessage(languageManager.fromKey("unknown-command")); +            sender.sendMessage(LanguageManager.fromKey("unknown-command"));              return true;          }          var subCmd = subCommands.get(args[0]);          if (!sender.hasPermission(subCmd.getPermission())) { -            sender.sendMessage(languageManager.fromKey("no-permission").replace("%permission%", subCmd.getPermission())); +            sender.sendMessage(LanguageManager.fromKey("no-permission").replace("%permission%", subCmd.getPermission()));              return false;          } diff --git a/src/main/java/com/MylesAndMore/Tumble/config/ArenaManager.java b/src/main/java/com/MylesAndMore/Tumble/config/ArenaManager.java index 00bc2e6..ac7767a 100644 --- a/src/main/java/com/MylesAndMore/Tumble/config/ArenaManager.java +++ b/src/main/java/com/MylesAndMore/Tumble/config/ArenaManager.java @@ -20,26 +20,18 @@ import static com.MylesAndMore.Tumble.Main.plugin;   * Manages arenas.yml and stores list of arenas   */  public class ArenaManager { -    public HashMap<String, Arena> arenas; +    public static HashMap<String, Arena> arenas; -    private final CustomConfig arenasYml; -    private final FileConfiguration config; +    private static CustomConfig arenasYml; +    private static FileConfiguration config;      /** -     * Create an ArenaManager +     * Read arenas from arenas.yml and populate this.arenas       */ -    public ArenaManager() { +    public static void readConfig() {          arenasYml = new CustomConfig("arenas.yml");          arenasYml.saveDefaultConfig();          config = arenasYml.getConfig(); - -        readConfig(); -    } - -    /** -     * Read arenas from arenas.ynl and populate this.arenas -     */ -    public void readConfig() {          arenas = new HashMap<>();          ConfigurationSection arenasSection = config.getConfigurationSection("arenas"); @@ -81,7 +73,7 @@ public class ArenaManager {      /**       * Write arenas from this.arenas to arenas.yml       */ -    public void WriteConfig() { +    public static void WriteConfig() {          config.set("arenas", null); // clear everything          for (Arena arena: arenas.values()) { @@ -111,7 +103,7 @@ public class ArenaManager {       * @param p Player to search for       * @return the game the player is in, or null if not found       */ -    public Game findGamePlayerIsIn(Player p) { +    public static Game findGamePlayerIsIn(Player p) {          for (Arena a : arenas.values()) {              if (a.game != null && a.game.gamePlayers.contains(p)) {                  return a.game; @@ -132,7 +124,7 @@ public class ArenaManager {       *   Result#success = true and Result#value OR       *   Result#success = false and Result#error       */ -    private Location readWorld(String path) { +    private static Location readWorld(String path) {          ConfigurationSection section = config.getConfigurationSection(path);          if (section == null) { @@ -173,7 +165,7 @@ public class ArenaManager {       * @param path The path of the section to write       * @param location The location to write       */ -    private void WriteWorld(String path, @NotNull Location location) { +    private static void WriteWorld(String path, @NotNull Location location) {          ConfigurationSection section = config.getConfigurationSection(path); diff --git a/src/main/java/com/MylesAndMore/Tumble/config/ConfigManager.java b/src/main/java/com/MylesAndMore/Tumble/config/ConfigManager.java index d0510c9..59d653a 100644 --- a/src/main/java/com/MylesAndMore/Tumble/config/ConfigManager.java +++ b/src/main/java/com/MylesAndMore/Tumble/config/ConfigManager.java @@ -11,29 +11,29 @@ import static com.MylesAndMore.Tumble.Main.plugin;   * Manages config.yml and stores its options   */  public class ConfigManager { -    public boolean HideLeaveJoin; -    public int waitDuration; +    public static boolean HideLeaveJoin; +    public static int waitDuration; -    private final Configuration config; -    private final Configuration defaultConfig; +    private static Configuration config; +    private static Configuration defaultConfig;      /** -     * Create a config manager +     * Reads options in from config.yml       */ -    public ConfigManager() { +    public static void readConfig() {          CustomConfig configYml = new CustomConfig("config.yml");          configYml.saveDefaultConfig();          config = configYml.getConfig();          defaultConfig = Objects.requireNonNull(config.getDefaults()); - +        HideLeaveJoin = config.getBoolean("hide-join-leave-messages", false); +        waitDuration = config.getInt("wait-duration", 15);          validate(); -        readConfig();      }      /**       * Check keys of config.yml against the defaults       */ -    public void validate() { +    public static void validate() {          boolean invalid = false;          for (String key : defaultConfig.getKeys(true)) {              if (!config.contains(key,true)) { @@ -45,13 +45,4 @@ public class ConfigManager {              plugin.getLogger().severe("Errors were found in config.yml, default values will be used.");          }      } - -    /** -     * Reads options in from config.yml -     */ -    public void readConfig() { -        HideLeaveJoin = config.getBoolean("hide-join-leave-messages", false); -        waitDuration = config.getInt("wait-duration", 15); -    } -  } diff --git a/src/main/java/com/MylesAndMore/Tumble/config/LanguageManager.java b/src/main/java/com/MylesAndMore/Tumble/config/LanguageManager.java index 2b11edc..6625b26 100644 --- a/src/main/java/com/MylesAndMore/Tumble/config/LanguageManager.java +++ b/src/main/java/com/MylesAndMore/Tumble/config/LanguageManager.java @@ -12,13 +12,10 @@ import static com.MylesAndMore.Tumble.Main.plugin;   * Manages language.yml and allows retrieval of keys   */  public class LanguageManager { -    private final Configuration config; -    private final Configuration defaultConfig; +    private static Configuration config; +    private static Configuration defaultConfig; -    /** -     * Creates a new LanguageManager -     */ -    public LanguageManager() { +    public static void readConfig() {          CustomConfig languageYml = new CustomConfig("language.yml");          languageYml.saveDefaultConfig();          config = languageYml.getConfig(); @@ -30,7 +27,7 @@ public class LanguageManager {      /**       * Check keys of language.yml against the defaults       */ -    public void validate() { +    public static void validate() {          boolean invalid = false;          for (String key : defaultConfig.getKeys(true)) {              if (!config.contains(key,true)) { @@ -49,7 +46,7 @@ public class LanguageManager {       * @param key The key representing the message       * @return The message from the key       */ -    public String fromKey(String key) { +    public static String fromKey(String key) {          return fromKeyNoPrefix("prefix") + fromKeyNoPrefix(key);      } @@ -59,7 +56,7 @@ public class LanguageManager {       * @param key The key representing the message       * @return The message from the key       */ -    public String fromKeyNoPrefix(String key) { +    public static String fromKeyNoPrefix(String key) {          String val = config.getString(key);          if (val == null) { diff --git a/src/main/java/com/MylesAndMore/Tumble/game/EventListener.java b/src/main/java/com/MylesAndMore/Tumble/game/EventListener.java index 28fd314..9f1456e 100644 --- a/src/main/java/com/MylesAndMore/Tumble/game/EventListener.java +++ b/src/main/java/com/MylesAndMore/Tumble/game/EventListener.java @@ -1,10 +1,12 @@  package com.MylesAndMore.Tumble.game; -import java.util.Objects; - +import com.MylesAndMore.Tumble.config.ConfigManager;  import com.MylesAndMore.Tumble.plugin.GameState;  import com.MylesAndMore.Tumble.plugin.GameType; -import org.bukkit.*; +import org.bukkit.Bukkit; +import org.bukkit.Effect; +import org.bukkit.Location; +import org.bukkit.Material;  import org.bukkit.entity.Player;  import org.bukkit.entity.Snowball;  import org.bukkit.event.EventHandler; @@ -15,12 +17,12 @@ import org.bukkit.event.block.BlockDropItemEvent;  import org.bukkit.event.entity.*;  import org.bukkit.event.inventory.InventoryDragEvent;  import org.bukkit.event.player.*; -import org.bukkit.util.Vector; -  import org.bukkit.inventory.ItemStack; +import org.bukkit.util.Vector;  import org.jetbrains.annotations.Nullable; -import static com.MylesAndMore.Tumble.Main.configManager; +import java.util.Objects; +  import static com.MylesAndMore.Tumble.Main.plugin;  /** @@ -41,7 +43,7 @@ public class EventListener implements Listener {      @EventHandler      public void PlayerJoinEvent(PlayerJoinEvent event) {          // Hide/show join message accordingly -        if (configManager.HideLeaveJoin) { +        if (ConfigManager.HideLeaveJoin) {              event.setJoinMessage(null);          }      } @@ -49,7 +51,7 @@ public class EventListener implements Listener {      @EventHandler      public void PlayerQuitEvent(PlayerQuitEvent event) {          // Hide/show leave message accordingly -        if (configManager.HideLeaveJoin) { +        if (ConfigManager.HideLeaveJoin) {              event.setQuitMessage(null);          } diff --git a/src/main/java/com/MylesAndMore/Tumble/game/Game.java b/src/main/java/com/MylesAndMore/Tumble/game/Game.java index f46d907..e9b7223 100644 --- a/src/main/java/com/MylesAndMore/Tumble/game/Game.java +++ b/src/main/java/com/MylesAndMore/Tumble/game/Game.java @@ -1,10 +1,11 @@  package com.MylesAndMore.Tumble.game; +import com.MylesAndMore.Tumble.config.ConfigManager; +import com.MylesAndMore.Tumble.config.LanguageManager;  import com.MylesAndMore.Tumble.plugin.GameState;  import com.MylesAndMore.Tumble.plugin.GameType;  import net.md_5.bungee.api.ChatMessageType;  import net.md_5.bungee.api.chat.TextComponent; -  import org.bukkit.*;  import org.bukkit.enchantments.Enchantment;  import org.bukkit.entity.Player; @@ -15,7 +16,7 @@ import org.jetbrains.annotations.Nullable;  import java.util.*; -import static com.MylesAndMore.Tumble.Main.*; +import static com.MylesAndMore.Tumble.Main.plugin;  /**   * Everything relating to the Tumble game @@ -63,7 +64,7 @@ public class Game {              autoStart();          }          else { -            displayActionbar(Collections.singletonList(p), languageManager.fromKeyNoPrefix("waiting-for-players")); +            displayActionbar(Collections.singletonList(p), LanguageManager.fromKeyNoPrefix("waiting-for-players"));          }      } @@ -143,7 +144,7 @@ public class Game {                  gameID = Bukkit.getServer().getScheduler().scheduleSyncDelayedTask(plugin, () -> {                      clearInventories(gamePlayers);                      giveItems(gamePlayers, new ItemStack(Material.SNOWBALL)); -                    displayActionbar(gamePlayers, languageManager.fromKeyNoPrefix("showdown")); +                    displayActionbar(gamePlayers, LanguageManager.fromKeyNoPrefix("showdown"));                      playSound(gamePlayers, Sound.ENTITY_ELDER_GUARDIAN_CURSE, SoundCategory.HOSTILE, 1, 1);                      // End the round in another 2m30s @@ -192,12 +193,12 @@ public class Game {                  gameEnd();              }              else { // If that player doesn't have three wins, nobody else does, so we need another round -                displayTitles(gamePlayers, languageManager.fromKeyNoPrefix("round-over"), languageManager.fromKeyNoPrefix("round-winner").replace("%winner%", winner.getDisplayName()), 5, 60, 5); +                displayTitles(gamePlayers, LanguageManager.fromKeyNoPrefix("round-over"), LanguageManager.fromKeyNoPrefix("round-winner").replace("%winner%", winner.getDisplayName()), 5, 60, 5);                  Bukkit.getServer().getScheduler().scheduleSyncDelayedTask(plugin, this::roundStart, 100);              }          }          else { -            displayTitles(gamePlayers, languageManager.fromKeyNoPrefix("round-over"), languageManager.fromKeyNoPrefix("round-draw"), 5, 60, 5); +            displayTitles(gamePlayers, LanguageManager.fromKeyNoPrefix("round-over"), LanguageManager.fromKeyNoPrefix("round-draw"), 5, 60, 5);              Bukkit.getServer().getScheduler().scheduleSyncDelayedTask(plugin, this::roundStart, 100);          }      } @@ -215,10 +216,10 @@ public class Game {              // display winner              Player winner = getPlayerWithMostWins(gameWins);              if (winner != null) { -                displayTitles(gamePlayers, languageManager.fromKeyNoPrefix("game-over"), languageManager.fromKeyNoPrefix("game-winner").replace("%winner%",winner.getDisplayName()), 5, 60, 5); +                displayTitles(gamePlayers, LanguageManager.fromKeyNoPrefix("game-over"), LanguageManager.fromKeyNoPrefix("game-winner").replace("%winner%",winner.getDisplayName()), 5, 60, 5);              } -            displayActionbar(gamePlayers, languageManager.fromKeyNoPrefix("lobby-in-10")); +            displayActionbar(gamePlayers, LanguageManager.fromKeyNoPrefix("lobby-in-10"));              // Wait 10s (200t), then              Bukkit.getServer().getScheduler().scheduleSyncDelayedTask(plugin, () -> { @@ -279,7 +280,7 @@ public class Game {              // inform player that there are no longer enough players to start              if (gamePlayers.size() < 2) { -                displayActionbar(gamePlayers, languageManager.fromKeyNoPrefix("waiting-for-players")); +                displayActionbar(gamePlayers, LanguageManager.fromKeyNoPrefix("waiting-for-players"));              }              // teleport player back and restore inventory @@ -313,9 +314,9 @@ public class Game {       */      public void autoStart() {          // Wait for the player to load in -        int waitDuration = configManager.waitDuration; +        int waitDuration = ConfigManager.waitDuration;          Bukkit.getServer().getScheduler().scheduleSyncDelayedTask(plugin, () -> { -            displayActionbar(gamePlayers, languageManager.fromKeyNoPrefix("time-till-start").replace("%wait%",waitDuration+"")); +            displayActionbar(gamePlayers, LanguageManager.fromKeyNoPrefix("time-till-start").replace("%wait%",waitDuration+""));              playSound(gamePlayers, Sound.BLOCK_NOTE_BLOCK_CHIME, SoundCategory.BLOCKS, 1, 1);              // Schedule a process to start the game in 300t (15s) and save the PID so we can cancel it later if needed              autoStartID = Bukkit.getServer().getScheduler().scheduleSyncDelayedTask(plugin, this::gameStart, waitDuration * 20L); @@ -370,16 +371,16 @@ public class Game {       */      private void countdown(Runnable doAfter) {          playSound(gamePlayers, Sound.ENTITY_EXPERIENCE_ORB_PICKUP, SoundCategory.NEUTRAL, 5, 1); -        displayTitles(gamePlayers, languageManager.fromKeyNoPrefix("count-3"), null, 3, 10, 7); +        displayTitles(gamePlayers, LanguageManager.fromKeyNoPrefix("count-3"), null, 3, 10, 7);          Bukkit.getServer().getScheduler().scheduleSyncDelayedTask(plugin, () -> {              playSound(gamePlayers, Sound.ENTITY_EXPERIENCE_ORB_PICKUP, SoundCategory.NEUTRAL, 5, 1); -            displayTitles(gamePlayers, languageManager.fromKeyNoPrefix("count-2"), null, 3, 10, 7); +            displayTitles(gamePlayers, LanguageManager.fromKeyNoPrefix("count-2"), null, 3, 10, 7);              Bukkit.getServer().getScheduler().scheduleSyncDelayedTask(plugin, () -> {                  playSound(gamePlayers, Sound.ENTITY_EXPERIENCE_ORB_PICKUP, SoundCategory.NEUTRAL, 5, 1); -                displayTitles(gamePlayers, languageManager.fromKeyNoPrefix("count-1"), null, 3, 10, 7); +                displayTitles(gamePlayers, LanguageManager.fromKeyNoPrefix("count-1"), null, 3, 10, 7);                  Bukkit.getServer().getScheduler().scheduleSyncDelayedTask(plugin, () -> {                      playSound(gamePlayers, Sound.ENTITY_EXPERIENCE_ORB_PICKUP, SoundCategory.NEUTRAL, 5, 2); -                    displayTitles(gamePlayers, languageManager.fromKeyNoPrefix("count-go"), null, 1, 5, 1); +                    displayTitles(gamePlayers, LanguageManager.fromKeyNoPrefix("count-go"), null, 1, 5, 1);                      doAfter.run();                  }, 20);              }, 20); | 
