summaryrefslogtreewikicommitdiff
path: root/src/main
diff options
context:
space:
mode:
Diffstat (limited to 'src/main')
-rw-r--r--src/main/java/net/tylermurphy/hideAndSeek/Main.java14
-rw-r--r--src/main/java/net/tylermurphy/hideAndSeek/bukkit/CommandHandler.java11
-rw-r--r--src/main/java/net/tylermurphy/hideAndSeek/bukkit/EventListener.java10
-rw-r--r--src/main/java/net/tylermurphy/hideAndSeek/bukkit/Tick.java15
-rw-r--r--src/main/java/net/tylermurphy/hideAndSeek/command/Join.java17
-rw-r--r--src/main/java/net/tylermurphy/hideAndSeek/command/Leave.java15
-rw-r--r--src/main/java/net/tylermurphy/hideAndSeek/command/Reload.java12
-rw-r--r--src/main/java/net/tylermurphy/hideAndSeek/command/SaveMap.java15
-rw-r--r--src/main/java/net/tylermurphy/hideAndSeek/command/SetBorder.java19
-rw-r--r--src/main/java/net/tylermurphy/hideAndSeek/command/SetExitLocation.java7
-rw-r--r--src/main/java/net/tylermurphy/hideAndSeek/command/SetLobbyLocation.java7
-rw-r--r--src/main/java/net/tylermurphy/hideAndSeek/command/SetSpawnLocation.java9
-rw-r--r--src/main/java/net/tylermurphy/hideAndSeek/command/Setup.java19
-rw-r--r--src/main/java/net/tylermurphy/hideAndSeek/command/Start.java33
-rw-r--r--src/main/java/net/tylermurphy/hideAndSeek/command/Stop.java9
-rw-r--r--src/main/java/net/tylermurphy/hideAndSeek/configuration/Config.java (renamed from src/main/java/net/tylermurphy/hideAndSeek/Config.java)35
-rw-r--r--src/main/java/net/tylermurphy/hideAndSeek/configuration/Localization.java37
-rw-r--r--src/main/java/net/tylermurphy/hideAndSeek/configuration/LocalizationString.java48
-rw-r--r--src/main/java/net/tylermurphy/hideAndSeek/events/Taunt.java10
-rw-r--r--src/main/java/net/tylermurphy/hideAndSeek/events/Worldborder.java7
-rw-r--r--src/main/java/net/tylermurphy/hideAndSeek/util/Board.java4
-rw-r--r--src/main/java/net/tylermurphy/hideAndSeek/util/Util.java2
-rw-r--r--src/main/resources/config.yml61
-rw-r--r--src/main/resources/localization.yml50
-rw-r--r--src/main/resources/plugin.yml14
25 files changed, 336 insertions, 144 deletions
diff --git a/src/main/java/net/tylermurphy/hideAndSeek/Main.java b/src/main/java/net/tylermurphy/hideAndSeek/Main.java
index 6bdc8d2..30d0233 100644
--- a/src/main/java/net/tylermurphy/hideAndSeek/Main.java
+++ b/src/main/java/net/tylermurphy/hideAndSeek/Main.java
@@ -18,6 +18,8 @@ import net.tylermurphy.hideAndSeek.bukkit.CommandHandler;
import net.tylermurphy.hideAndSeek.bukkit.EventListener;
import net.tylermurphy.hideAndSeek.bukkit.TabCompleter;
import net.tylermurphy.hideAndSeek.bukkit.Tick;
+import net.tylermurphy.hideAndSeek.configuration.Config;
+import net.tylermurphy.hideAndSeek.configuration.Localization;
import net.tylermurphy.hideAndSeek.events.Glow;
import net.tylermurphy.hideAndSeek.events.Taunt;
import net.tylermurphy.hideAndSeek.events.Worldborder;
@@ -26,7 +28,7 @@ import net.tylermurphy.hideAndSeek.util.Board;
public class Main extends JavaPlugin implements Listener {
public static Main plugin;
- public static File root;
+ public static File root, data;
public Taunt taunt;
public Glow glow;
@@ -49,15 +51,19 @@ public class Main extends JavaPlugin implements Listener {
// Setup Initial Player Count
getServer().getPluginManager().registerEvents(new EventListener(), this);
+ // Get Data Folder
+ root = this.getServer().getWorldContainer();
+ data = this.getDataFolder();
+
// Init Configuration
+ Main.plugin.saveResource("localization.yml", false);
+ Main.plugin.saveResource("config.yml", false);
Config.loadConfig();
+ Localization.init();
// Register Commands
CommandHandler.registerCommands();
- // Get Data Folder
- root = this.getServer().getWorldContainer();
-
//Board
board = new Board();
board.reload();
diff --git a/src/main/java/net/tylermurphy/hideAndSeek/bukkit/CommandHandler.java b/src/main/java/net/tylermurphy/hideAndSeek/bukkit/CommandHandler.java
index af44954..2001df6 100644
--- a/src/main/java/net/tylermurphy/hideAndSeek/bukkit/CommandHandler.java
+++ b/src/main/java/net/tylermurphy/hideAndSeek/bukkit/CommandHandler.java
@@ -1,6 +1,7 @@
package net.tylermurphy.hideAndSeek.bukkit;
-import static net.tylermurphy.hideAndSeek.Config.*;
+import static net.tylermurphy.hideAndSeek.configuration.Config.*;
+import static net.tylermurphy.hideAndSeek.configuration.Localization.*;
import java.util.Arrays;
import java.util.LinkedHashMap;
@@ -40,18 +41,18 @@ public class CommandHandler {
public static boolean handleCommand(CommandSender sender, Command cmd, String label, String[] args) {
if(sender instanceof Player == false) {
- sender.sendMessage(errorPrefix + "This command can only be run as a player.");
+ sender.sendMessage(errorPrefix + message("COMMAND_PLAYER_ONLY"));
} else if(args.length < 1 || !COMMAND_REGISTER.containsKey(args[0].toLowerCase()) ) {
if(permissionsRequired && !sender.hasPermission("hideandseek.about")) {
- sender.sendMessage(errorPrefix + "You are not allowed to run this command.");
+ sender.sendMessage(errorPrefix + LOCAL.get(""));
} else {
COMMAND_REGISTER.get("about").execute(sender, null);
}
} else {
if(!args[0].toLowerCase().equals("about") && !args[0].toLowerCase().equals("help") && SaveMap.runningBackup) {
- sender.sendMessage(errorPrefix + "Map save is currently in progress. Try again later.");
+ sender.sendMessage(errorPrefix + message("MAPSAVE_INPROGRESS"));
} else if(permissionsRequired && !sender.hasPermission("hideandseek."+args[0].toLowerCase())) {
- sender.sendMessage(errorPrefix + "You are not allowed to run this command.");
+ sender.sendMessage(errorPrefix + message("COMMAND_NOT_ALLOWED"));
} else {
try {
COMMAND_REGISTER.get(args[0].toLowerCase()).execute(sender,Arrays.copyOfRange(args, 1, args.length));
diff --git a/src/main/java/net/tylermurphy/hideAndSeek/bukkit/EventListener.java b/src/main/java/net/tylermurphy/hideAndSeek/bukkit/EventListener.java
index c50fbe4..c0ee5eb 100644
--- a/src/main/java/net/tylermurphy/hideAndSeek/bukkit/EventListener.java
+++ b/src/main/java/net/tylermurphy/hideAndSeek/bukkit/EventListener.java
@@ -1,6 +1,6 @@
package net.tylermurphy.hideAndSeek.bukkit;
-import static net.tylermurphy.hideAndSeek.Config.*;
+import static net.tylermurphy.hideAndSeek.configuration.Config.*;
import org.bukkit.Bukkit;
import org.bukkit.GameMode;
@@ -24,11 +24,11 @@ import org.bukkit.event.player.PlayerJoinEvent;
import org.bukkit.event.player.PlayerKickEvent;
import org.bukkit.event.player.PlayerQuitEvent;
-import net.md_5.bungee.api.ChatColor;
import net.tylermurphy.hideAndSeek.util.Packet;
import net.tylermurphy.hideAndSeek.util.Util;
import net.tylermurphy.hideAndSeek.Main;
import net.tylermurphy.hideAndSeek.command.Start;
+import static net.tylermurphy.hideAndSeek.configuration.Localization.*;
public class EventListener implements Listener {
@@ -79,13 +79,13 @@ public class EventListener implements Listener {
player.teleport(new Location(Bukkit.getWorld("hideandseek_"+spawnWorld), spawnPosition.getX(), spawnPosition.getY(), spawnPosition.getZ()));
Packet.playSound(player, Sound.ENTITY_PLAYER_DEATH, 1, 1);
if(Main.plugin.board.isSeeker(player)) {
- Bukkit.broadcastMessage(String.format(messagePrefix + "%s%s%s was killed", ChatColor.RED, event.getEntity().getName(), ChatColor.WHITE));
+ Bukkit.broadcastMessage(message("GAME_PLAYER_DEATH").addPlayer(event.getEntity()).toString());
}
if(Main.plugin.board.isHider(player)) {
if(attacker == null) {
- Util.broadcastMessage(String.format(messagePrefix + "%s%s%s was found and became a seeker", ChatColor.GOLD, event.getEntity().getName(), ChatColor.WHITE));
+ Util.broadcastMessage(message("GAME_PLAYER_FOUND").addPlayer(event.getEntity()).toString());
} else {
- Util.broadcastMessage(String.format(messagePrefix + "%s%s%s was found by %s%s%s and became a seeker", ChatColor.GOLD, event.getEntity().getName(), ChatColor.WHITE, ChatColor.RED, attacker.getName(), ChatColor.WHITE));
+ Util.broadcastMessage(message("GAME_PLAYER_FOUND_BY").addPlayer(event.getEntity()).addPlayer(attacker).toString());
}
Main.plugin.board.addSeeker(player);
}
diff --git a/src/main/java/net/tylermurphy/hideAndSeek/bukkit/Tick.java b/src/main/java/net/tylermurphy/hideAndSeek/bukkit/Tick.java
index a876df1..a75ce53 100644
--- a/src/main/java/net/tylermurphy/hideAndSeek/bukkit/Tick.java
+++ b/src/main/java/net/tylermurphy/hideAndSeek/bukkit/Tick.java
@@ -1,6 +1,6 @@
package net.tylermurphy.hideAndSeek.bukkit;
-import static net.tylermurphy.hideAndSeek.Config.*;
+import static net.tylermurphy.hideAndSeek.configuration.Config.*;
import org.bukkit.Bukkit;
import org.bukkit.Sound;
@@ -10,6 +10,7 @@ import net.tylermurphy.hideAndSeek.Main;
import net.tylermurphy.hideAndSeek.command.Stop;
import net.tylermurphy.hideAndSeek.util.Packet;
import net.tylermurphy.hideAndSeek.util.Util;
+import static net.tylermurphy.hideAndSeek.configuration.Localization.*;
public class Tick {
@@ -21,13 +22,13 @@ public class Tick {
else if(Main.plugin.status.equals("Playing")) onPlaying();
if(( Main.plugin.status.equals("Starting") || Main.plugin.status.equals("Playing") ) && Main.plugin.board.sizeHider() < 1) {
- if(announceMessagesToNonPlayers) Bukkit.broadcastMessage(gameoverPrefix + "All hiders have been found.");
- else Util.broadcastMessage(gameoverPrefix + "All hiders have been found.");
+ if(announceMessagesToNonPlayers) Bukkit.broadcastMessage(gameoverPrefix + message("GAME_GAMEOVER_HIDERS_FOUND"));
+ else Util.broadcastMessage(gameoverPrefix + message("GAME_GAMEOVER_HIDERS_FOUND"));
Stop.onStop();
}
if(( Main.plugin.status.equals("Starting") || Main.plugin.status.equals("Playing") ) && Main.plugin.board.sizeSeeker() < 1) {
- if(announceMessagesToNonPlayers) Bukkit.broadcastMessage(abortPrefix + "All seekers have quit.");
- else Util.broadcastMessage(abortPrefix + "All seekers have quit.");
+ if(announceMessagesToNonPlayers) Bukkit.broadcastMessage(abortPrefix + message("GAME_GAMEOVER_SEEKERS_QUIT"));
+ else Util.broadcastMessage(abortPrefix + message("GAME_GAMEOVER_SEEKERS_QUIT"));
Stop.onStop();
}
@@ -73,8 +74,8 @@ public class Tick {
player.setLevel(Main.plugin.timeLeft);
}
if(Main.plugin.timeLeft < 1) {
- if(announceMessagesToNonPlayers) Bukkit.broadcastMessage(gameoverPrefix + "Seekers ran out of time. Hiders win!");
- else Util.broadcastMessage(gameoverPrefix + "Seekers ran out of time. Hiders win!");
+ if(announceMessagesToNonPlayers) Bukkit.broadcastMessage(gameoverPrefix + message("GAME_GAMEOVER_TIME"));
+ else Util.broadcastMessage(gameoverPrefix + message("GAME_GAMEOVER_TIME"));
Stop.onStop();
}
}
diff --git a/src/main/java/net/tylermurphy/hideAndSeek/command/Join.java b/src/main/java/net/tylermurphy/hideAndSeek/command/Join.java
index 3ad24b8..9e77381 100644
--- a/src/main/java/net/tylermurphy/hideAndSeek/command/Join.java
+++ b/src/main/java/net/tylermurphy/hideAndSeek/command/Join.java
@@ -1,5 +1,7 @@
package net.tylermurphy.hideAndSeek.command;
+import static net.tylermurphy.hideAndSeek.configuration.Config.*;
+
import org.bukkit.Bukkit;
import org.bukkit.GameMode;
import org.bukkit.Location;
@@ -9,36 +11,35 @@ import org.bukkit.entity.Player;
import net.tylermurphy.hideAndSeek.Main;
import net.tylermurphy.hideAndSeek.util.Util;
-
-import static net.tylermurphy.hideAndSeek.Config.*;
+import static net.tylermurphy.hideAndSeek.configuration.Localization.*;
public class Join implements ICommand {
public void execute(CommandSender sender, String[] args) {
if(!Util.isSetup()) {
- sender.sendMessage(errorPrefix + "Game is not setup. Run /hs setup to see what you needed to do");
+ sender.sendMessage(errorPrefix + message("GAME_SETUP"));
return;
}
Player player = Bukkit.getServer().getPlayer(sender.getName());
if(player == null) {
- sender.sendMessage(errorPrefix + "An internal error has occured");
+ sender.sendMessage(errorPrefix + message("COMMAND_ERROR"));
return;
}
if(Main.plugin.board.isPlayer(player)){
- sender.sendMessage(errorPrefix + "You are already in the lobby/game");
+ sender.sendMessage(errorPrefix + message("GAME_INGAME"));
return;
}
if(Main.plugin.status.equals("Standby")) {
Main.plugin.board.addHider(player);
- if(announceMessagesToNonPlayers) Bukkit.broadcastMessage(messagePrefix + sender.getName() + " has joined the HideAndSeek lobby");
- else Util.broadcastMessage(messagePrefix + sender.getName() + " has joined the HideAndSeek lobby");
+ if(announceMessagesToNonPlayers) Bukkit.broadcastMessage(messagePrefix + message("GAME_JOIN").addPlayer(player));
+ else Util.broadcastMessage(messagePrefix + message("GAME_JOIN").addPlayer(player));
player.teleport(new Location(Bukkit.getWorld(lobbyWorld), lobbyPosition.getX(),lobbyPosition.getY(),lobbyPosition.getZ()));
player.setGameMode(GameMode.ADVENTURE);
Main.plugin.board.reloadLobbyBoards();
} else {
Main.plugin.board.addSeeker(player);
- player.sendMessage(messagePrefix + "You have joined mid game and became a spectator");
+ player.sendMessage(messagePrefix + message("GAME_JOIN_SPECTATOR"));
player.setGameMode(GameMode.SPECTATOR);
player.teleport(new Location(Bukkit.getWorld("hideandseek_"+spawnWorld), spawnPosition.getX(),spawnPosition.getY(),spawnPosition.getZ()));
}
diff --git a/src/main/java/net/tylermurphy/hideAndSeek/command/Leave.java b/src/main/java/net/tylermurphy/hideAndSeek/command/Leave.java
index 4144da7..73dafbd 100644
--- a/src/main/java/net/tylermurphy/hideAndSeek/command/Leave.java
+++ b/src/main/java/net/tylermurphy/hideAndSeek/command/Leave.java
@@ -1,5 +1,7 @@
package net.tylermurphy.hideAndSeek.command;
+import static net.tylermurphy.hideAndSeek.configuration.Config.*;
+
import org.bukkit.Bukkit;
import org.bukkit.Location;
import org.bukkit.command.CommandSender;
@@ -7,27 +9,26 @@ import org.bukkit.entity.Player;
import net.tylermurphy.hideAndSeek.Main;
import net.tylermurphy.hideAndSeek.util.Util;
-
-import static net.tylermurphy.hideAndSeek.Config.*;
+import static net.tylermurphy.hideAndSeek.configuration.Localization.*;
public class Leave implements ICommand {
public void execute(CommandSender sender, String[] args) {
if(!Util.isSetup()) {
- sender.sendMessage(errorPrefix + "Game is not setup. Run /hs setup to see what you needed to do");
+ sender.sendMessage(errorPrefix + message("GAME_SETUP"));
return;
}
Player player = Bukkit.getServer().getPlayer(sender.getName());
if(player == null) {
- sender.sendMessage(errorPrefix + "An internal error has occured");
+ sender.sendMessage(errorPrefix + message("COMMAND_ERROR"));
return;
}
if(!Main.plugin.board.isPlayer(player)) {
- sender.sendMessage(errorPrefix + "You are currently not in the lobby");
+ sender.sendMessage(errorPrefix + message("GAME_NOT_INGAME"));
return;
}
- if(announceMessagesToNonPlayers) Bukkit.broadcastMessage(messagePrefix + sender.getName() + " has left the HideAndSeek lobby");
- else Util.broadcastMessage(messagePrefix + sender.getName() + " has left the HideAndSeek lobby");
+ if(announceMessagesToNonPlayers) Bukkit.broadcastMessage(messagePrefix + message("GAME_LEAVE").addPlayer(player));
+ else Util.broadcastMessage(messagePrefix + message("GAME_LEAVE").addPlayer(player));
Main.plugin.board.removeBoard(player);
Main.plugin.board.remove(player);
player.teleport(new Location(Bukkit.getWorld(exitWorld), exitPosition.getX(), exitPosition.getY(), exitPosition.getZ()));
diff --git a/src/main/java/net/tylermurphy/hideAndSeek/command/Reload.java b/src/main/java/net/tylermurphy/hideAndSeek/command/Reload.java
index 55147d6..cf580c9 100644
--- a/src/main/java/net/tylermurphy/hideAndSeek/command/Reload.java
+++ b/src/main/java/net/tylermurphy/hideAndSeek/command/Reload.java
@@ -1,22 +1,26 @@
package net.tylermurphy.hideAndSeek.command;
+import static net.tylermurphy.hideAndSeek.configuration.Config.*;
+
import org.bukkit.command.CommandSender;
import net.tylermurphy.hideAndSeek.Main;
-import net.tylermurphy.hideAndSeek.Config;
+import net.tylermurphy.hideAndSeek.configuration.Config;
+import net.tylermurphy.hideAndSeek.configuration.Localization;
-import static net.tylermurphy.hideAndSeek.Config.*;
+import static net.tylermurphy.hideAndSeek.configuration.Localization.*;
public class Reload implements ICommand {
public void execute(CommandSender sender, String[] args) {
if(!Main.plugin.status.equals("Standby")) {
- sender.sendMessage(errorPrefix + "Game is currently in session");
+ sender.sendMessage(errorPrefix + message("GAME_INPROGRESS"));
return;
}
Config.loadConfig();
- sender.sendMessage(messagePrefix + "Reloaded the config");
+ Localization.init();
+ sender.sendMessage(messagePrefix + message("CONFIG_RELOAD"));
}
public String getLabel() {
diff --git a/src/main/java/net/tylermurphy/hideAndSeek/command/SaveMap.java b/src/main/java/net/tylermurphy/hideAndSeek/command/SaveMap.java
index f6fe228..a2554d1 100644
--- a/src/main/java/net/tylermurphy/hideAndSeek/command/SaveMap.java
+++ b/src/main/java/net/tylermurphy/hideAndSeek/command/SaveMap.java
@@ -1,6 +1,6 @@
package net.tylermurphy.hideAndSeek.command;
-import static net.tylermurphy.hideAndSeek.Config.*;
+import static net.tylermurphy.hideAndSeek.configuration.Config.*;
import java.io.File;
import java.io.FileInputStream;
@@ -16,6 +16,7 @@ import org.bukkit.command.CommandSender;
import org.bukkit.scheduler.BukkitRunnable;
import net.tylermurphy.hideAndSeek.Main;
+import static net.tylermurphy.hideAndSeek.configuration.Localization.*;
public class SaveMap implements ICommand {
@@ -23,15 +24,15 @@ public class SaveMap implements ICommand {
public void execute(CommandSender sender, String[] args) {
if(!Main.plugin.status.equals("Standby")) {
- sender.sendMessage(errorPrefix + "Game is currently in session");
+ sender.sendMessage(errorPrefix + message("GAME_INPROGRESS"));
return;
}
if(spawnPosition.getBlockX() == 0 && spawnPosition.getBlockY() == 0 && spawnPosition.getBlockZ() == 0) {
- sender.sendMessage(errorPrefix + "Please set spawn location first");
+ sender.sendMessage(errorPrefix + message("ERROR_GAME_SPAWN"));
return;
}
- sender.sendMessage(messagePrefix + "Starting map save");
- sender.sendMessage(warningPrefix + "All commands will be disabled when the save is in progress. Do not turn off the server.");
+ sender.sendMessage(messagePrefix + message("MAPSAVE_START"));
+ sender.sendMessage(warningPrefix + message("MAPSAVE_WARNING"));
Bukkit.getServer().getWorld(spawnWorld).save();
BukkitRunnable runnable = new BukkitRunnable() {
public void run() {
@@ -45,10 +46,10 @@ public class SaveMap implements ICommand {
destenation.mkdir();
}
temp_destenation.renameTo(destenation);
- sender.sendMessage(messagePrefix + "Map save complete");
+ sender.sendMessage(messagePrefix + message("MAPSAVE_END"));
runningBackup = false;
} else {
- sender.sendMessage(errorPrefix + "Coudnt find current map");
+ sender.sendMessage(errorPrefix + message("MAPSAVE_ERROR"));
}
}
};
diff --git a/src/main/java/net/tylermurphy/hideAndSeek/command/SetBorder.java b/src/main/java/net/tylermurphy/hideAndSeek/command/SetBorder.java
index d453871..25e0a87 100644
--- a/src/main/java/net/tylermurphy/hideAndSeek/command/SetBorder.java
+++ b/src/main/java/net/tylermurphy/hideAndSeek/command/SetBorder.java
@@ -1,6 +1,6 @@
package net.tylermurphy.hideAndSeek.command;
-import static net.tylermurphy.hideAndSeek.Config.*;
+import static net.tylermurphy.hideAndSeek.configuration.Config.*;
import java.util.HashMap;
import java.util.Map;
@@ -11,16 +11,17 @@ import org.bukkit.util.Vector;
import net.tylermurphy.hideAndSeek.Main;
import net.tylermurphy.hideAndSeek.events.Worldborder;
+import static net.tylermurphy.hideAndSeek.configuration.Localization.*;
public class SetBorder implements ICommand {
public void execute(CommandSender sender, String[] args) {
if(!Main.plugin.status.equals("Standby")) {
- sender.sendMessage(errorPrefix + "Game is currently in session");
+ sender.sendMessage(errorPrefix + message("GAME_INPROGRESS"));
return;
}
if(spawnPosition == null) {
- sender.sendMessage(errorPrefix + "Please set spawn position first");
+ sender.sendMessage(errorPrefix + message("ERROR_GAME_SPAWN"));
return;
}
if(args.length < 2) {
@@ -29,21 +30,21 @@ public class SetBorder implements ICommand {
temp.put("enabled", false);
addToSection("worldBorder",temp);
saveConfig();
- sender.sendMessage(messagePrefix + "Disabled worldborder.");
+ sender.sendMessage(messagePrefix + message("WORLDBORDER_DISABLE"));
Worldborder.resetWorldborder(spawnWorld);
return;
}
int num,delay;
try { num = Integer.parseInt(args[0]); } catch (Exception e) {
- sender.sendMessage(errorPrefix + "Invalid integer: "+args[0]);
+ sender.sendMessage(errorPrefix + message("WORLDBORDER_INVALID_INPUT").addAmount(args[0]));
return;
}
try { delay = Integer.parseInt(args[1]); } catch (Exception e) {
- sender.sendMessage(errorPrefix + "Invalid integer: "+args[1]);
+ sender.sendMessage(errorPrefix + message("WORLDBORDER_INVALID_INPUT").addAmount(args[1]));
return;
}
if(num < 100) {
- sender.sendMessage(errorPrefix + "Worldborder cannot be smaller than 100 blocks.");
+ sender.sendMessage(errorPrefix + message("WORLDBORDER_MIN_SIZE"));
return;
}
Vector newWorldborderPosition = new Vector();
@@ -52,7 +53,7 @@ public class SetBorder implements ICommand {
newWorldborderPosition.setY(0);
newWorldborderPosition.setZ(player.getLocation().getBlockZ());
if(spawnPosition.distance(newWorldborderPosition) > 100) {
- sender.sendMessage(errorPrefix + "Spawn position must be 100 from worldborder center");
+ sender.sendMessage(errorPrefix + message("WORLDBORDER_POSITION"));
return;
}
worldborderPosition = newWorldborderPosition;
@@ -66,7 +67,7 @@ public class SetBorder implements ICommand {
temp.put("size", worldborderSize);
temp.put("enabled", true);
addToSection("worldBorder",temp);
- sender.sendMessage(messagePrefix + "Set border center to current location, size to "+num+", and delay to "+delay);
+ sender.sendMessage(messagePrefix + message("WORLDBORDER_ENABLE").addAmount(num).addAmount(delay));
saveConfig();
Worldborder.resetWorldborder(spawnWorld);
}
diff --git a/src/main/java/net/tylermurphy/hideAndSeek/command/SetExitLocation.java b/src/main/java/net/tylermurphy/hideAndSeek/command/SetExitLocation.java
index 2808948..e82d0e4 100644
--- a/src/main/java/net/tylermurphy/hideAndSeek/command/SetExitLocation.java
+++ b/src/main/java/net/tylermurphy/hideAndSeek/command/SetExitLocation.java
@@ -1,6 +1,6 @@
package net.tylermurphy.hideAndSeek.command;
-import static net.tylermurphy.hideAndSeek.Config.*;
+import static net.tylermurphy.hideAndSeek.configuration.Config.*;
import java.util.HashMap;
import java.util.Map;
@@ -10,6 +10,7 @@ import org.bukkit.entity.Player;
import org.bukkit.util.Vector;
import net.tylermurphy.hideAndSeek.Main;
+import static net.tylermurphy.hideAndSeek.configuration.Localization.*;
public class SetExitLocation implements ICommand {
@@ -20,11 +21,11 @@ public class SetExitLocation implements ICommand {
newExitPosition.setY(player.getLocation().getBlockY());
newExitPosition.setZ(player.getLocation().getBlockZ());
if(!Main.plugin.status.equals("Standby")) {
- sender.sendMessage(errorPrefix + "Game is currently in session");
+ sender.sendMessage(errorPrefix + message("GAME_INPROGRESS"));
return;
}
exitPosition = newExitPosition;
- sender.sendMessage(messagePrefix + "Set exit position to current location");
+ sender.sendMessage(messagePrefix + message("EXIT_SPAWN"));
Map<String, Object> temp = new HashMap<String,Object>();
temp.put("x", exitPosition.getX());
temp.put("y", exitPosition.getY());
diff --git a/src/main/java/net/tylermurphy/hideAndSeek/command/SetLobbyLocation.java b/src/main/java/net/tylermurphy/hideAndSeek/command/SetLobbyLocation.java
index 75de0e5..31cad53 100644
--- a/src/main/java/net/tylermurphy/hideAndSeek/command/SetLobbyLocation.java
+++ b/src/main/java/net/tylermurphy/hideAndSeek/command/SetLobbyLocation.java
@@ -1,6 +1,6 @@
package net.tylermurphy.hideAndSeek.command;
-import static net.tylermurphy.hideAndSeek.Config.*;
+import static net.tylermurphy.hideAndSeek.configuration.Config.*;
import java.util.HashMap;
import java.util.Map;
@@ -10,6 +10,7 @@ import org.bukkit.entity.Player;
import org.bukkit.util.Vector;
import net.tylermurphy.hideAndSeek.Main;
+import static net.tylermurphy.hideAndSeek.configuration.Localization.*;
public class SetLobbyLocation implements ICommand {
@@ -20,11 +21,11 @@ public class SetLobbyLocation implements ICommand {
newLobbyPosition.setY(player.getLocation().getBlockY());
newLobbyPosition.setZ(player.getLocation().getBlockZ());
if(!Main.plugin.status.equals("Standby")) {
- sender.sendMessage(errorPrefix + "Game is currently in session");
+ sender.sendMessage(errorPrefix + message("GAME_INPROGRESS"));
return;
}
lobbyPosition = newLobbyPosition;
- sender.sendMessage(messagePrefix + "Set lobby position to current location");
+ sender.sendMessage(messagePrefix + message("LOBBY_SPAWN"));
Map<String, Object> temp = new HashMap<String,Object>();
temp.put("x", lobbyPosition.getX());
temp.put("y", lobbyPosition.getY());
diff --git a/src/main/java/net/tylermurphy/hideAndSeek/command/SetSpawnLocation.java b/src/main/java/net/tylermurphy/hideAndSeek/command/SetSpawnLocation.java
index a940ac3..45ee758 100644
--- a/src/main/java/net/tylermurphy/hideAndSeek/command/SetSpawnLocation.java
+++ b/src/main/java/net/tylermurphy/hideAndSeek/command/SetSpawnLocation.java
@@ -1,6 +1,6 @@
package net.tylermurphy.hideAndSeek.command;
-import static net.tylermurphy.hideAndSeek.Config.*;
+import static net.tylermurphy.hideAndSeek.configuration.Config.*;
import java.util.HashMap;
import java.util.Map;
@@ -10,6 +10,7 @@ import org.bukkit.entity.Player;
import org.bukkit.util.Vector;
import net.tylermurphy.hideAndSeek.Main;
+import static net.tylermurphy.hideAndSeek.configuration.Localization.*;
public class SetSpawnLocation implements ICommand {
@@ -20,15 +21,15 @@ public class SetSpawnLocation implements ICommand {
newSpawnPosition.setY(player.getLocation().getBlockY());
newSpawnPosition.setZ(player.getLocation().getBlockZ());
if(!Main.plugin.status.equals("Standby")) {
- sender.sendMessage(errorPrefix + "Game is currently in session");
+ sender.sendMessage(errorPrefix + message("GAME_INPROGRESS"));
return;
}
if(worldborderEnabled && spawnPosition.distance(worldborderPosition) > 100) {
- sender.sendMessage(errorPrefix + "Spawn position must be 100 from worldborder center");
+ sender.sendMessage(errorPrefix + message("WORLDBORDER_POSITION"));
return;
}
spawnPosition = newSpawnPosition;
- sender.sendMessage(messagePrefix + "Set spawn position to current location");
+ sender.sendMessage(messagePrefix + message("GAME_SPAWN"));
Map<String, Object> temp = new HashMap<String,Object>();
temp.put("x", spawnPosition.getX());
temp.put("y", spawnPosition.getY());
diff --git a/src/main/java/net/tylermurphy/hideAndSeek/command/Setup.java b/src/main/java/net/tylermurphy/hideAndSeek/command/Setup.java
index 1580f3f..8be0141 100644
--- a/src/main/java/net/tylermurphy/hideAndSeek/command/Setup.java
+++ b/src/main/java/net/tylermurphy/hideAndSeek/command/Setup.java
@@ -2,42 +2,41 @@ package net.tylermurphy.hideAndSeek.command;
import org.bukkit.command.CommandSender;
-import net.md_5.bungee.api.ChatColor;
import net.tylermurphy.hideAndSeek.Main;
-import static net.tylermurphy.hideAndSeek.Config.*;
+import static net.tylermurphy.hideAndSeek.configuration.Config.*;
import java.io.File;
+import static net.tylermurphy.hideAndSeek.configuration.Localization.*;
public class Setup implements ICommand {
public void execute(CommandSender sender, String[] args) {
- String message = String.format("%s%sThe following is needed for setup...", ChatColor.WHITE, ChatColor.BOLD);
+ String msg = message("SETUP").toString();
int count = 0;
if(spawnPosition.getBlockX() == 0 && spawnPosition.getBlockY() == 0 && spawnPosition.getBlockZ() == 0) {
- message = String.format("%s\n%s%s-%s%s", message, ChatColor.RED, ChatColor.BOLD, ChatColor.WHITE, "Game spawn isnt set, /hs setspawn");
+ msg = msg + "\n" + message("SETUP_GAME").toString();
count++;
}
if(lobbyPosition.getBlockX() == 0 && lobbyPosition.getBlockY() == 0 && lobbyPosition.getBlockZ() == 0) {
- message = String.format("%s\n%s%s-%s%s", message, ChatColor.RED, ChatColor.BOLD, ChatColor.WHITE, "Lobby spawn isnt set, /hs setlobby");
- sender.sendMessage(errorPrefix + "Please set lobby location first");
+ msg = msg + "\n" + message("SETUP_LOBBY").toString();
count++;
}
if(exitPosition.getBlockX() == 0 && exitPosition.getBlockY() == 0 && exitPosition.getBlockZ() == 0) {
- message = String.format("%s\n%s%s-%s%s", message, ChatColor.RED, ChatColor.BOLD, ChatColor.WHITE, "Quit/exit teleport location isnt set, /hs setexit");
+ msg = msg + "\n" + message("SETUP_EXIT").toString();
count++;
}
File destenation = new File(Main.root+File.separator+"hideandseek_"+spawnWorld);
if(!destenation.exists()) {
- message = String.format("%s\n%s%s-%s%s", message, ChatColor.RED, ChatColor.BOLD, ChatColor.WHITE, "Hide and seek map isnt saved, /hs savemap (after /hs setspawn)");
+ msg = msg + "\n" + message("SETUP_MAPSAVE").toString();
count++;
}
if(count < 1) {
- sender.sendMessage(messagePrefix + "Everything is setup and ready to go!");
+ sender.sendMessage(messagePrefix + message("SETUP_COMPLETE"));
} else {
- sender.sendMessage(message);
+ sender.sendMessage(msg);
}
}
diff --git a/src/main/java/net/tylermurphy/hideAndSeek/command/Start.java b/src/main/java/net/tylermurphy/hideAndSeek/command/Start.java
index 9d75401..89cbc09 100644
--- a/src/main/java/net/tylermurphy/hideAndSeek/command/Start.java
+++ b/src/main/java/net/tylermurphy/hideAndSeek/command/Start.java
@@ -1,4 +1,5 @@
package net.tylermurphy.hideAndSeek.command;
+import static net.tylermurphy.hideAndSeek.configuration.Localization.*;
import org.bukkit.Bukkit;
import org.bukkit.GameMode;
@@ -22,7 +23,7 @@ import net.tylermurphy.hideAndSeek.events.Taunt;
import net.tylermurphy.hideAndSeek.events.Worldborder;
import net.tylermurphy.hideAndSeek.util.Util;
-import static net.tylermurphy.hideAndSeek.Config.*;
+import static net.tylermurphy.hideAndSeek.configuration.Config.*;
import java.util.ArrayList;
import java.util.List;
@@ -32,19 +33,19 @@ public class Start implements ICommand {
public void execute(CommandSender sender, String[] args) {
if(!Util.isSetup()) {
- sender.sendMessage(errorPrefix + "Game is not setup. Run /hs setup to see what you needed to do");
+ sender.sendMessage(errorPrefix + message("GAME_SETUP"));
return;
}
if(!Main.plugin.status.equals("Standby")) {
- sender.sendMessage(errorPrefix + "Game is already in session");
+ sender.sendMessage(errorPrefix + message("GAME_INPROGRESS"));
return;
}
if(!Main.plugin.board.isPlayer(sender)) {
- sender.sendMessage(errorPrefix + "You are not in the lobby");
+ sender.sendMessage(errorPrefix + message("GAME_NOT_INGAME"));
return;
}
if(Main.plugin.board.size() < minPlayers) {
- sender.sendMessage(errorPrefix + "You must have at least "+minPlayers+" players to start");
+ sender.sendMessage(errorPrefix + message("START_MIN_PLAYERS").addAmount(minPlayers));
return;
}
if(Bukkit.getServer().getWorld("hideandseek_"+spawnWorld) != null) {
@@ -60,7 +61,7 @@ public class Start implements ICommand {
}
Player seeker = Main.plugin.board.getPlayer(seekerName);
if(seeker == null) {
- sender.sendMessage(errorPrefix + "Invalid player: " + seekerName);
+ sender.sendMessage(errorPrefix + message("START_INVALID_NAME").addPlayer(seekerName));
return;
}
Main.plugin.board.reload();
@@ -82,27 +83,27 @@ public class Start implements ICommand {
for(Player player : Main.plugin.board.getSeekers()) {
player.addPotionEffect(new PotionEffect(PotionEffectType.BLINDNESS,1000000,127,false,false));
player.addPotionEffect(new PotionEffect(PotionEffectType.SLOW,1000000,127,false,false));
- player.sendTitle(ChatColor.RED + "" + ChatColor.BOLD + "SEEKER", ChatColor.WHITE + "Eliminate all hiders", 10, 70, 20);
+ player.sendTitle(ChatColor.RED + "" + ChatColor.BOLD + "SEEKER", ChatColor.WHITE + message("SEEKERS_SUBTITLE").toString(), 10, 70, 20);
}
for(Player player : Main.plugin.board.getHiders()) {
player.addPotionEffect(new PotionEffect(PotionEffectType.SPEED,1000000,5,false,false));
- player.sendTitle(ChatColor.GOLD + "" + ChatColor.BOLD + "HIDER", ChatColor.WHITE + "Hide away from the seekers", 10, 70, 20);
+ player.sendTitle(ChatColor.GOLD + "" + ChatColor.BOLD + "HIDER", ChatColor.WHITE + message("HIDERS_SUBTITLE").toString(), 10, 70, 20);
}
Worldborder.resetWorldborder("hideandseek_"+spawnWorld);
Main.plugin.board.reloadGameBoards();
Main.plugin.status = "Starting";
int temp = Main.plugin.gameId;
- Util.broadcastMessage(messagePrefix + "Hiders have 30 seconds to hide!");
- Util.sendDelayedMessage(messagePrefix + "Hiders have 20 seconds to hide!", Main.plugin.gameId, 20 * 10);
- Util.sendDelayedMessage(messagePrefix + "Hiders have 10 seconds to hide!", Main.plugin.gameId, 20 * 20);
- Util.sendDelayedMessage(messagePrefix + "Hiders have 5 seconds to hide!", Main.plugin.gameId, 20 * 25);
- Util.sendDelayedMessage(messagePrefix + "Hiders have 3 seconds to hide!", Main.plugin.gameId, 20 * 27);
- Util.sendDelayedMessage(messagePrefix + "Hiders have 2 seconds to hide!", Main.plugin.gameId, 20 * 28);
- Util.sendDelayedMessage(messagePrefix + "Hiders have 1 seconds to hide!", Main.plugin.gameId, 20 * 29);
+ Util.broadcastMessage(messagePrefix + message("START_COUNTDOWN").addAmount(30));
+ Util.sendDelayedMessage(messagePrefix + message("START_COUNTDOWN").addAmount(20), Main.plugin.gameId, 20 * 10);
+ Util.sendDelayedMessage(messagePrefix + message("START_COUNTDOWN").addAmount(10), Main.plugin.gameId, 20 * 20);
+ Util.sendDelayedMessage(messagePrefix + message("START_COUNTDOWN").addAmount(5), Main.plugin.gameId, 20 * 25);
+ Util.sendDelayedMessage(messagePrefix + message("START_COUNTDOWN").addAmount(3), Main.plugin.gameId, 20 * 27);
+ Util.sendDelayedMessage(messagePrefix + message("START_COUNTDOWN").addAmount(2), Main.plugin.gameId, 20 * 28);
+ Util.sendDelayedMessage(messagePrefix + message("START_COUNTDOWN").addAmount(1), Main.plugin.gameId, 20 * 29);
Bukkit.getServer().getScheduler().runTaskLater(Main.plugin, new Runnable() {
public void run() {
if(temp != Main.plugin.gameId) return;
- Util.broadcastMessage(messagePrefix + "Attetion SEEKERS, its time to find the hiders!");
+ Util.broadcastMessage(messagePrefix + message("START"));
Main.plugin.status = "Playing";
for(Player player : Main.plugin.board.getPlayers()) {
resetPlayer(player);
diff --git a/src/main/java/net/tylermurphy/hideAndSeek/command/Stop.java b/src/main/java/net/tylermurphy/hideAndSeek/command/Stop.java
index e2cb563..810c071 100644
--- a/src/main/java/net/tylermurphy/hideAndSeek/command/Stop.java
+++ b/src/main/java/net/tylermurphy/hideAndSeek/command/Stop.java
@@ -1,6 +1,6 @@
package net.tylermurphy.hideAndSeek.command;
-import static net.tylermurphy.hideAndSeek.Config.*;
+import static net.tylermurphy.hideAndSeek.configuration.Config.*;
import org.bukkit.Bukkit;
import org.bukkit.GameMode;
@@ -14,6 +14,7 @@ import net.tylermurphy.hideAndSeek.Main;
import net.tylermurphy.hideAndSeek.events.Worldborder;
import net.tylermurphy.hideAndSeek.util.Packet;
import net.tylermurphy.hideAndSeek.util.Util;
+import static net.tylermurphy.hideAndSeek.configuration.Localization.*;
public class Stop implements ICommand {
@@ -23,12 +24,12 @@ public class Stop implements ICommand {
return;
}
if(Main.plugin.status.equals("Starting") || Main.plugin.status.equals("Playing")) {
- if(announceMessagesToNonPlayers) Bukkit.broadcastMessage(abortPrefix + "Game has been force stopped.");
- else Util.broadcastMessage(abortPrefix + "Game has been force stopped.");
+ if(announceMessagesToNonPlayers) Bukkit.broadcastMessage(abortPrefix + message("STOP"));
+ else Util.broadcastMessage(abortPrefix + message("STOP"));
onStop();
} else {
- sender.sendMessage(errorPrefix + "There is no game in progress");
+ sender.sendMessage(errorPrefix + message("GAME_NOT_INPROGRESS"));
return;
}
}
diff --git a/src/main/java/net/tylermurphy/hideAndSeek/Config.java b/src/main/java/net/tylermurphy/hideAndSeek/configuration/Config.java
index fe83dd1..83b6ceb 100644
--- a/src/main/java/net/tylermurphy/hideAndSeek/Config.java
+++ b/src/main/java/net/tylermurphy/hideAndSeek/configuration/Config.java
@@ -1,4 +1,4 @@
-package net.tylermurphy.hideAndSeek;
+package net.tylermurphy.hideAndSeek.configuration;
import java.util.Map;
import java.util.Map.Entry;
@@ -7,6 +7,8 @@ import org.bukkit.configuration.ConfigurationSection;
import org.bukkit.configuration.file.FileConfiguration;
import org.bukkit.util.Vector;
+import net.tylermurphy.hideAndSeek.Main;
+
public class Config {
public static String
@@ -52,37 +54,6 @@ public class Config {
Main.plugin.reloadConfig();
- //Default
- getConfig().addDefault("worldBorder.x", 0);
- getConfig().addDefault("worldBorder.z", 0);
- getConfig().addDefault("worldBorder.delay", 10);
- getConfig().addDefault("worldBorder.size", 500);
- getConfig().addDefault("worldBorder.enabled", false);
- getConfig().addDefault("prefix.default", "&9Hide and Seek > &f");
- getConfig().addDefault("prefix.error", "&cError > &f");
- getConfig().addDefault("prefix.taunt", "&eTaunt > &f");
- getConfig().addDefault("prefix.border", "&cWorld Border > &f");
- getConfig().addDefault("prefix.abort", "&cAbort > &f");
- getConfig().addDefault("prefix.gameover", "&aGame Over > &f");
- getConfig().addDefault("prefix.warning", "&cWarning > &f");
- getConfig().addDefault("nametagsVisible", false);
- getConfig().addDefault("permissionsRequired", true);
- getConfig().addDefault("announceMessagesToNonPlayers", false);
- getConfig().addDefault("spawns.lobby.x", 0);
- getConfig().addDefault("spawns.lobby.y", 0);
- getConfig().addDefault("spawns.lobby.z", 0);
- getConfig().addDefault("spawns.lobby.world", "world");
- getConfig().addDefault("spawns.exit.x", 0);
- getConfig().addDefault("spawns.exit.y", 0);
- getConfig().addDefault("spawns.exit.z", 0);
- getConfig().addDefault("spawns.exit.world", "world");
- getConfig().addDefault("spawns.game.x", 0);
- getConfig().addDefault("spawns.game.y", 0);
- getConfig().addDefault("spawns.game.z", 0);
- getConfig().addDefault("spawns.game.world", "world");
- getConfig().addDefault("minPlayers", 2);
- getConfig().addDefault("gameLength", 600);
-
//Spawn
spawnPosition = new Vector(
getConfig().getDouble("spawns.game.x"),
diff --git a/src/main/java/net/tylermurphy/hideAndSeek/configuration/Localization.java b/src/main/java/net/tylermurphy/hideAndSeek/configuration/Localization.java
new file mode 100644
index 0000000..6e25a20
--- /dev/null
+++ b/src/main/java/net/tylermurphy/hideAndSeek/configuration/Localization.java
@@ -0,0 +1,37 @@
+package net.tylermurphy.hideAndSeek.configuration;
+
+import java.io.File;
+import java.util.HashMap;
+import java.util.Map;
+
+import org.bukkit.configuration.file.YamlConfiguration;
+
+import net.md_5.bungee.api.ChatColor;
+import net.tylermurphy.hideAndSeek.Main;
+
+public class Localization {
+
+ public static final Map<String,LocalizationString> LOCAL = new HashMap<String,LocalizationString>();
+
+ static YamlConfiguration config;
+
+ public static boolean init() {
+ Main.plugin.saveResource("localization.yml", false);
+ String path = Main.data.getAbsolutePath()+File.separator + "localization.yml";
+ config = YamlConfiguration.loadConfiguration(new File(path));
+ for(String key : config.getConfigurationSection("Localization").getKeys(false)) {
+ LOCAL.put(
+ key,
+ new LocalizationString( ChatColor.translateAlternateColorCodes('&', config.getString("Localization."+key) ) )
+ );
+ }
+ return true;
+ }
+
+ public static LocalizationString message(String key) {
+ LocalizationString temp = LOCAL.get(key);
+ if(temp == null)
+ return new LocalizationString(key+" missing from localization.yml");
+ return temp;
+ }
+}
diff --git a/src/main/java/net/tylermurphy/hideAndSeek/configuration/LocalizationString.java b/src/main/java/net/tylermurphy/hideAndSeek/configuration/LocalizationString.java
new file mode 100644
index 0000000..fd0e020
--- /dev/null
+++ b/src/main/java/net/tylermurphy/hideAndSeek/configuration/LocalizationString.java
@@ -0,0 +1,48 @@
+package net.tylermurphy.hideAndSeek.configuration;
+
+import org.bukkit.command.CommandSender;
+import org.bukkit.entity.Entity;
+
+public class LocalizationString {
+
+ String message;
+
+ public LocalizationString(String message) {
+ this.message = message;
+ }
+
+ public LocalizationString addPlayer(Entity player) {
+ this.message = message.replaceFirst("\\{PLAYER\\}", player.getName());
+ return this;
+ }
+
+ public LocalizationString addPlayer(CommandSender player) {
+ this.message = message.replaceFirst("\\{PLAYER\\}", player.getName());
+ return this;
+ }
+
+ public LocalizationString addPlayer(String player) {
+ this.message = message.replaceFirst("\\{PLAYER\\}", player);
+ return this;
+ }
+
+ public LocalizationString addAmount(Integer value) {
+ this.message = message.replaceFirst("\\{AMOUNT\\}", value.toString());
+ return this;
+ }
+
+ public LocalizationString addAmount(String value) {
+ this.message = message.replaceFirst("\\{AMOUNT\\}", value.toString());
+ return this;
+ }
+
+ public LocalizationString addAmount(Float value) {
+ this.message = message.replaceFirst("\\{AMOUNT\\}", value.toString());
+ return this;
+ }
+
+ public String toString() {
+ return message;
+ }
+
+}
diff --git a/src/main/java/net/tylermurphy/hideAndSeek/events/Taunt.java b/src/main/java/net/tylermurphy/hideAndSeek/events/Taunt.java
index 4ce7dc4..8413cc2 100644
--- a/src/main/java/net/tylermurphy/hideAndSeek/events/Taunt.java
+++ b/src/main/java/net/tylermurphy/hideAndSeek/events/Taunt.java
@@ -1,9 +1,8 @@
package net.tylermurphy.hideAndSeek.events;
-import static net.tylermurphy.hideAndSeek.Config.*;
+import static net.tylermurphy.hideAndSeek.configuration.Config.*;
import org.bukkit.Bukkit;
-import org.bukkit.ChatColor;
import org.bukkit.Color;
import org.bukkit.FireworkEffect;
import org.bukkit.entity.EntityType;
@@ -13,6 +12,7 @@ import org.bukkit.inventory.meta.FireworkMeta;
import net.tylermurphy.hideAndSeek.Main;
import net.tylermurphy.hideAndSeek.util.Util;
+import static net.tylermurphy.hideAndSeek.configuration.Localization.*;
public class Taunt {
@@ -65,8 +65,8 @@ public class Taunt {
}
}
if(taunted != null) {
- taunted.sendMessage(ChatColor.RED + "" + ChatColor.ITALIC + "Oh no! You have been chosed to be taunted.");
- Util.broadcastMessage(tauntPrefix + " A random hider will be taunted in the next 30s");
+ taunted.sendMessage(message("TAUNTED").toString());
+ Util.broadcastMessage(tauntPrefix + message("TAUNT"));
tauntPlayer = taunted.getName();
Bukkit.getServer().getScheduler().scheduleSyncDelayedTask(Main.plugin, new Runnable() {
public void run() {
@@ -87,7 +87,7 @@ public class Taunt {
.withTrail()
.build());
fw.setFireworkMeta(fwm);
- Util.broadcastMessage(tauntPrefix + " Taunt has been activated");
+ Util.broadcastMessage(tauntPrefix + message("TAUNT_ACTIVATE"));
}
tauntPlayer = "";
waitTaunt();
diff --git a/src/main/java/net/tylermurphy/hideAndSeek/events/Worldborder.java b/src/main/java/net/tylermurphy/hideAndSeek/events/Worldborder.java
index 70c4986..5884a94 100644
--- a/src/main/java/net/tylermurphy/hideAndSeek/events/Worldborder.java
+++ b/src/main/java/net/tylermurphy/hideAndSeek/events/Worldborder.java
@@ -1,5 +1,8 @@
package net.tylermurphy.hideAndSeek.events;
+import static net.tylermurphy.hideAndSeek.configuration.Localization.*;
+import static net.tylermurphy.hideAndSeek.configuration.Config.*;
+
import org.bukkit.Bukkit;
import org.bukkit.World;
import org.bukkit.WorldBorder;
@@ -7,8 +10,6 @@ import org.bukkit.WorldBorder;
import net.tylermurphy.hideAndSeek.Main;
import net.tylermurphy.hideAndSeek.util.Util;
-import static net.tylermurphy.hideAndSeek.Config.*;
-
public class Worldborder {
private final int temp;
@@ -28,7 +29,7 @@ public class Worldborder {
private void decreaceWorldborder() {
if(temp != Main.plugin.gameId) return;
if(currentWorldborderSize-100 > 100) {
- Util.broadcastMessage(worldborderPrefix + "Worldborder decreacing by 100 blocks over the next 30s");
+ Util.broadcastMessage(worldborderPrefix + message("WORLDBORDER_DECREASING"));
currentWorldborderSize -= 100;
World world = Bukkit.getWorld("hideandseek_"+spawnWorld);
WorldBorder border = world.getWorldBorder();
diff --git a/src/main/java/net/tylermurphy/hideAndSeek/util/Board.java b/src/main/java/net/tylermurphy/hideAndSeek/util/Board.java
index 472e326..17a60b1 100644
--- a/src/main/java/net/tylermurphy/hideAndSeek/util/Board.java
+++ b/src/main/java/net/tylermurphy/hideAndSeek/util/Board.java
@@ -1,5 +1,7 @@
package net.tylermurphy.hideAndSeek.util;
+import static net.tylermurphy.hideAndSeek.configuration.Config.*;
+
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
@@ -20,8 +22,6 @@ import org.bukkit.scoreboard.Team.OptionStatus;
import net.tylermurphy.hideAndSeek.Main;
-import static net.tylermurphy.hideAndSeek.Config.*;
-
public class Board {
private List<String> Hider, Seeker, Spectator;
diff --git a/src/main/java/net/tylermurphy/hideAndSeek/util/Util.java b/src/main/java/net/tylermurphy/hideAndSeek/util/Util.java
index ee158dc..028b217 100644
--- a/src/main/java/net/tylermurphy/hideAndSeek/util/Util.java
+++ b/src/main/java/net/tylermurphy/hideAndSeek/util/Util.java
@@ -1,6 +1,6 @@
package net.tylermurphy.hideAndSeek.util;
-import static net.tylermurphy.hideAndSeek.Config.*;
+import static net.tylermurphy.hideAndSeek.configuration.Config.*;
import java.io.File;
diff --git a/src/main/resources/config.yml b/src/main/resources/config.yml
new file mode 100644
index 0000000..368bca4
--- /dev/null
+++ b/src/main/resources/config.yml
@@ -0,0 +1,61 @@
+# How long in seconds will the game last, set it < 1 to disable
+# default: 1200 aka 20min
+gameLength: 1200
+
+# Announce join/leave/game over messages to people not playing the game
+# default: true
+announceMessagesToNonPlayers: true
+
+# Allow Hiders to see their own teams nametags as well as seekers. Seekers can never see nametags regardless.
+# default: false
+nametagsVisible: false
+
+# Require bukkit permessions though a plugin to run commands, recomended on large servers
+# default: true
+permissionsRequired: true
+
+# Minimum ammount of players to start the game. Cannot go lower than 2.
+# default: 2
+minPlayers: 2
+
+# Spawn locations where players are teleported
+spawns:
+ # Location where players are teleported into the game (/hs start)
+ game:
+ x: 0
+ y: 0
+ z: 0
+ world: world
+ # Location where players are teleported into the lobby (/hs join)
+ lobby:
+ x: 0
+ y: 0
+ z: 0
+ world: world
+ # Location where players are teleported when they exit (/hs leave)
+ exit:
+ x: 0
+ y: 0
+ z: 0
+ world: world
+
+# The worldborder closes every interval, whish is evey [delay] in minutes.
+# Thw worldborder stharts at [size], and decreaces 100 blocks every interval.
+# x & z are the center location. [enabled] is whenever the border is enabled.
+worldBorder:
+ x: 0
+ z: 0
+ delay: 10
+ size: 500
+ enabled: false
+
+# The message prefixes displayed before messages. The message contents themselvs
+# can be changed in localization.yml.
+prefix:
+ default: '&9Hide and Seek > &f'
+ error: '&cError > &f'
+ taunt: '&eTaunt > &f'
+ border: '&cWorld Border > &f'
+ abort: '&cAbort > &f'
+ gameover: '&aGame Over > &f'
+ warning: '&cWarning > &f' \ No newline at end of file
diff --git a/src/main/resources/localization.yml b/src/main/resources/localization.yml
new file mode 100644
index 0000000..cf2fd30
--- /dev/null
+++ b/src/main/resources/localization.yml
@@ -0,0 +1,50 @@
+Localization:
+ COMMAND_PLAYER_ONLY: "This command can only be run as a player."
+ COMMAND_NOT_ALLOWED: "You are not allowed to run this command."
+ COMMAND_ERROR: "An internal error has occoured."
+ GAME_PLAYER_DEATH: "&c{PLAYER}&f was killed."
+ GAME_PLAYER_FOUND: "&e{PLAYER}&f was found and became a seeker."
+ GAME_PLAYER_FOUND_BY: "&e{PLAYER}&f was found by &c{PLAYER}&f and became a seeker."
+ GAME_GAMEOVER_HIDERS_FOUND: "All hiders have been found."
+ GAME_GAMEOVER_SEEKERS_QUIT: "All seekers have quit."
+ GAME_GAMEOVER_TIME: "Seekers ran out of time. Hiders win!"
+ GAME_SETUP: "Game is not setup. Run /hs setup to see what you need to do."
+ GAME_INGAME: "You are already in the lobby/game."
+ GAME_NOT_INGAME: "You are not in a lobby/game."
+ GAME_INPROGRESS: "There is currently a game inprogress."
+ GAME_NOT_INPROGRESS: "There is no game inprogress."
+ GAME_JOIN: "{PLAYER} has joined the HideAndSeek lobby."
+ GAME_JOIN_SPECTATOR: "You have joined midgame and are now a spectator."
+ GAME_LEAVE: "{PLAYER} has left the HideAndSeek lobby."
+ CONFIG_RELOAD: "Reloaded the config."
+ MAPSAVE_INPROGRESS: "Map save is currently in progress. Try again later."
+ MAPSAVE_START: "Starting map save."
+ MAPSAVE_WARNING: "All commands will be disabled whenthe save is in progress. Do not turn off the server."
+ MAPSAVE_END: "Map save complete."
+ MAPSAVE_ERROR: "Coudnt find current map."
+ WORLDBORDER_DISABLE: "Disabled worldborder."
+ WORLDBORDER_INVALID_INPUT: "Invalid integer {AMOUNT}."
+ WORLDBORDER_MIN_SIZE: "Worldborder cannot be smaller than 100 blocks."
+ WORLDBORDER_POSITION: "Spawn position must be 100 from worldborder center."
+ WORLDBORDER_ENABLE: "Set border center to current location, size to {AMOUNT}, and delay to {AMOUNT}."
+ WORLDBORDER_DECREASING: "Worlderborder decreasing by 100 blocks over the next 30s."
+ TAUNTED: "$c$oOh no! You have been chosen to be taunted."
+ TAUNT: "A random hider will be taunted in the next 30s."
+ TAUNT_ACTIVATE: "Taunt has been activated."
+ ERROR_GAME_SPAWN: "Please set game spawn location first"
+ SETUP: "&f&lThe following is needed for setup..."
+ SETUP_GAME: "&c&l- &fGame spawn isnt set, /hs setspawn"
+ SETUP_LOBBY: "&c&l- &fLobby spawn isnt set, /hs setlobby"
+ SETUP_EXIT: "&c&l- &fQuit/exit teleport location isnt set, /hs setexit"
+ SETUP_SAVEMAP: "&c&l- &fHide and seek map isnt saved, /hs savemap (after /hs setspawn)"
+ SETUP_COMPLETE: "Everything is setup and ready to go!"
+ GAME_SPAWN: "Set game spawn position to current location"
+ LOBBY_SPAWN: "Set lobby position to current location"
+ EXIT_SPAWN: "Set exit position to current location"
+ START_MIN_PLAYERS: "You must have at least {AMOUNT} players to start."
+ START_INVALID_NAME: "Invalid player: {PLAYER}."
+ START_COUNTDOWN: "Hiders have {AMOUNT} seconds to hide!"
+ START: "Attetion SEEKERS, its time to fin the hiders!"
+ STOP: "Game has been force stopped"
+ HIDERS_SUBTITLE: "Hide away from the seekers"
+ SEEKERS_SUBTITLE: "Eliminate all hiders"
diff --git a/src/main/resources/plugin.yml b/src/main/resources/plugin.yml
index 1feeaf7..200d799 100644
--- a/src/main/resources/plugin.yml
+++ b/src/main/resources/plugin.yml
@@ -8,7 +8,7 @@ depend: [ProtocolLib]
commands:
hideandseek:
description: Hide and Seek command
- usage: /hideandseek [about|help|start|stop|setspawn|setseeker]
+ usage: /hideandseek [command]
aliases: hs
permissions:
hideandseek.*:
@@ -20,10 +20,11 @@ permissions:
hideandseek.setborder: true
hideandseek.setspawn: true
hideandseek.setlobby: true
+ hideandseek.setexit: true
+ hideandseek.setup: true
hideandseek.start: true
hideandseek.stop: true
hideandseek.savemap: true
- hideandseek.blockbypass: true
hideandseek.join: true
hideandseek.leave: true
hideandseek.about:
@@ -44,6 +45,12 @@ permissions:
hideandseek.setlobby:
description: Allows you to set the game lobby point
default: op
+ hideandseek.setexit:
+ description: Allows you to set the game exit point
+ default: op
+ hideandseek.setup:
+ description: Allows you to see what needs to be setup for the plugin to function
+ default: op
hideandseek.start:
description: Allows you to start the game
default: op
@@ -53,9 +60,6 @@ permissions:
hideandseek.savemap:
description: Allows you to set the current game map
default: op
- hideandseek.blockbypass:
- description: Allows you to bypass the block break prevention
- default: op
hideandseek.join:
description: Allows you to join the game manual lobby
default: true