Bladeren bron

Usage of enum for message management

RedstoneFuture 1 jaar geleden
bovenliggende
commit
e21ed482d2
18 gewijzigde bestanden met toevoegingen van 224 en 207 verwijderingen
  1. 25 25
      missilewars-plugin/src/main/java/de/butzlabben/missilewars/commands/MWCommands.java
  2. 1 1
      missilewars-plugin/src/main/java/de/butzlabben/missilewars/commands/SetupCommands.java
  3. 17 17
      missilewars-plugin/src/main/java/de/butzlabben/missilewars/commands/UserCommands.java
  4. 119 104
      missilewars-plugin/src/main/java/de/butzlabben/missilewars/configuration/Messages.java
  5. 18 18
      missilewars-plugin/src/main/java/de/butzlabben/missilewars/game/Game.java
  6. 1 1
      missilewars-plugin/src/main/java/de/butzlabben/missilewars/game/GameWorld.java
  7. 8 8
      missilewars-plugin/src/main/java/de/butzlabben/missilewars/game/Team.java
  8. 3 3
      missilewars-plugin/src/main/java/de/butzlabben/missilewars/game/misc/RespawnGoldBlock.java
  9. 9 7
      missilewars-plugin/src/main/java/de/butzlabben/missilewars/game/signs/MWSign.java
  10. 1 1
      missilewars-plugin/src/main/java/de/butzlabben/missilewars/game/timer/EndTimer.java
  11. 2 2
      missilewars-plugin/src/main/java/de/butzlabben/missilewars/game/timer/GameTimer.java
  12. 5 5
      missilewars-plugin/src/main/java/de/butzlabben/missilewars/game/timer/LobbyTimer.java
  13. 1 1
      missilewars-plugin/src/main/java/de/butzlabben/missilewars/inventory/VoteInventory.java
  14. 4 4
      missilewars-plugin/src/main/java/de/butzlabben/missilewars/listener/SignListener.java
  15. 1 1
      missilewars-plugin/src/main/java/de/butzlabben/missilewars/listener/game/EndListener.java
  16. 6 6
      missilewars-plugin/src/main/java/de/butzlabben/missilewars/listener/game/GameListener.java
  17. 2 2
      missilewars-plugin/src/main/java/de/butzlabben/missilewars/listener/game/LobbyListener.java
  18. 1 1
      missilewars-plugin/src/main/java/de/butzlabben/missilewars/util/MoneyUtil.java

+ 25 - 25
missilewars-plugin/src/main/java/de/butzlabben/missilewars/commands/MWCommands.java

@@ -98,24 +98,24 @@ public class MWCommands extends BaseCommand {
         Player player = (Player) sender;
 
         if (args.length < 1) {
-            player.sendMessage(Messages.getMessage("command.missile_needed"));
+            player.sendMessage(Messages.getMessage(true, Messages.MessageEnum.COMMAND_MISSILE_NEEDED));
             return;
         }
 
         if (args.length > 1) {
-            player.sendMessage(Messages.getMessage("command.to_many_arguments"));
+            player.sendMessage(Messages.getMessage(true, Messages.MessageEnum.COMMAND_TO_MANY_ARGUMENTS));
             return;
         }
 
         Game game = GameManager.getInstance().getGame(player.getLocation());
         if (game == null) {
-            player.sendMessage(Messages.getMessage("game.not_in_game_area"));
+            player.sendMessage(Messages.getMessage(true, Messages.MessageEnum.GAME_NOT_IN_GAME_AREA));
             return;
         }
 
         Missile missile = game.getArena().getMissileConfiguration().getMissileFromName(args[0]);
         if (missile == null) {
-            player.sendMessage(Messages.getMessage("command.invalid_missile"));
+            player.sendMessage(Messages.getMessage(true, Messages.MessageEnum.COMMAND_INVALID_MISSILE));
             return;
         }
 
@@ -132,7 +132,7 @@ public class MWCommands extends BaseCommand {
         Player player = (Player) sender;
 
         if (args.length > 1) {
-            player.sendMessage(Messages.getMessage("command.to_many_arguments"));
+            player.sendMessage(Messages.getMessage(true, Messages.MessageEnum.COMMAND_TO_MANY_ARGUMENTS));
             return;
         }
 
@@ -141,19 +141,19 @@ public class MWCommands extends BaseCommand {
         if (args.length == 1) {
             game = GameManager.getInstance().getGame(args[0]);
             if (game == null) {
-                player.sendMessage(Messages.getMessage("command.invalid_game"));
+                player.sendMessage(Messages.getMessage(true, Messages.MessageEnum.COMMAND_INVALID_GAME));
                 return;
             }
         } else {
             game = GameManager.getInstance().getGame(player.getLocation());
             if (game == null) {
-                player.sendMessage(Messages.getMessage("game.not_in_game_area"));
+                player.sendMessage(Messages.getMessage(true, Messages.MessageEnum.GAME_NOT_IN_GAME_AREA));
                 return;
             }
         }
 
         if (game.getState() != GameState.LOBBY) {
-            player.sendMessage(Messages.getMessage("game.already_startet"));
+            player.sendMessage(Messages.getMessage(true, Messages.MessageEnum.GAME_ALREADY_STARTET));
             return;
         }
 
@@ -161,7 +161,7 @@ public class MWCommands extends BaseCommand {
             game.startGame();
         else {
             if (game.getLobby().getMapChooseProcedure() != MapChooseProcedure.MAPVOTING && game.getArena() == null) {
-                player.sendMessage(Messages.getMessage("game.can_not_startet"));
+                player.sendMessage(Messages.getMessage(true, Messages.MessageEnum.GAME_CAN_NOT_STARTET));
             } else {
                 Map.Entry<String, Integer> mostVotes = null;
                 for (Map.Entry<String, Integer> arena : game.getVotes().entrySet()) {
@@ -175,7 +175,7 @@ public class MWCommands extends BaseCommand {
                 Optional<Arena> arena = Arenas.getFromName(mostVotes.getKey());
                 if (arena.isEmpty()) throw new IllegalStateException("Voted arena is not present");
                 game.setArena(arena.get());
-                player.sendMessage(Messages.getMessage("game.map_selected"));
+                player.sendMessage(Messages.getMessage(true, Messages.MessageEnum.GAME_MAP_SELECTED));
             }
         }
     }
@@ -189,7 +189,7 @@ public class MWCommands extends BaseCommand {
         Player player = (Player) sender;
 
         if (args.length > 1) {
-            player.sendMessage(Messages.getMessage("command.to_many_arguments"));
+            player.sendMessage(Messages.getMessage(true, Messages.MessageEnum.COMMAND_TO_MANY_ARGUMENTS));
             return;
         }
 
@@ -198,13 +198,13 @@ public class MWCommands extends BaseCommand {
         if (args.length == 1) {
             game = GameManager.getInstance().getGame(args[0]);
             if (game == null) {
-                player.sendMessage(Messages.getMessage("command.invalid_game"));
+                player.sendMessage(Messages.getMessage(true, Messages.MessageEnum.COMMAND_INVALID_GAME));
                 return;
             }
         } else {
             game = GameManager.getInstance().getGame(player.getLocation());
             if (game == null) {
-                player.sendMessage(Messages.getMessage("game.not_in_game_area"));
+                player.sendMessage(Messages.getMessage(true, Messages.MessageEnum.GAME_NOT_IN_GAME_AREA));
                 return;
             }
         }
@@ -223,7 +223,7 @@ public class MWCommands extends BaseCommand {
         Player player = (Player) sender;
 
         if (args.length > 1) {
-            player.sendMessage(Messages.getMessage("command.to_many_arguments"));
+            player.sendMessage(Messages.getMessage(true, Messages.MessageEnum.COMMAND_TO_MANY_ARGUMENTS));
             return;
         }
 
@@ -232,19 +232,19 @@ public class MWCommands extends BaseCommand {
         if (args.length == 1) {
             game = GameManager.getInstance().getGame(args[0]);
             if (game == null) {
-                player.sendMessage(Messages.getMessage("command.invalid_game"));
+                player.sendMessage(Messages.getMessage(true, Messages.MessageEnum.COMMAND_INVALID_GAME));
                 return;
             }
         } else {
             game = GameManager.getInstance().getGame(player.getLocation());
             if (game == null) {
-                player.sendMessage(Messages.getMessage("game.not_in_game_area"));
+                player.sendMessage(Messages.getMessage(true, Messages.MessageEnum.GAME_NOT_IN_GAME_AREA));
                 return;
             }
         }
 
         GameManager.getInstance().getGames().values().forEach(Game::appendRestart);
-        sender.sendMessage(Messages.getMessage("server.restart_after_game"));
+        sender.sendMessage(Messages.getMessage(true, Messages.MessageEnum.SERVER_RESTART_AFTER_GAME));
     }
 
     @Subcommand("reload")
@@ -256,7 +256,7 @@ public class MWCommands extends BaseCommand {
         Player player = (Player) sender;
 
         if (args.length > 0) {
-            player.sendMessage(Messages.getMessage("command.to_many_arguments"));
+            player.sendMessage(Messages.getMessage(true, Messages.MessageEnum.COMMAND_TO_MANY_ARGUMENTS));
             return;
         }
 
@@ -264,7 +264,7 @@ public class MWCommands extends BaseCommand {
         Messages.load();
         Arenas.load();
         
-        player.sendMessage(Messages.getMessage("debug.reload_config"));
+        player.sendMessage(Messages.getMessage(true, Messages.MessageEnum.DEBUG_RELOAD_CONFIG));
     }
 
     @Subcommand("debug")
@@ -276,7 +276,7 @@ public class MWCommands extends BaseCommand {
         Player player = (Player) sender;
 
         if (args.length > 0) {
-            player.sendMessage(Messages.getMessage("command.to_many_arguments"));
+            player.sendMessage(Messages.getMessage(true, Messages.MessageEnum.COMMAND_TO_MANY_ARGUMENTS));
             return;
         }
 
@@ -287,7 +287,7 @@ public class MWCommands extends BaseCommand {
             Logger.NORMAL.log(game.toString());
         }
         
-        player.sendMessage(Messages.getMessage("debug.printed_debug_msg"));
+        player.sendMessage(Messages.getMessage(true, Messages.MessageEnum.DEBUG_PRINTED_DEBUG_MSG));
     }
 
     @Subcommand("restartall")
@@ -299,22 +299,22 @@ public class MWCommands extends BaseCommand {
         Player player = (Player) sender;
 
         if (args.length > 0) {
-            player.sendMessage(Messages.getMessage("command.to_many_arguments"));
+            player.sendMessage(Messages.getMessage(true, Messages.MessageEnum.COMMAND_TO_MANY_ARGUMENTS));
             return;
         }
         
         if (GameManager.getInstance().getGames().size() > 10) {
-            player.sendMessage(Messages.getMessage("debug.restart_all_games_warn"));
+            player.sendMessage(Messages.getMessage(true, Messages.MessageEnum.DEBUG_RESTART_ALL_GAMES_WARN));
         }
         
         GameManager.getInstance().restartAll();
-        player.sendMessage(Messages.getMessage("debug.restart_all_games"));
+        player.sendMessage(Messages.getMessage(true, Messages.MessageEnum.DEBUG_RESTART_ALL_GAMES));
     }
 
     static boolean senderIsPlayer(CommandSender sender) {
         if (sender instanceof Player) return true;
         
-        sender.sendMessage(Messages.getMessage("command.only_players"));
+        sender.sendMessage(Messages.getMessage(true, Messages.MessageEnum.COMMAND_ONLY_PLAYERS));
         return false;
     }
 

+ 1 - 1
missilewars-plugin/src/main/java/de/butzlabben/missilewars/commands/SetupCommands.java

@@ -357,7 +357,7 @@ public class SetupCommands extends BaseCommand {
         } else {
             game = GameManager.getInstance().getGame(player.getLocation());
             if (game == null) {
-                player.sendMessage(Messages.getMessage("game.not_in_game_area"));
+                player.sendMessage(Messages.getMessage(true, Messages.MessageEnum.GAME_NOT_IN_GAME_AREA));
                 return false;
             }
         }

+ 17 - 17
missilewars-plugin/src/main/java/de/butzlabben/missilewars/commands/UserCommands.java

@@ -50,40 +50,40 @@ public class UserCommands extends BaseCommand {
         Player player = (Player) sender;
 
         if (args.length > 0) {
-            player.sendMessage(Messages.getMessage("command.to_many_arguments"));
+            player.sendMessage(Messages.getMessage(true, Messages.MessageEnum.COMMAND_TO_MANY_ARGUMENTS));
             return;
         }
 
         Game game = GameManager.getInstance().getGame(player.getLocation());
         if (game == null) {
-            player.sendMessage(Messages.getMessage("game.not_in_game_area"));
+            player.sendMessage(Messages.getMessage(true, Messages.MessageEnum.GAME_NOT_IN_GAME_AREA));
             return;
         }
 
         if (game.getState() != GameState.LOBBY) {
-            player.sendMessage(Messages.getMessage("vote.change_team_not_now"));
+            player.sendMessage(Messages.getMessage(true, Messages.MessageEnum.VOTE_CHANGE_TEAM_NOT_NOW));
             return;
         }
 
         if (game.getLobby().getMapChooseProcedure() != MapChooseProcedure.MAPVOTING) {
-            player.sendMessage(Messages.getMessage("vote.cant_vote"));
+            player.sendMessage(Messages.getMessage(true, Messages.MessageEnum.VOTE_CANT_VOTE));
             return;
         }
 
         if (game.getArena() != null) {
-            player.sendMessage(Messages.getMessage("vote.change_team_no_longer_now"));
+            player.sendMessage(Messages.getMessage(true, Messages.MessageEnum.VOTE_CHANGE_TEAM_NO_LONGER_NOW));
             return;
         }
 
         String arenaName = args[0];
         Optional<Arena> arena = Arenas.getFromName(arenaName);
         if (!game.getVotes().containsKey(arenaName) || arena.isEmpty()) {
-            player.sendMessage(Messages.getMessage("command.invalid_map"));
+            player.sendMessage(Messages.getMessage(true, Messages.MessageEnum.COMMAND_INVALID_MAP));
             return;
         }
 
         game.getVotes().put(arenaName, game.getVotes().get(arenaName) + 1);
-        player.sendMessage(Messages.getMessage("vote.success").replace("%map%", arena.get().getDisplayName()));
+        player.sendMessage(Messages.getMessage(true, Messages.MessageEnum.VOTE_SUCCESS).replace("%map%", arena.get().getDisplayName()));
     }
 
     @Subcommand("change")
@@ -95,28 +95,28 @@ public class UserCommands extends BaseCommand {
         Player player = (Player) sender;
         
         if (args.length < 1) {
-            player.sendMessage(Messages.getMessage("command.team_number_needed"));
+            player.sendMessage(Messages.getMessage(true, Messages.MessageEnum.COMMAND_TEAM_NUMBER_NEEDED));
             return;
         }
 
         if (args.length > 1) {
-            player.sendMessage(Messages.getMessage("command.to_many_arguments"));
+            player.sendMessage(Messages.getMessage(true, Messages.MessageEnum.COMMAND_TO_MANY_ARGUMENTS));
             return;
         }
 
         Game game = GameManager.getInstance().getGame(player.getLocation());
         if (game == null) {
-            player.sendMessage(Messages.getMessage("game.not_in_game_area"));
+            player.sendMessage(Messages.getMessage(true, Messages.MessageEnum.GAME_NOT_IN_GAME_AREA));
             return;
         }
         
         if (game.getState() != GameState.LOBBY) {
-            player.sendMessage(Messages.getMessage("team.change_team_not_now"));
+            player.sendMessage(Messages.getMessage(true, Messages.MessageEnum.TEAM_CHANGE_TEAM_NOT_NOW));
             return;
         }
         
         if (!(args[0].equalsIgnoreCase("1") || args[0].equalsIgnoreCase("2"))) {
-            sender.sendMessage(Messages.getMessage("command.invalid_team_number"));
+            sender.sendMessage(Messages.getMessage(true, Messages.MessageEnum.COMMAND_INVALID_TEAM_NUMBER));
             return;
         }
         
@@ -126,20 +126,20 @@ public class UserCommands extends BaseCommand {
         
         // Is the same team?
         if (to == mwPlayer.getTeam()) {
-            player.sendMessage(Messages.getMessage("team.already_in_team"));
+            player.sendMessage(Messages.getMessage(true, Messages.MessageEnum.TEAM_ALREADY_IN_TEAM));
             return;
         }
         
         // Would the number of team members be too far apart?
         if (to != game.getNextTeam()) {
-            player.sendMessage(Messages.getMessage("team.unfair_team_size"));
+            player.sendMessage(Messages.getMessage(true, Messages.MessageEnum.TEAM_UNFAIR_TEAM_SIZE));
             return;
         }
         
         // Remove the player from the old team and add him to the new team
         to.addMember(mwPlayer);
 
-        player.sendMessage(Messages.getMessage("team.team_changed").replace("%team%", to.getFullname()));
+        player.sendMessage(Messages.getMessage(true, Messages.MessageEnum.TEAM_TEAM_CHANGED).replace("%team%", to.getFullname()));
     }
 
     @Subcommand("quit|leave")
@@ -151,13 +151,13 @@ public class UserCommands extends BaseCommand {
         Player player = (Player) sender;
 
         if (args.length > 0) {
-            player.sendMessage(Messages.getMessage("command.to_many_arguments"));
+            player.sendMessage(Messages.getMessage(true, Messages.MessageEnum.COMMAND_TO_MANY_ARGUMENTS));
             return;
         }
 
         Game game = GameManager.getInstance().getGame(player.getLocation());
         if (game == null) {
-            player.sendMessage(Messages.getMessage("game.not_in_game_area"));
+            player.sendMessage(Messages.getMessage(true, Messages.MessageEnum.GAME_NOT_IN_GAME_AREA));
             return;
         }
 

+ 119 - 104
missilewars-plugin/src/main/java/de/butzlabben/missilewars/configuration/Messages.java

@@ -20,6 +20,7 @@ package de.butzlabben.missilewars.configuration;
 
 import de.butzlabben.missilewars.MissileWars;
 import de.butzlabben.missilewars.util.SetupUtil;
+import lombok.Getter;
 import org.bukkit.ChatColor;
 import org.bukkit.configuration.file.YamlConfiguration;
 
@@ -56,118 +57,132 @@ public class Messages {
     }
 
     private static void addDefaults() {
-
-        cfg.addDefault("prefix", "&6•&e● MissileWars &8▎ &7");
-
-        cfg.addDefault("debug.reload_config", "&7Reloaded configs.");
-        cfg.addDefault("debug.restart_all_games_warn", "&cWarning: Restarting all games. This may take a while.");
-        cfg.addDefault("debug.restart_all_games", "&7Restarted all games.");
-        cfg.addDefault("debug.printed_debug_msg", "&7Printed debug message into the log file.");
-        
-        cfg.addDefault("server.restart_after_game", "&7The server will restart after this game.");
-
-        cfg.addDefault("command.only_players", "&cYou are not a player.");
-        cfg.addDefault("command.to_many_arguments", "&cToo many arguments.");
-        cfg.addDefault("command.invalid_missile", "&cThe specified missile was not found.");
-        cfg.addDefault("command.invalid_game", "&cThe specified game was not found.");
-        cfg.addDefault("command.invalid_map", "&cThe specified map was not found.");
-        cfg.addDefault("command.invalid_team_number", "&cThe team number is invalid. Use \"1\" or \"2\" to specify the target team.");
-        cfg.addDefault("command.missile_needed", "&cPlease specify the missile.");
-        cfg.addDefault("command.team_number_needed", "&cPlease specify the team number.");
-
-        cfg.addDefault("game.map_selected", "&7A map was selected. Use \"/mw start\" again to start the round.");
-        cfg.addDefault("game.player_joined", "&e%player% &7joined the game (%team%&7).");
-        cfg.addDefault("game.player_left", "&e%player% &7left the game (%team%&7).");
-        cfg.addDefault("game.left", "&7You left the running MissileWars game.");
-        cfg.addDefault("game.not_in_game_area", "&cYou are not in an arena right now.");
-        cfg.addDefault("game.not_enter_arena", "&cYou may not enter this arena right now.");
-        cfg.addDefault("game.already_startet", "&cGame already started.");
-        cfg.addDefault("game.can_not_startet", "&cGame cannot be started.");
-        
-        cfg.addDefault("lobby_timer.game_starts_in", "&7Game starts in &e%seconds% &7seconds.");
-
-        cfg.addDefault("game_timer.game_ends_in_minutes", "&7Game ends in &e%minutes% &7minutes.");
-        cfg.addDefault("game_timer.game_ends_in_seconds", "&7Game ends in &e%seconds% &7seconds.");
-
-        cfg.addDefault("endgame_timer.game_starts_new_in", "&7Game starts new in &e%seconds% &7seconds.");
-
-        cfg.addDefault("lobby.player_joined", "&e%player% &7joined the game &8(&7%players%&8/&7%max_players%&8)");
-        cfg.addDefault("lobby.player_left", "&e%player% &7left the game &8(&7%players%&8/&7%max_players%&8)");
-        cfg.addDefault("lobby.left", "&7You left the MissileWars lobby.");
-        cfg.addDefault("lobby.not_enough_players", "&cThere are not enough players online.");
-        cfg.addDefault("lobby.teams_unequal", "&cThe teams are unequal distributed.");
-        cfg.addDefault("lobby.game_starts", "&aThe game starts.");
-
-        cfg.addDefault("team.change_team_not_now", "&cThe game is not in the right state to change your team right now.");
-        cfg.addDefault("team.change_team_no_longer_now", "&cNow you cannot change your team anymore.");
-        cfg.addDefault("team.already_in_team", "&cYou are already in this team.");
-        cfg.addDefault("team.unfair_team_size", "&cChanging the team would make the number of team members more uneven.");
-        cfg.addDefault("team.team_changed", "&7You are now in %team%&7.");
-        cfg.addDefault("team.team_assigned", "&7You have been assigned to %team%&7.");
-        cfg.addDefault("team.all_teammates_offline", "&7Everyone from %team% &7is offline.");
-        cfg.addDefault("team.team_buffed", "%team% &7was buffed as one player left the team.");
-        cfg.addDefault("team.team_nerved", "%team% &7was nerved as one player joined the team.");
-        cfg.addDefault("team.hurt_teammates", "&cYou must not hurt your teammates.");
-        
-        cfg.addDefault("arena.spectator", "&7You are now a spectator.");
-        cfg.addDefault("arena.arena_leave", "&cYou are not allowed to leave the arena.");
-        cfg.addDefault("arena.missile_place_deny", "&cYou are not allowed to place a missile here.");
-        cfg.addDefault("arena.not_higher", "&cYou can not go higher.");
-        cfg.addDefault("arena.kick_inactivity", "&cYou were inactive on MissileWars.");
-
-        cfg.addDefault("died.normal", "&7%player% &7died.");
-        cfg.addDefault("died.explosion", "&7%player% &7was blown up.");
-
-        cfg.addDefault("fall_protection.start", "&cFall protection inactive in %seconds% seconds.");
-        cfg.addDefault("fall_protection.end", "&cFall protection inactive.");
-        cfg.addDefault("fall_protection.deactivated", "&cFall protection deactivated by sneaking.");
-
-        cfg.addDefault("game_result.title_won", "&7%team%");
-        cfg.addDefault("game_result.subtitle_won", "&6has won the game!");
-        cfg.addDefault("game_result.title_winner", "&2Your team");
-        cfg.addDefault("game_result.subtitle_winner", "&ahas won!");
-        cfg.addDefault("game_result.title_loser", "&4Your team");
-        cfg.addDefault("game_result.subtitle_loser", "&chas lost!");
-        cfg.addDefault("game_result.title_draw", "&7Draw!");
-        cfg.addDefault("game_result.subtitle_draw", "");
-        cfg.addDefault("game_result.money", "&7You received &e%money% &7coins.");
         
-        cfg.addDefault("vote.success", "&7You successfully voted for the map %map%.");
-        cfg.addDefault("vote.finished", "&7The map %map% &7was elected.");
-        cfg.addDefault("vote.gui", "Vote for a map");
-        cfg.addDefault("vote.cant_vote", "&cYou can not vote in this game.");
-        cfg.addDefault("vote.change_team_not_now", "&cThe game is not in the right state to vote right now.");
-        cfg.addDefault("vote.change_team_no_longer_now", "&cA map was already selected.");
-
-        cfg.addDefault("signedit.sign_created", "&7Sign was successfully created and connected.");
-        cfg.addDefault("signedit.sign_removed", "&7You have successfully removed this missilewars sign.");
-        cfg.addDefault("signedit.lobby_not_found", "&cCould not find lobby %input%.");
-        cfg.addDefault("signedit.sign_remove_desc", "&cYou have to be sneaking in order to remove this sign.");
-
-        cfg.addDefault("sign.0", "•● MissileWars ●•");
-        cfg.addDefault("sign.1", "%state%");
-        cfg.addDefault("sign.2", "%arena%");
-        cfg.addDefault("sign.3", "&7%players%&8/&7%max_players%");
-        cfg.addDefault("sign.state.lobby", "&aLobby");
-        cfg.addDefault("sign.state.ingame", "&bIngame");
-        cfg.addDefault("sign.state.ended", "&cRestarting...");
-        cfg.addDefault("sign.state.error", "&cError...");
-
+        for (MessageEnum msg : MessageEnum.values()) {
+            cfg.addDefault(msg.getPath(), msg.getDefaultMsg());
+        }
     }
 
-    public static String getMessage(String path) {
-        return getPrefix() + getNativeMessage(path);
+    public static String getMessage(boolean prefix, MessageEnum msg) {
+        if (prefix) return getPrefix() + getConfigMessage(msg);
+        return getConfigMessage(msg);
     }
 
-    public static String getNativeMessage(String path) {
-        return ChatColor.translateAlternateColorCodes('&', getRawMessage(path));
+    public static String getPrefix() {
+        return getConfigMessage(MessageEnum.PREFIX);
     }
 
-    private static String getRawMessage(String path) {
-        return cfg.getString(path, "&cError while reading from messages.yml: " + path);
+    @Getter
+    public enum MessageEnum {
+        PREFIX("prefix", "&6•&e● MissileWars &8▎ &7"),
+
+        DEBUG_RELOAD_CONFIG("debug.reload_config", "&7Reloaded configs."),
+        DEBUG_RESTART_ALL_GAMES_WARN("debug.restart_all_games_warn", "&cWarning: Restarting all games. This may take a while."),
+        DEBUG_RESTART_ALL_GAMES("debug.restart_all_games", "&7Restarted all games."),
+        DEBUG_PRINTED_DEBUG_MSG("debug.printed_debug_msg", "&7Printed debug message into the log file."),
+
+        SERVER_RESTART_AFTER_GAME("server.restart_after_game", "&7The server will restart after this game."),
+
+        COMMAND_ONLY_PLAYERS("command.only_players", "&cYou are not a player."),
+        COMMAND_TO_MANY_ARGUMENTS("command.to_many_arguments", "&cToo many arguments."),
+        COMMAND_INVALID_MISSILE("command.invalid_missile", "&cThe specified missile was not found."),
+        COMMAND_INVALID_GAME("command.invalid_game", "&cThe specified game was not found."),
+        COMMAND_INVALID_MAP("command.invalid_map", "&cThe specified map was not found."),
+        COMMAND_INVALID_TEAM_NUMBER("command.invalid_team_number", "&cThe team number is invalid. Use \"1\" or \"2\" to specify the target team."),
+        COMMAND_MISSILE_NEEDED("command.missile_needed", "&cPlease specify the missile."),
+        COMMAND_TEAM_NUMBER_NEEDED("command.team_number_needed", "&cPlease specify the team number."),
+
+        GAME_MAP_SELECTED("game.map_selected", "&7A map was selected. Use \"/mw start\" again to start the round."),
+        GAME_PLAYER_JOINED("game.player_joined", "&e%player% &7joined the game (%team%&7)."),
+        GAME_PLAYER_LEFT("game.player_left", "&e%player% &7left the game (%team%&7)."),
+        GAME_LEFT("game.left", "&7You left the running MissileWars game."),
+        GAME_NOT_IN_GAME_AREA("game.not_in_game_area", "&cYou are not in an arena right now."),
+        GAME_NOT_ENTER_ARENA("game.not_enter_arena", "&cYou may not enter this arena right now."),
+        GAME_ALREADY_STARTET("game.already_startet", "&cGame already started."),
+        GAME_CAN_NOT_STARTET("game.can_not_startet", "&cGame cannot be started."),
+
+        LOBBY_TIMER_GAME_STARTS_IN("lobby_timer.game_starts_in", "&7Game starts in &e%seconds% &7seconds."),
+
+        GAME_TIMER_GAME_ENDS_IN_MINUTES("game_timer.game_ends_in_minutes", "&7Game ends in &e%minutes% &7minutes."),
+        GAME_TIMER_GAME_ENDS_IN_SECONDS("game_timer.game_ends_in_seconds", "&7Game ends in &e%seconds% &7seconds."),
+
+        ENDGAME_TIMER_GAME_STARTS_NEW_IN("endgame_timer.game_starts_new_in", "&7Game starts new in &e%seconds% &7seconds."),
+
+        LOBBY_PLAYER_JOINED("lobby.player_joined", "&e%player% &7joined the game &8(&7%players%&8/&7%max_players%&8)"),
+        LOBBY_PLAYER_LEFT("lobby.player_left", "&e%player% &7left the game &8(&7%players%&8/&7%max_players%&8)"),
+        LOBBY_LEFT("lobby.left", "&7You left the MissileWars lobby."),
+        LOBBY_NOT_ENOUGH_PLAYERS("lobby.not_enough_players", "&cThere are not enough players online."),
+        LOBBY_TEAMS_UNEQUAL("lobby.teams_unequal", "&cThe teams are unequal distributed."),
+        LOBBY_GAME_STARTS("lobby.game_starts", "&aThe game starts."),
+
+        TEAM_CHANGE_TEAM_NOT_NOW("team.change_team_not_now", "&cThe game is not in the right state to change your team right now."),
+        TEAM_CHANGE_TEAM_NO_LONGER_NOW("team.change_team_no_longer_now", "&cNow you cannot change your team anymore."),
+        TEAM_ALREADY_IN_TEAM("team.already_in_team", "&cYou are already in this team."),
+        TEAM_UNFAIR_TEAM_SIZE("team.unfair_team_size", "&cChanging the team would make the number of team members more uneven."),
+        TEAM_TEAM_CHANGED("team.team_changed", "&7You are now in %team%&7."),
+        TEAM_TEAM_ASSIGNED("team.team_assigned", "&7You have been assigned to %team%&7."),
+        TEAM_ALL_TEAMMATES_OFFLINE("team.all_teammates_offline", "&7Everyone from %team% &7is offline."),
+        TEAM_TEAM_BUFFED("team.team_buffed", "%team% &7was buffed as one player left the team."),
+        TEAM_TEAM_NERVED("team.team_nerved", "%team% &7was nerved as one player joined the team."),
+        TEAM_HURT_TEAMMATES("team.hurt_teammates", "&cYou must not hurt your teammates."),
+
+        ARENA_SPECTATOR("arena.spectator", "&7You are now a spectator."),
+        ARENA_ARENA_LEAVE("arena.arena_leave", "&cYou are not allowed to leave the arena."),
+        ARENA_MISSILE_PLACE_DENY("arena.missile_place_deny", "&cYou are not allowed to place a missile here."),
+        ARENA_NOT_HIGHER("arena.not_higher", "&cYou can not go higher."),
+        ARENA_KICK_INACTIVITY("arena.kick_inactivity", "&cYou were inactive on MissileWars."),
+
+        DIED_NORMAL("died.normal", "&7%player% &7died."),
+        DIED_EXPLOSION("died.explosion", "&7%player% &7was blown up."),
+
+        FALL_PROTECTION_START("fall_protection.start", "&cFall protection inactive in %seconds% seconds."),
+        FALL_PROTECTION_END("fall_protection.end", "&cFall protection inactive."),
+        FALL_PROTECTION_DEACTIVATED("fall_protection.deactivated", "&cFall protection deactivated by sneaking."),
+
+        GAME_RESULT_TITLE_WON("game_result.title_won", "&7%team%"),
+        GAME_RESULT_SUBTITLE_WON("game_result.subtitle_won", "&6has won the game!"),
+        GAME_RESULT_TITLE_WINNER("game_result.title_winner", "&2Your team"),
+        GAME_RESULT_SUBTITLE_WINNER("game_result.subtitle_winner", "&ahas won!"),
+        GAME_RESULT_TITLE_LOSER("game_result.title_loser", "&4Your team"),
+        GAME_RESULT_SUBTITLE_LOSER("game_result.subtitle_loser", "&chas lost!"),
+        GAME_RESULT_TITLE_DRAW("game_result.title_draw", "&7Draw!"),
+        GAME_RESULT_SUBTITLE_DRAW("game_result.subtitle_draw", ""),
+        GAME_RESULT_MONEY("game_result.money", "&7You received &e%money% &7coins."),
+
+        VOTE_SUCCESS("vote.success", "&7You successfully voted for the map %map%."),
+        VOTE_FINISHED("vote.finished", "&7The map %map% &7was elected."),
+        VOTE_GUI("vote.gui", "Vote for a map"),
+        VOTE_CANT_VOTE("vote.cant_vote", "&cYou can not vote in this game."),
+        VOTE_CHANGE_TEAM_NOT_NOW("vote.change_team_not_now", "&cThe game is not in the right state to vote right now."),
+        VOTE_CHANGE_TEAM_NO_LONGER_NOW("vote.change_team_no_longer_now", "&cA map was already selected."),
+
+        SIGNEDIT_SIGN_CREATED("signedit.sign_created", "&7Sign was successfully created and connected."),
+        SIGNEDIT_SIGN_REMOVED("signedit.sign_removed", "&7You have successfully removed this missilewars sign."),
+        SIGNEDIT_LOBBY_NOT_FOUND("signedit.lobby_not_found", "&cCould not find lobby %input%."),
+        SIGNEDIT_SIGN_REMOVE_DESC("signedit.sign_remove_desc", "&cYou have to be sneaking in order to remove this sign."),
+
+        SIGN_0("sign.0", "•● MissileWars ●•"),
+        SIGN_1("sign.1", "%state%"),
+        SIGN_2("sign.2", "%arena%"),
+        SIGN_3("sign.3", "&7%players%&8/&7%max_players%"),
+        SIGN_STATE_LOBBY("sign.state.lobby", "&aLobby"),
+        SIGN_STATE_INGAME("sign.state.ingame", "&bIngame"),
+        SIGN_STATE_ENDED("sign.state.ended", "&cRestarting..."),
+        SIGN_STATE_ERROR("sign.state.error", "&cError...");
+
+        private final String path;
+        private final String defaultMsg;
+
+        MessageEnum(String path, String defaultMsg) {
+            this.path = path;
+            this.defaultMsg = getDefaultMsg();
+        }
+        
     }
 
-    public static String getPrefix() {
-        return ChatColor.translateAlternateColorCodes('&', cfg.getString("prefix"));
+    private static String getConfigMessage(MessageEnum msg) {
+        return ChatColor.translateAlternateColorCodes('&', cfg.getString(msg.getPath(), 
+                "&cError while reading from messages.yml: '" + msg.getPath() + "'"));
     }
+
 }

+ 18 - 18
missilewars-plugin/src/main/java/de/butzlabben/missilewars/game/Game.java

@@ -322,7 +322,7 @@ public class Game {
             Bukkit.getScheduler().runTaskLater(MissileWars.getInstance(), () -> teleportToArenaSpectatorSpawn(player), 2);
             Bukkit.getScheduler().runTaskLater(MissileWars.getInstance(), () -> player.setGameMode(GameMode.SPECTATOR), 35);
 
-            player.sendMessage(Messages.getMessage("arena.spectator"));
+            player.sendMessage(Messages.getMessage(true, Messages.MessageEnum.ARENA_SPECTATOR));
             player.setDisplayName("§7" + player.getName() + "§r");
 
         } else {
@@ -332,13 +332,13 @@ public class Game {
 
             Team team = getNextTeam();
             team.addMember(mwPlayer);
-            player.sendMessage(Messages.getMessage("team.team_assigned").replace("%team%", team.getFullname()));
+            player.sendMessage(Messages.getMessage(true, Messages.MessageEnum.TEAM_TEAM_ASSIGNED).replace("%team%", team.getFullname()));
             
             String message = null;
             if (state == GameState.LOBBY) {
-                message = Messages.getMessage("lobby.player_joined");
+                message = Messages.getMessage(true, Messages.MessageEnum.LOBBY_PLAYER_JOINED);
             } else if (state == GameState.INGAME) {
-                message = Messages.getMessage("game.player_joined");
+                message = Messages.getMessage(true, Messages.MessageEnum.GAME_PLAYER_JOINED);
             }
             
             if (message != null) {
@@ -399,9 +399,9 @@ public class Game {
 
             String message = null;
             if (state == GameState.LOBBY) {
-                message = Messages.getMessage("lobby.player_left");
+                message = Messages.getMessage(true, Messages.MessageEnum.LOBBY_PLAYER_LEFT);
             } else if (state == GameState.INGAME) {
-                message = Messages.getMessage("game.player_left");
+                message = Messages.getMessage(true, Messages.MessageEnum.GAME_PLAYER_LEFT);
             }
             
             if (message != null) {
@@ -416,9 +416,9 @@ public class Game {
         player.setScoreboard(Bukkit.getScoreboardManager().getMainScoreboard());
 
         if (state == GameState.LOBBY) {
-            player.sendMessage(Messages.getMessage("lobby.left").replace("%lobby_name%", getLobby().getDisplayName()));
+            player.sendMessage(Messages.getMessage(true, Messages.MessageEnum.LOBBY_LEFT).replace("%lobby_name%", getLobby().getDisplayName()));
         } else if (state == GameState.INGAME) {
-            player.sendMessage(Messages.getMessage("game.left").replace("%arena_name%", arena.getDisplayName()));
+            player.sendMessage(Messages.getMessage(true, Messages.MessageEnum.GAME_LEFT).replace("%arena_name%", arena.getDisplayName()));
         }
         
     }
@@ -443,7 +443,7 @@ public class Game {
                 sendGameResult();
                 stopGame();
             });
-            broadcast(Messages.getMessage("team.all_teammates_offline").replace("%team%", team.getFullname()));
+            broadcast(Messages.getMessage(true, Messages.MessageEnum.TEAM_ALL_TEAMMATES_OFFLINE).replace("%team%", team.getFullname()));
         }
     }
 
@@ -659,14 +659,14 @@ public class Game {
         boolean isOnlyBetweenSpawnPlaceable = this.arena.getMissileConfiguration().isOnlyBetweenSpawnPlaceable();
         if (isOnlyBetweenSpawnPlaceable) {
             if (!isInInnerGameArea(player.getLocation())) {
-                player.sendMessage(Messages.getMessage("arena.missile_place_deny"));
+                player.sendMessage(Messages.getMessage(true, Messages.MessageEnum.ARENA_MISSILE_PLACE_DENY));
                 return;
             }
         }
 
         Missile missile = this.arena.getMissileConfiguration().getMissileFromName(itemStack.getItemMeta().getDisplayName());
         if (missile == null) {
-            player.sendMessage(Messages.getMessage("command.invalid_missile"));
+            player.sendMessage(Messages.getMessage(true, Messages.MessageEnum.COMMAND_INVALID_MISSILE));
             return;
         }
         itemStack.setAmount(itemStack.getAmount() - 1);
@@ -721,7 +721,7 @@ public class Game {
         createInnerGameArea();
 
         if (lobby.getMapChooseProcedure() == MapChooseProcedure.MAPVOTING) {
-            this.broadcast(Messages.getMessage("vote.finished").replace("%map%", this.arena.getDisplayName()));
+            this.broadcast(Messages.getMessage(true, Messages.MessageEnum.VOTE_FINISHED).replace("%map%", this.arena.getDisplayName()));
         }
         applyForAllPlayers(player -> player.getInventory().setItem(4, new ItemStack(Material.AIR)));
 
@@ -814,16 +814,16 @@ public class Game {
         String subTitle;
 
         if (team1.getGameResult() == GameResult.WIN) {
-            title = Messages.getNativeMessage("game_result.title_won").replace("%team%", team1.getName());
-            subTitle = Messages.getNativeMessage("game_result.subtitle_won");
+            title = Messages.getMessage(false, Messages.MessageEnum.GAME_RESULT_TITLE_WON).replace("%team%", team1.getName());
+            subTitle = Messages.getMessage(false, Messages.MessageEnum.GAME_RESULT_SUBTITLE_WON);
 
         } else if (team2.getGameResult() == GameResult.WIN) {
-            title = Messages.getNativeMessage("game_result.title_won").replace("%team%", team2.getName());
-            subTitle = Messages.getNativeMessage("game_result.subtitle_won");
+            title = Messages.getMessage(false, Messages.MessageEnum.GAME_RESULT_TITLE_WON).replace("%team%", team2.getName());
+            subTitle = Messages.getMessage(false, Messages.MessageEnum.GAME_RESULT_SUBTITLE_WON);
 
         } else {
-            title = Messages.getNativeMessage("game_result.title_draw");
-            subTitle = Messages.getNativeMessage("game_result.subtitle_draw");
+            title = Messages.getMessage(false, Messages.MessageEnum.GAME_RESULT_TITLE_DRAW);
+            subTitle = Messages.getMessage(false, Messages.MessageEnum.GAME_RESULT_SUBTITLE_DRAW);
 
         }
         

+ 1 - 1
missilewars-plugin/src/main/java/de/butzlabben/missilewars/game/GameWorld.java

@@ -67,7 +67,7 @@ public class GameWorld {
         synchronized (lock) {
             Bukkit.getOnlinePlayers().forEach(p -> {
                 if (p.isDead() && p.getWorld().getName().equals(worldName)) {
-                    p.kickPlayer(Messages.getMessage("arena.kick_inactivity"));
+                    p.kickPlayer(Messages.getMessage(true, Messages.MessageEnum.ARENA_KICK_INACTIVITY));
                 }
             });
         }

+ 8 - 8
missilewars-plugin/src/main/java/de/butzlabben/missilewars/game/Team.java

@@ -187,16 +187,16 @@ public class Team {
 
         switch (gameResult) {
             case WIN:
-                title = Messages.getNativeMessage("game_result.title_winner");
-                subTitle = Messages.getNativeMessage("game_result.subtitle_winner");
+                title = Messages.getMessage(false, Messages.MessageEnum.GAME_RESULT_TITLE_WINNER);
+                subTitle = Messages.getMessage(false, Messages.MessageEnum.GAME_RESULT_SUBTITLE_WINNER);
                 break;
             case LOSE:
-                title = Messages.getNativeMessage("game_result.title_loser");
-                subTitle = Messages.getNativeMessage("game_result.subtitle_loser");
+                title = Messages.getMessage(false, Messages.MessageEnum.GAME_RESULT_TITLE_LOSER);
+                subTitle = Messages.getMessage(false, Messages.MessageEnum.GAME_RESULT_SUBTITLE_LOSER);
                 break;
             case DRAW:
-                title = Messages.getNativeMessage("game_result.title_draw");
-                subTitle = Messages.getNativeMessage("game_result.subtitle_draw");
+                title = Messages.getMessage(false, Messages.MessageEnum.GAME_RESULT_TITLE_DRAW);
+                subTitle = Messages.getMessage(false, Messages.MessageEnum.GAME_RESULT_SUBTITLE_DRAW);
                 break;
             default:
                 title = null;
@@ -231,10 +231,10 @@ public class Team {
     // TODO Add new team buffer
     public void updateIntervals(int newInterval) {
         if (newInterval < currentInterval && currentInterval != 0) {
-            getGame().broadcast(Messages.getMessage("team.team_buffed").replace("%team%", getFullname()));
+            getGame().broadcast(Messages.getMessage(true, Messages.MessageEnum.TEAM_TEAM_BUFFED).replace("%team%", getFullname()));
         }
         if (newInterval > currentInterval && currentInterval != 0) {
-            getGame().broadcast(Messages.getMessage("team.team_nerved").replace("%team%", getFullname()));
+            getGame().broadcast(Messages.getMessage(true, Messages.MessageEnum.TEAM_TEAM_NERVED).replace("%team%", getFullname()));
         }
     }
 

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

@@ -124,7 +124,7 @@ public class RespawnGoldBlock implements Listener {
             BlockSetterProvider.getBlockDataSetter().setData(loc.getBlock(), map.get(loc).getValue());
         }
         map.clear();
-        player.sendMessage(Messages.getMessage("fall_protection.end"));
+        player.sendMessage(Messages.getMessage(true, Messages.MessageEnum.FALL_PROTECTION_END));
         Bukkit.getScheduler().cancelTask(task);
         HandlerList.unregisterAll(this);
     }
@@ -136,7 +136,7 @@ public class RespawnGoldBlock implements Listener {
     private void sendFallProtectionMessage() {
         double seconds = (double) duration / 20;
         if ((seconds == Math.floor(seconds)) && !Double.isInfinite(seconds)) {
-            player.sendMessage(Messages.getMessage("fall_protection.start").replace("%seconds%", Integer.toString((int) seconds)));
+            player.sendMessage(Messages.getMessage(true, Messages.MessageEnum.FALL_PROTECTION_START).replace("%seconds%", Integer.toString((int) seconds)));
         }
     }
 
@@ -151,7 +151,7 @@ public class RespawnGoldBlock implements Listener {
             map.clear();
             Bukkit.getScheduler().cancelTask(task);
             HandlerList.unregisterAll(this);
-            eventPlayer.sendMessage(Messages.getMessage("fall_protection.deactivated"));
+            eventPlayer.sendMessage(Messages.getMessage(true, Messages.MessageEnum.FALL_PROTECTION_DEACTIVATED));
         }
     }
 }

+ 9 - 7
missilewars-plugin/src/main/java/de/butzlabben/missilewars/game/signs/MWSign.java

@@ -62,9 +62,11 @@ public class MWSign {
         }
         Game game = GameManager.getInstance().getGame(getLobby());
         List<String> lines = new ArrayList<>();
-        for (int i = 0; i < 4; i++) {
-            lines.add(replace(Messages.getNativeMessage("sign." + i), game));
-        }
+        lines.add(replace(Messages.getMessage(false, Messages.MessageEnum.SIGN_0), game));
+        lines.add(replace(Messages.getMessage(false, Messages.MessageEnum.SIGN_1), game));
+        lines.add(replace(Messages.getMessage(false, Messages.MessageEnum.SIGN_2), game));
+        lines.add(replace(Messages.getMessage(false, Messages.MessageEnum.SIGN_3), game));
+        
         if (game == null) {
             Logger.WARN.log("Could not find specifed arena \"" + getLobby() + "\" for sign at: " + getLocation().toString());
         }
@@ -86,20 +88,20 @@ public class MWSign {
     }
 
     private String replace(String line, Game game) {
-        String state = Messages.getNativeMessage("sign.state.error");
+        String state = Messages.getMessage(false, Messages.MessageEnum.SIGN_STATE_ERROR);
         String name = "No game";
         if (game != null) {
             switch (game.getState()) {
                 case LOBBY:
-                    state = Messages.getNativeMessage("sign.state.lobby");
+                    state = Messages.getMessage(false, Messages.MessageEnum.SIGN_STATE_LOBBY);
                     name = game.getLobby().getDisplayName();
                     break;
                 case INGAME:
-                    state = Messages.getNativeMessage("sign.state.ingame");
+                    state = Messages.getMessage(false, Messages.MessageEnum.SIGN_STATE_INGAME);
                     name = game.getArena().getDisplayName();
                     break;
                 case END:
-                    state = Messages.getNativeMessage("sign.state.ended");
+                    state = Messages.getMessage(false, Messages.MessageEnum.SIGN_STATE_ENDED);
                     name = game.getArena().getDisplayName();
                     break;
             }

+ 1 - 1
missilewars-plugin/src/main/java/de/butzlabben/missilewars/game/timer/EndTimer.java

@@ -37,7 +37,7 @@ public class EndTimer extends Timer {
 
         switch(seconds) {
             case 15:
-                broadcast(Messages.getMessage("endgame_timer.game_starts_new_in").replace("%seconds%", Integer.toString(seconds)));
+                broadcast(Messages.getMessage(true, Messages.MessageEnum.ENDGAME_TIMER_GAME_STARTS_NEW_IN).replace("%seconds%", Integer.toString(seconds)));
                 break;
             case 0:
                 getGame().reset();

+ 2 - 2
missilewars-plugin/src/main/java/de/butzlabben/missilewars/game/timer/GameTimer.java

@@ -45,7 +45,7 @@ public class GameTimer extends Timer {
             case 600:
             case 300:
             case 180:
-                broadcast(Messages.getMessage("game_timer.game_ends_in_minutes").replace("%minutes%", Integer.toString(seconds/60)));
+                broadcast(Messages.getMessage(true, Messages.MessageEnum.GAME_TIMER_GAME_ENDS_IN_MINUTES).replace("%minutes%", Integer.toString(seconds/60)));
                 break;
             case 60:
             case 30:
@@ -55,7 +55,7 @@ public class GameTimer extends Timer {
             case 3:
             case 2:
             case 1:
-                broadcast(Messages.getMessage("game_timer.game_ends_in_seconds").replace("%seconds%", Integer.toString(seconds)));
+                broadcast(Messages.getMessage(true, Messages.MessageEnum.GAME_TIMER_GAME_ENDS_IN_SECONDS).replace("%seconds%", Integer.toString(seconds)));
                 break;
             case 0:
                 game.sendGameResult();

+ 5 - 5
missilewars-plugin/src/main/java/de/butzlabben/missilewars/game/timer/LobbyTimer.java

@@ -67,7 +67,7 @@ public class LobbyTimer extends Timer implements Runnable {
             if (size1 + size2 < getGame().getLobby().getMinSize()) {
                 seconds = startTime;
                 remaining = 90;
-                broadcast(Messages.getMessage("lobby.not_enough_players"));
+                broadcast(Messages.getMessage(true, Messages.MessageEnum.LOBBY_NOT_ENOUGH_PLAYERS));
                 return;
             }
         }
@@ -81,22 +81,22 @@ public class LobbyTimer extends Timer implements Runnable {
             case 3:
             case 2:
             case 1:
-                broadcast(Messages.getMessage("lobby_timer.game_starts_in").replace("%seconds%", Integer.toString(seconds)));
+                broadcast(Messages.getMessage(true, Messages.MessageEnum.LOBBY_TIMER_GAME_STARTS_IN).replace("%seconds%", Integer.toString(seconds)));
                 playPling();
                 break;
             case 10:
                 checkVote();
-                broadcast(Messages.getMessage("lobby_timer.game_starts_in").replace("%seconds%", Integer.toString(seconds)));
+                broadcast(Messages.getMessage(true, Messages.MessageEnum.LOBBY_TIMER_GAME_STARTS_IN).replace("%seconds%", Integer.toString(seconds)));
                 playPling();
                 break;
             case 0:
                 int diff = size1 - size2;
                 if (diff >= 2 || diff <= -2) {
-                    broadcast(Messages.getMessage("lobby.teams_unequal"));
+                    broadcast(Messages.getMessage(true, Messages.MessageEnum.LOBBY_TEAMS_UNEQUAL));
                     seconds = startTime;
                     return;
                 }
-                broadcast(Messages.getMessage("lobby.game_starts"));
+                broadcast(Messages.getMessage(true, Messages.MessageEnum.LOBBY_GAME_STARTS));
                 playPling();
                 getGame().startGame();
                 return;

+ 1 - 1
missilewars-plugin/src/main/java/de/butzlabben/missilewars/inventory/VoteInventory.java

@@ -30,7 +30,7 @@ import java.util.Map;
 public class VoteInventory extends OrcInventory {
 
     public VoteInventory(List<Arena> arenas) {
-        super(Messages.getNativeMessage("vote.gui"), (int) Math.ceil(arenas.size() / 9D));
+        super(Messages.getMessage(false, Messages.MessageEnum.VOTE_GUI), (int) Math.ceil(arenas.size() / 9D));
 
         Map<Integer, int[]> map = new HashMap<>();
         map.put(1, new int[] {4});

+ 4 - 4
missilewars-plugin/src/main/java/de/butzlabben/missilewars/listener/SignListener.java

@@ -80,9 +80,9 @@ public class SignListener implements Listener {
             signRepository.getSigns().add(sign);
             signRepository.saveData();
 
-            player.sendMessage(Messages.getMessage("signedit.sign_created"));
+            player.sendMessage(Messages.getMessage(true, Messages.MessageEnum.SIGNEDIT_SIGN_CREATED));
         } else {
-            player.sendMessage(Messages.getMessage("signedit.lobby_not_found").replace("%input%", lobbyName));
+            player.sendMessage(Messages.getMessage(true, Messages.MessageEnum.SIGNEDIT_LOBBY_NOT_FOUND).replace("%input%", lobbyName));
             event.setCancelled(true);
         }
     }
@@ -105,9 +105,9 @@ public class SignListener implements Listener {
             repository.getSigns().remove(sign);
             repository.saveData();
 
-            player.sendMessage(Messages.getMessage("signedit.sign_removed"));
+            player.sendMessage(Messages.getMessage(true, Messages.MessageEnum.SIGNEDIT_SIGN_REMOVED));
         } else {
-            player.sendMessage(Messages.getMessage("signedit.sign_remove_desc"));
+            player.sendMessage(Messages.getMessage(true, Messages.MessageEnum.SIGNEDIT_SIGN_REMOVE_DESC));
             event.setCancelled(true);
         }
     }

+ 1 - 1
missilewars-plugin/src/main/java/de/butzlabben/missilewars/listener/game/EndListener.java

@@ -74,7 +74,7 @@ public class EndListener extends GameBoundListener {
 
         if (getGame().isSpectatorsMax()) {
             event.setCancelled(true);
-            event.getPlayer().sendMessage(Messages.getMessage("game.not_enter_arena"));
+            event.getPlayer().sendMessage(Messages.getMessage(true, Messages.MessageEnum.GAME_NOT_ENTER_ARENA));
             return;
         }
 

+ 6 - 6
missilewars-plugin/src/main/java/de/butzlabben/missilewars/listener/game/GameListener.java

@@ -169,7 +169,7 @@ public class GameListener extends GameBoundListener {
 
         // same team
         if (team == getGame().getPlayer(player).getTeam()) {
-            shooter.sendMessage(Messages.getMessage("team.hurt_teammates"));
+            shooter.sendMessage(Messages.getMessage(true, Messages.MessageEnum.TEAM_HURT_TEAMMATES));
             event.setCancelled(true);
         }
     }
@@ -212,9 +212,9 @@ public class GameListener extends GameBoundListener {
             EntityDamageEvent.DamageCause damageCause = player.getLastDamageCause().getCause();
 
             if (damageCause == EntityDamageEvent.DamageCause.BLOCK_EXPLOSION || damageCause == EntityDamageEvent.DamageCause.ENTITY_EXPLOSION) {
-                deathBroadcast = Messages.getNativeMessage("died.explosion").replace("%player%", player.getDisplayName());
+                deathBroadcast = Messages.getMessage(true, Messages.MessageEnum.DIED_EXPLOSION).replace("%player%", player.getDisplayName());
             } else {
-                deathBroadcast = Messages.getNativeMessage("died.normal").replace("%player%", player.getDisplayName());
+                deathBroadcast = Messages.getMessage(true, Messages.MessageEnum.DIED_NORMAL).replace("%player%", player.getDisplayName());
             }
 
             getGame().broadcast(deathBroadcast);
@@ -254,7 +254,7 @@ public class GameListener extends GameBoundListener {
         int toY = event.getTo().getBlockY();
         if (toY > getGame().getArena().getMaxHeight()) {
             player.teleport(event.getFrom());
-            player.sendMessage(Messages.getMessage("arena.not_higher"));
+            player.sendMessage(Messages.getMessage(true, Messages.MessageEnum.ARENA_NOT_HIGHER));
         } else if (toY < getGame().getArena().getDeathHeight()) {
             player.setLastDamageCause(new EntityDamageEvent(player, EntityDamageEvent.DamageCause.FALL, 20));
             player.damage(20.0D);
@@ -265,7 +265,7 @@ public class GameListener extends GameBoundListener {
 
         if (!getGame().isInGameArea(event.getTo())) {
             if (to != null) Game.knockbackEffect(player, from, to);
-            player.sendMessage(Messages.getMessage("arena.arena_leave"));
+            player.sendMessage(Messages.getMessage(true, Messages.MessageEnum.ARENA_ARENA_LEAVE));
         }
     }
 
@@ -278,7 +278,7 @@ public class GameListener extends GameBoundListener {
         if ((!getGame().getLobby().isJoinOngoingGame()) || (getGame().isPlayersMax())) {
             if (getGame().isSpectatorsMax()) {
                 event.setCancelled(true);
-                event.getPlayer().sendMessage(Messages.getMessage("game.not_enter_arena"));
+                event.getPlayer().sendMessage(Messages.getMessage(true, Messages.MessageEnum.GAME_NOT_ENTER_ARENA));
                 return;
             }
             getGame().playerJoinInGame(player, true);

+ 2 - 2
missilewars-plugin/src/main/java/de/butzlabben/missilewars/listener/game/LobbyListener.java

@@ -70,7 +70,7 @@ public class LobbyListener extends GameBoundListener {
 
             // too late for team change:
             if (getGame().getTimer().getSeconds() < 10) {
-                player.sendMessage(Messages.getMessage("team.change_team_no_longer_now"));
+                player.sendMessage(Messages.getMessage(true, Messages.MessageEnum.TEAM_CHANGE_TEAM_NO_LONGER_NOW));
                 return;
             }
 
@@ -121,7 +121,7 @@ public class LobbyListener extends GameBoundListener {
 
         if (getGame().isPlayersMax()) {
             event.setCancelled(true);
-            event.getPlayer().sendMessage(Messages.getMessage("game.not_enter_arena"));
+            event.getPlayer().sendMessage(Messages.getMessage(true, Messages.MessageEnum.GAME_NOT_ENTER_ARENA));
             return;
         }
 

+ 1 - 1
missilewars-plugin/src/main/java/de/butzlabben/missilewars/util/MoneyUtil.java

@@ -68,7 +68,7 @@ public class MoneyUtil {
             Logger.WARN.log("Message: " + r.errorMessage);
         } else {
             if (Bukkit.getPlayer(uuid) != null)
-                Bukkit.getPlayer(uuid).sendMessage(Messages.getMessage("game_result.money").replace("%money%", Integer.toString(money)));
+                Bukkit.getPlayer(uuid).sendMessage(Messages.getMessage(true, Messages.MessageEnum.GAME_RESULT_MONEY).replace("%money%", Integer.toString(money)));
         }
     }
 }