From 0015592730f936350718ec61cd522c6dea3fe9c1 Mon Sep 17 00:00:00 2001 From: Tyler Murphy Date: Fri, 22 Oct 2021 20:03:15 -0400 Subject: localization --- .../hideAndSeek/configuration/Config.java | 126 +++++++++++++++++++++ .../hideAndSeek/configuration/Localization.java | 37 ++++++ .../configuration/LocalizationString.java | 48 ++++++++ 3 files changed, 211 insertions(+) create mode 100644 src/main/java/net/tylermurphy/hideAndSeek/configuration/Config.java create mode 100644 src/main/java/net/tylermurphy/hideAndSeek/configuration/Localization.java create mode 100644 src/main/java/net/tylermurphy/hideAndSeek/configuration/LocalizationString.java (limited to 'src/main/java/net/tylermurphy/hideAndSeek/configuration') diff --git a/src/main/java/net/tylermurphy/hideAndSeek/configuration/Config.java b/src/main/java/net/tylermurphy/hideAndSeek/configuration/Config.java new file mode 100644 index 0000000..83b6ceb --- /dev/null +++ b/src/main/java/net/tylermurphy/hideAndSeek/configuration/Config.java @@ -0,0 +1,126 @@ +package net.tylermurphy.hideAndSeek.configuration; + +import java.util.Map; +import java.util.Map.Entry; + +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 + messagePrefix, + errorPrefix, + tauntPrefix, + worldborderPrefix, + abortPrefix, + gameoverPrefix, + warningPrefix, + spawnWorld, + exitWorld, + lobbyWorld; + + public static Vector + spawnPosition, + lobbyPosition, + exitPosition, + worldborderPosition; + + public static boolean + nametagsVisible, + permissionsRequired, + announceMessagesToNonPlayers, + worldborderEnabled; + + public static int + minPlayers, + worldborderSize, + worldborderDelay, + currentWorldborderSize, + gameLength; + + public static FileConfiguration getConfig() { + return Main.plugin.getConfig(); + } + + public static void saveConfig() { + Main.plugin.saveConfig(); + } + + public static void loadConfig() { + + Main.plugin.reloadConfig(); + + //Spawn + spawnPosition = new Vector( + getConfig().getDouble("spawns.game.x"), + Math.max(0,Math.min(255,getConfig().getDouble("spawns.game.y"))), + getConfig().getDouble("spawns.game.z") + ); + spawnWorld = getConfig().getString("spawns.game.world"); + + ///Lobby + lobbyPosition = new Vector( + getConfig().getDouble("spawns.lobby.x"), + Math.max(0,Math.min(255,getConfig().getDouble("spawns.lobby.y"))), + getConfig().getDouble("spawns.lobby.z") + ); + lobbyWorld = getConfig().getString("spawns.lobby.world"); + + announceMessagesToNonPlayers = getConfig().getBoolean("announceMessagesToNonPlayers"); + + exitPosition = new Vector( + getConfig().getDouble("spawns.exit.x"), + Math.max(0,Math.min(255,getConfig().getDouble("spawns.exit.y"))), + getConfig().getDouble("spawns.exit.z") + ); + exitWorld = getConfig().getString("spawns.exit.world"); + + //World border + worldborderPosition = new Vector( + getConfig().getInt("worldBorder.x"), + 0, + getConfig().getInt("worldBorder.z") + ); + worldborderSize = Math.max(100,getConfig().getInt("worldBorder.size")); + worldborderDelay = Math.max(1,getConfig().getInt("worldBorder.delay")); + worldborderEnabled = getConfig().getBoolean("worldBorder.enabled"); + + //Prefix + char SYMBOLE = '\u00A7'; + String SYMBOLE_STRING = new String(new char[] {SYMBOLE}); + + messagePrefix = getConfig().getString("prefix.default").replace("&", SYMBOLE_STRING); + errorPrefix = getConfig().getString("prefix.error").replace("&", SYMBOLE_STRING); + tauntPrefix = getConfig().getString("prefix.taunt").replace("&", SYMBOLE_STRING); + worldborderPrefix = getConfig().getString("prefix.border").replace("&", SYMBOLE_STRING); + abortPrefix = getConfig().getString("prefix.abort").replace("&", SYMBOLE_STRING); + gameoverPrefix = getConfig().getString("prefix.gameover").replace("&", SYMBOLE_STRING); + warningPrefix = getConfig().getString("prefix.warning").replace("&", SYMBOLE_STRING); + + //Other + nametagsVisible = getConfig().getBoolean("nametagsVisible"); + permissionsRequired = getConfig().getBoolean("permissionsRequired"); + minPlayers = Math.max(2,getConfig().getInt("minPlayers")); + gameLength = getConfig().getInt("gameLength"); + + getConfig().options().copyDefaults(true); + saveConfig(); + + } + + public static void addToSection(String sectionName, Map values) { + ConfigurationSection section = getConfig().getConfigurationSection(sectionName); + if(section == null) section = getConfig().createSection(sectionName); + Map sectionValues = section.getValues(true); + for(Entry entry : values.entrySet()) { + sectionValues.put(entry.getKey(), entry.getValue()); + } + getConfig().createSection(sectionName, sectionValues); + saveConfig(); + } + +} \ No newline at end of file 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 LOCAL = new HashMap(); + + 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; + } + +} -- cgit v1.2.3-freya