package de.oppermann.bastian.spleef.util;
import org.bukkit.ChatColor;
import de.oppermann.bastian.spleef.SpleefMain;
public enum Language {
PREFIX(ChatColor.RED + "\u25CF" + ChatColor.GOLD + " Spleef " + ChatColor.RED + "\u25CF" + ChatColor.BLUE + " | " + ChatColor.GRAY),
// command stuff
COMMAND_JOIN("join"),
COMMAND_JOIN_DESCRIPTION("Attempts to join an arena with the given name"),
COMMAND_STATS("stats"),
COMMAND_STATS_DESCRIPTION("Shows your statistics"),
COMMAND_CREATE("create"),
COMMAND_CREATE_DESCRIPTION("Creates a new arena"),
COMMAND_DELETE("delete"),
COMMAND_DELETE_DESCRIPTION("Deletes an arena. You must repeat the arena argument!"),
COMMAND_CREATELOBBY("createLobby"),
COMMAND_CREATELOBBY_DESCRIPTION("Creates a new lobby"),
COMMAND_ADD_BLOCKS("addBlocks"),
COMMAND_ADD_BLOCKS_DESCRIPTION("Adds blocks to the arena"),
COMMAND_ADD_BLOCKS_REMEMBER_MATERIAL_FLAG("-saveMaterial"),
COMMAND_ADD_BLOCKS_UNKNOWN_FLAG(ChatColor.RED + "Unknown flag!"),
COMMAND_SET_LOBBY("setLobby"),
COMMAND_SET_LOBBY_DESCRIPTION("Sets the lobby of the arena"),
COMMAND_LEAVE("leave"),
COMMAND_LEAVE_DESCRIPTION("Attempts to leave the arena"),
COMMAND_ADD_SPAWNLOCATION("addSpawnloc"),
COMMAND_ADD_SPAWNLOCATION_DESCRIPTION("Sets the location you are standing on as spawnlocation. This also includes yaw and pitch! Use the -lobby flag to add the spawnlocation for a lobby and not for an arena."),
COMMAND_ADD_SPAWNLOCATION_LOBBYFLAG("-lobby"),
COMMAND_SETVALUE("setValue"),
COMMAND_SETVALUE_DESCRIPTION("Sets a flag of the arena"),
COMMAND_ADD_JOIN_SIGN("addJoinSign"),
COMMAND_ADD_JOIN_SIGN_DESCRIPTION("Sets the block you are looking at as a join sign"),
COMMAND_START("start"),
COMMAND_START_DESCRIPTION("Shortens the countdown to 5 seconds"),
COMMAND_RELOAD("reload"),
COMMAND_RELOAD_DESCRIPTION("Reloads the plugin"),
COMMAND_FLAGS("flags"),
COMMAND_FLAGS_DESCRIPTION("Lists all avaiable flags. If an arena is typed, too, it will also show their current values."),
COMMAND_UPDATE("update"),
COMMAND_UPDATE_DESCRIPTION("Lists all avaiable versions/updates, Downloads the latest version or installs it."),
COMMAND_UPDATE_ARGUMENT_LISTUPDATES("listUpdates"),
COMMAND_UPDATE_ARGUMENT_LISTALLVERSIONS("listAllVersions"),
COMMAND_UPDATE_ARGUMENT_DOWNLOAD("download"),
COMMAND_UPDATE_ARGUMENT_INSTALL("install"),
// stuff
MUST_BE_IN_ARENA(ChatColor.RED + "You must be in an arena!"),
MUST_BE_IN_WORLD_OF_ARENA(ChatColor.RED + "You must be in the same world as the arena!"),
NO_ARENA_WITH_NAME(ChatColor.RED + "There's no arena with the name " + ChatColor.GOLD + "%arena% " + ChatColor.RED + "!"),
NO_LOBBY_WITH_NAME(ChatColor.RED + "There's no lobby with the name " + ChatColor.GOLD + "%lobby% " + ChatColor.RED + "!"),
ALREADY_ARENA_WITH_NAME(ChatColor.RED + "There's already an arena with the name " + ChatColor.GOLD + "%arena% " + ChatColor.RED + "!"),
ALREADY_LOBBY_WITH_NAME(ChatColor.RED + "There's already a lobby with the name " + ChatColor.GOLD + "%lobby% " + ChatColor.RED + "!"),
CAN_NOT_JOIN_ARENA_FULL(ChatColor.RED + "The arena is full!"),
CAN_NOT_JOIN_ARENA_DISABLED(ChatColor.RED + "The arena is disabled!"),
CAN_NOT_JOIN_GAME_ACTIVE(ChatColor.RED + "The game is already running!"),
CAN_NOT_JOIN_NO_PERMISSION(ChatColor.RED + "You are not allowed to join %arena%!"),
CAN_NOT_JOIN_ARENA_MISCONFIGURED(ChatColor.RED + "The arena is misconfigured!"),
CAN_NOT_JOIN_TOO_LATE(ChatColor.RED + "Sorry, but you can't join in the last 5 seconds!"),
NO_COMMANDS_IN_ARENA(ChatColor.RED + "You can't execute this command while you're in an arena!"),
JOINED_ARENA(ChatColor.YELLOW + "Joined arena %arena%!"),
JOINED_ARENA_STATUS_WAITING_FOR_PLAYERS(ChatColor.RED + "Waiting for players... (%players%/%maxPlayers%)"),
JOINED_ARENA_STATUS_GAME_STARTS_IN(ChatColor.GREEN + "Game starts in %seconds% seconds"),
SUCCESSFULLY_CREATED_ARENA(ChatColor.GREEN + "Arena " + ChatColor.GOLD + "%arena% " + ChatColor.GREEN + " created."
+ "%n" + ChatColor.GREEN + ChatColor.UNDERLINE + "Things you should do now:"
+ "%n" + ChatColor.GREEN + "1. " + ChatColor.GOLD + "/spleef addblocks" + ChatColor.GREEN + " to add blocks."
+ "%n" + ChatColor.GREEN + "2. " + ChatColor.GOLD + "/spleef addspawnloc" + ChatColor.GREEN + " to add spawnlocations."
+ "%n" + ChatColor.GREEN + "3. " + ChatColor.GOLD + "/spleef setLobby" + ChatColor.GREEN + " to set the lobby (additional)."
+ "%n" + ChatColor.GREEN + "4. " + ChatColor.GOLD + "/spleef setvalue %arena% enabled true" + ChatColor.GREEN + " to enable the arena."
),
SUCCESSFULLY_CREATED_LOBBY(ChatColor.GREEN + "Lobby " + ChatColor.GOLD + "%lobby% " + ChatColor.GREEN + " created."
+ "%n" + ChatColor.GREEN + ChatColor.UNDERLINE + "Things you should do now:"
+ "%n" + ChatColor.GREEN + "1. " + ChatColor.GOLD + "/spleeflobby addspawnloc %lobby%" + ChatColor.GREEN + " to add spawnlocations."
),
SUCCESSFULLY_DELETED_ARENA(ChatColor.GREEN + "Arena " + ChatColor.GOLD + "%arena% " + ChatColor.GREEN + " deleted."),
WORLDEDIT_NOT_LOADED(ChatColor.RED + "Worldedit is missing."),
WORLDEDIT_NO_SELECTION(ChatColor.RED + "No worldedit area is selected."),
WORLDEDIT_SELECTION_IN_OTHER_WORLD(ChatColor.RED + "The selected points must be in the world of the arena."),
SUCCESSFULLY_ADDED_BLOCKS(ChatColor.GREEN + "Added %amount% blocks."),
SUCCESSFULLY_ADDED_SPAWNLOCATION(ChatColor.GREEN + "Added spawnlocation."),
SUCCESSFULLY_SET_LOBBY(ChatColor.GREEN + "Set lobby."),
SUCCESSFULLY_SET_CUSTOMINVENTORY(ChatColor.GREEN + "Set custom inventory to your resent inventory and enabled it."),
SUCCESSFULLY_SET_SPECTATE_LOCATION(ChatColor.GREEN + "Set spectate location."),
SUCCESSFULLY_SET_VALUE(ChatColor.GREEN + "Set " + ChatColor.GOLD + "%flag%" + ChatColor.GREEN + " to " + ChatColor.GOLD + "%value%" + ChatColor.GREEN + "."),
UNKNOWN_FLAG(ChatColor.RED + "There's no flag called " + ChatColor.GOLD + "%flag" + ChatColor.RED + "."),
INVALID_VALUE(ChatColor.RED + "Invalid value."),
VALUE_MUST_BE_A_NUMBER(ChatColor.RED + "The value must be a number."),
VALUE_MUST_BE_A_NUMBER_BETWEEN_0_AND_1(ChatColor.RED + "The value must be a number between 0 and 1 (e.g. 0.5)."),
UNKNOWN_MODE(ChatColor.RED + "There's no mode with this name!"),
STOP_REASON_PLUGIN_DISABLED(ChatColor.RED + "The game was canceled cause there was a restart or reload."),
STOP_REASON_EDIT_ARENA(ChatColor.RED + "The game was canceled cause someone edited the arena."),
MUST_LOOK_AT_SIGN(ChatColor.RED + "You must look at a sign."),
ALREADY_JOIN_SIGN(ChatColor.RED + "This block is already a join sign!"),
SUCCESSFULLY_ADDED_JOIN_SIGN(ChatColor.GREEN + "Added join sign."),
SUCCESSFULLY_DESTROYED_JOIN_SIGN(ChatColor.GREEN + "Destroyed join sign."),
UPDATE_VERSIONLIST_HEAD(ChatColor.GREEN + "----------------------- " + ChatColor.RED + "Versions" + ChatColor.GREEN + " ---------------------"),
UPDATE_VERSIONLIST_VALUE(ChatColor.GOLD + " - " + ChatColor.GRAY + "Version %pluginVersion% for %gameVersion%"),
UPDATE_VERSIONLIST_POPUP(ChatColor.GOLD + "Click to copy update-command for " + ChatColor.LIGHT_PURPLE + "%pluginVersion%" + ChatColor.GOLD + "."),
UPDATE_VERSIONLIST_BOTTOM(ChatColor.GREEN + "-------------------- " + ChatColor.AQUA + "Click a version" + ChatColor.GREEN + " -------------------"),
FLAGS_LIST_HEAD(ChatColor.GREEN + "------------------------- " + ChatColor.RED + "Flags" + ChatColor.GREEN + " ----------------------"),
FLAGS_LIST_WITH_VALUE(ChatColor.GOLD + " - " + ChatColor.BLUE + "%flag%" + ChatColor.GRAY + ": " + ChatColor.WHITE + "%value% " + ChatColor.ITALIC + "(default: %defaultValue%)"),
FLAGS_LIST_WITHOUT_VALUE(ChatColor.GOLD + " - " + ChatColor.BLUE + "%flag% " + ChatColor.WHITE + ChatColor.ITALIC + "(default: %defaultValue%)"),
FLAGS_LIST_BOTTOM(ChatColor.GREEN + "-----------------------------------------------------"),
UPDATE_UNKNOWN_VERSION(ChatColor.RED + "Unknown version!"),
UPDATE_NO_NEW_VERSION(ChatColor.GREEN + "No updates available. :)"),
UPDATE_NO_NEW_VERSION_BUT_UNSAFE(ChatColor.RED + "There's an update, but for a newer gameversion (%gameVersion%).%n" + ChatColor.RED + "Type " + ChatColor.GOLD + "%updateCommand%" + ChatColor.RED + " to update!"),
UPDATE_DOWNLOAD_SUCCESSFULLY_NOW_INSTALL(ChatColor.GREEN + "Successfully downloaded plugin. Restarting now!"),
UPDATE_DOWNLOAD_SUCCESSFULLY(ChatColor.GREEN + "Successfully downloaded plugin!"),
UPDATE_YOUR_VERSION_IS_OUTDATED(ChatColor.RED + "EpicSpleef version %version% for minecraft %mcVersion% is out!%n" + ChatColor.RED + "You are still running version %oldVersion%%n" + ChatColor.RED + "Type " + ChatColor.GOLD + "%updateCommand%" + ChatColor.RED + " to update!"),
UNKNOWN_ENTITY(ChatColor.RED + "There's no (valid) entity with this name!"),
ARENAS_MUST_BE_THE_SAME(ChatColor.RED + "You must repeate the arena argument!"),
COUNTDOWN_SET_TO(ChatColor.GREEN + "Countdown set to %seconds%!"),
MUST_BE_AT_LEAST_2_PLAYERS(ChatColor.RED + "There must be at least 2 players!"),
RELOADING(ChatColor.GREEN + "Reloading EpicSpleef..."),
PLUGIN_RELOADED(ChatColor.GREEN + "Reload complete"),
// stuff
PLAYER_ELIMINATED("%prefix%" + ChatColor.BLUE + "%player%" + ChatColor.GRAY + " has been eliminated!"),
PLAYER_WON_GAME("%prefix%" + ChatColor.GREEN + "%player%" + ChatColor.GRAY + " won the game!"),
PLAYER_WHO_WON("%prefix%" + ChatColor.GREEN + "Congratulations!"),
// flags
FLAG_ENABLED("enabled"),
FLAG_SNOWBALLS_ENABLED("snowballsEnabled"),
FLAG_MAX_SNOWBALLS("maxSnowballs"),
FLAG_MODE("mode"),
FLAG_CUSTOMINVENTORY_ENABLED("customInventoryEnabled"),
FLAG_CUSTOMINVENTORY("customInventory"),
FLAG_VEHICLE("vehicle"),
FLAG_INSTANT_BLOCK_DESTORY("instantBlockDestroy"),
FLAG_REWARD_MONEY_WINNING("rewardMoneyWinning"),
FLAG_REWARD_POINTS_WINNING("rewardPointsWinning"),
FLAG_REWARD_MONEY_PARTICIPATION("rewardMoneyParticipation"),
FLAG_REWARD_POINTS_PARTICIPATION("rewardPointsParticipation"),
FLAG_FREEZE_PLAYERS("freezePlayers"),
FLAG_MODIFY_GRAVITY("modifyGravity"),
FLAG_GRAVITY("gravity"),
FLAG_MIN_PLAYERS("minPlayers"),
FLAG_REQUIRED_PLAYERS_TO_START_COUNTDOWN("requiredPlayersToStartCountdown"),
FLAG_SPECTATE_TYPE("spectateType"),
FLAG_SPECTATE_LOCATION("spectateLocation"),
FLAG_ARENA_COUNTDOWN("arenaCountdown"),
FLAG_LOBBY_COUNTDOWN("lobbyCountdown"),
// values
VALUE_TRUE("true"),
VALUE_FALSE("false"),
VALUE_MODE_NORMAL("normal"),
VALUE_MODE_BOWSPLEEF("bowspleef"),
VALUE_MODE_SPLEGG("splegg"),
VALUE_MODE_SPLEEF_RUN("spleefRun"),
VALUE_MODE_SUPER_SPLEEF("superSpleef"),
VALUE_MODE_SUPER_SPLEGG("superSplegg"),
// items
HIDE_PLAYERS_ITEM(ChatColor.LIGHT_PURPLE + "Hide players"),
STATS_ITEM(ChatColor.AQUA + "Statistics"),
SHOP_ITEM(ChatColor.GOLD + "Shop"),
LEAVE_ARENA_ITEM(ChatColor.RED + "Leave arena"),
//game status
STATUS_WAITING_FOR_PLAYERS(ChatColor.GREEN + "Waiting for players"),
STATUS_ACTIVE(ChatColor.RED + "Game running"),
STATUS_DISABLED(ChatColor.RED + "Disabled"),
// for update
UPDATE_PROGRESS(ChatColor.GREEN + "Downloading update: %percentage%%. (%downloaded% KB / %total% KB"),
UPDATE_ERROR(ChatColor.RED + "An error occured while downloading file!"),
UPDATE_NO_UPDATES(ChatColor.RED + "No updates found!"),
// spectate types
SPECTATE_TYPE_NONE("none"),
SPECTATE_TYPE_NORMAL("normal"),
SPECTATE_TYPE_NORMAL_FLYING("normalFlying"),
SPECTATE_TYPE_GAMEMODE_3("gamemode3"),
// single words
ARGUMENT_ARENA("<arena>"),
ARGUMENT_ARENA_OPTIONAL("[arena]"),
ARGUMENT_LOBBY("<lobby>"),
ARGUMENT_LOBBY_OPTIONAL("[lobby]"),
ARGUMENT_FLAG("<flag>"),
ARGUMENT_FLAG_OPTIONAL("[flag]"),
ARGUMENT_VALUE("<value>"),
ARGUMENT_VALUE_OPTIONAL("[value]"),
ARGUMENT_DELETE_STATS_OPTIONAL("[deleteStats]"),
// particle
PARTICLE_ENCHANTMENT("Enchantment particles"),
PARTICLE_ENCHANTMENT_DESCRIPTION("Looks very cool!"),
PARTICLE_CRAPPING("Crapping"),
PARTICLE_CRAPPING_DESCRIPTION("Ok, that's ugly :/"),
PARTICLE_HEART("Hearts"),
PARTICLE_HEART_DESCRIPTION("Show how much you love everyone :)"),
PARTICLE_RAINCLOUD("Raincloud"),
PARTICLE_RAINCLOUD_DESCRIPTION("How is the weather today?"),
PARTICLE_CLOUD_TAIL("Cloudtail"),
PARTICLE_CLOUD_TAIL_DESCRIPTION("White clouds will follow you!"),
PARTICLE_FLAMES("Flames"),
PARTICLE_FLAMES_DESCRIPTION("FIRE!!!"),
PARTICLE_SPELL("Wizardspell"),
PARTICLE_SPELL_DESCRIPTION("Witch particles are really cool :)"),
PARTICLE_GREEN_PATH("Green path"),
PARTICLE_GREEN_PATH_DESCRIPTION("A green path will show your way."),
PARTICLEPRICE(ChatColor.RED + "Costs: " + ChatColor.GOLD + "%price% points"),
PARTICLEPRICE_HEART(ChatColor.RED + "Costs: " + ChatColor.GOLD + "%price% hugs"),
NOT_ENOUGH_POINTS_TO_BUY_PARTICLE(ChatColor.RED + "You don't have enough points!"),
HELP_HEADLINE(ChatColor.BLUE + " Help for " + ChatColor.RED + "/%cmd% "),
WRONG_USAGE(ChatColor.RED + "Wrong usage! Please type " + ChatColor.GOLD + "/%cmd% ?"),
ONLY_PLAYER("This command is only for players!"),
NO_PERMISSION(ChatColor.RED + "You are not allowed to use this command!");
final String PREFIX_STRING = ChatColor.RED + "\u25CF" + ChatColor.GOLD + " Spleef " + ChatColor.RED + "\u25CF" + ChatColor.BLUE + " | " + ChatColor.GRAY;
private String defaultText;
private String path;
private String text;
private Language(String defaultText) {
construct(defaultText, name().toLowerCase());
}
private Language(String defaultText, String path) {
construct(defaultText, path);
}
private void construct(String defaultText, String path) {
Validator.validateNotNull(defaultText, "defaultText");
Validator.validateNotNull(path, "path");
if (SpleefMain.getInstance() == null || SpleefMain.getInstance().getLanguageConfigAccessor() == null) {
throw new IllegalStateException("The language file is not ready!");
}
this.defaultText = defaultText.replaceAll("\u00A7((?i)[0-9a-fk-or])", "&$1").replace("\n", "%n"); // replace the ChatColors with &-colorcodes
this.path = path;
SpleefMain.getInstance().getLanguageConfigAccessor().getConfig().addDefault(path, this.defaultText);
this.defaultText = this.defaultText.replace("%prefix%", SpleefMain.getInstance().getLanguageConfigAccessor().getConfig().getString("prefix", PREFIX_STRING.replaceAll("ยง((?i)[0-9a-fk-or])", "&$1")));
this.defaultText = defaultText.replaceAll("\u00A7((?i)[0-9a-fk-or])", "&$1").replace("\n", "%n");
SpleefMain.getInstance().getLanguageConfigAccessor().getConfig().options().copyDefaults(true);
SpleefMain.getInstance().getLanguageConfigAccessor().saveConfig();
this.text = SpleefMain.getInstance().getLanguageConfigAccessor().getConfig().getString(path, this.defaultText);
this.text = this.text.replace("%prefix%", SpleefMain.getInstance().getLanguageConfigAccessor().getConfig().getString("prefix", PREFIX_STRING));
this.text = this.text.replaceAll("&((?i)[0-9a-fk-or])", "\u00A7$1").replace("%n", "\n"); // replace the &-colorcodes with the ChatColor
}
/**
* Gets the default text.
*/
public String getDefaultText() {
return defaultText;
}
/**
* Gets the path.
*/
public String getPath() {
return path;
}
/**
* Gets the text.
*/
public String getText() {
return text;
}
/*
* (non-Javadoc)
* @see java.lang.Enum#toString()
*/
@Override
public String toString() {
return getText();
}
}