Browse Source

Refactoring Game-State message sender

RedstoneFuture 9 months ago
parent
commit
55bc6ce7e5

+ 0 - 16
missilewars-plugin/src/main/java/de/butzlabben/missilewars/game/GameManager.java

@@ -192,20 +192,4 @@ public class GameManager {
         return null;
     }
     
-    public String getGameStateMessage(Game game) {
-        
-        if (game == null) return Messages.getMessage(false, Messages.MessageEnum.GAME_STATE_NO_GAME);
-        
-        switch (game.getState()) {
-            case LOBBY:
-                return Messages.getMessage(false, Messages.MessageEnum.GAME_STATE_LOBBY);
-            case INGAME:
-                return Messages.getMessage(false, Messages.MessageEnum.GAME_STATE_INGAME);
-            case END:
-                return Messages.getMessage(false, Messages.MessageEnum.GAME_STATE_END);
-            default:
-                return Messages.getMessage(false, Messages.MessageEnum.GAME_STATE_ERROR);
-        }
-    }
-    
 }

+ 15 - 3
missilewars-plugin/src/main/java/de/butzlabben/missilewars/game/enums/GameState.java

@@ -18,13 +18,25 @@
 
 package de.butzlabben.missilewars.game.enums;
 
+import de.butzlabben.missilewars.configuration.Messages;
+import lombok.Getter;
+
 /**
  * @author Butzlabben
  * @since 01.01.2018
  */
+@Getter
 public enum GameState {
 
-    LOBBY,
-    INGAME,
-    END
+    LOBBY (Messages.getMessage(false, Messages.MessageEnum.GAME_STATE_LOBBY)),
+    INGAME (Messages.getMessage(false, Messages.MessageEnum.GAME_STATE_INGAME)),
+    END (Messages.getMessage(false, Messages.MessageEnum.GAME_STATE_END)),
+    ERROR (Messages.getMessage(false, Messages.MessageEnum.GAME_STATE_ERROR));
+
+    private final String gameStateMsg;
+    
+    GameState(String gameStateMsg) {
+        this.gameStateMsg = gameStateMsg;
+    }
+    
 }

+ 3 - 2
missilewars-plugin/src/main/java/de/butzlabben/missilewars/game/misc/MissileWarsPlaceholder.java

@@ -23,6 +23,7 @@ import de.butzlabben.missilewars.configuration.lobby.Lobby;
 import de.butzlabben.missilewars.configuration.arena.Arena;
 import de.butzlabben.missilewars.game.Game;
 import de.butzlabben.missilewars.game.GameManager;
+import de.butzlabben.missilewars.game.enums.GameState;
 import de.butzlabben.missilewars.player.MWPlayer;
 import me.clip.placeholderapi.expansion.PlaceholderExpansion;
 import org.bukkit.OfflinePlayer;
@@ -76,7 +77,7 @@ public class MissileWarsPlaceholder extends PlaceholderExpansion {
 
                 // %missilewars_lobby_gamestate_<lobby name or 'this'>%
                 if (params.startsWith("lobby_gamestate_")) {
-                    return GameManager.getInstance().getGameStateMessage(null);
+                    return GameState.ERROR.getGameStateMsg();
                 }
 
                 // if (params.startsWith("lobby_")) return "§c§oThis is not a lobby area!";
@@ -102,7 +103,7 @@ public class MissileWarsPlaceholder extends PlaceholderExpansion {
             
             // %missilewars_lobby_gamestate_<lobby name or 'this'>%
             if (params.equalsIgnoreCase("lobby_gamestate_" + lobby.getName())) {
-                return GameManager.getInstance().getGameStateMessage(game);
+                return game.getState().getGameStateMsg();
             }
             
             // %missilewars_lobby_mapvote_state_<lobby name or 'this'>%

+ 5 - 2
missilewars-plugin/src/main/java/de/butzlabben/missilewars/game/signs/MWSign.java

@@ -23,6 +23,7 @@ import de.butzlabben.missilewars.MissileWars;
 import de.butzlabben.missilewars.configuration.Messages;
 import de.butzlabben.missilewars.game.Game;
 import de.butzlabben.missilewars.game.GameManager;
+import de.butzlabben.missilewars.game.enums.GameState;
 import de.butzlabben.missilewars.util.version.MaterialHelper;
 import lombok.AllArgsConstructor;
 import lombok.Data;
@@ -86,10 +87,12 @@ public class MWSign {
 
     private String replace(String line, Game game) {
 
-        String state = GameManager.getInstance().getGameStateMessage(game);
+        String gameStateMsg = GameState.ERROR.getGameStateMsg();
         String name = "-";
         
         if (game != null) {
+            gameStateMsg = game.getState().getGameStateMsg();
+            
             switch (game.getState()) {
                 case LOBBY:
                     name = game.getLobby().getDisplayName();
@@ -104,7 +107,7 @@ public class MWSign {
         int maxPlayers = (game == null ? 0 : game.getLobby().getMaxPlayers());
         int players = (game == null ? 0 : game.getPlayerAmount());
 
-        return line.replace("%state%", state)
+        return line.replace("%state%", gameStateMsg)
                 .replace("%arena%", name)
                 .replace("%max_players%", Integer.toString(maxPlayers))
                 .replace("%players%", Integer.toString(players));