idk some "cool" stuff

This commit is contained in:
hdvt
2025-06-26 01:18:01 +03:00
parent 15aca87742
commit 54eb07cc86
24 changed files with 1072 additions and 195 deletions

View File

@@ -2,66 +2,35 @@ package hdvtdev.blockAndSeek;
import net.kyori.adventure.text.Component;
import net.kyori.adventure.text.minimessage.MiniMessage;
import org.bukkit.ChatColor;
import org.bukkit.configuration.file.YamlConfiguration;
import org.bukkit.plugin.java.JavaPlugin;
import org.jetbrains.annotations.Nullable;
import java.io.*;
import java.util.Map;
import java.util.Objects;
import java.util.concurrent.ConcurrentHashMap;
public class Localization {
private static final Map<String, String> localization = new ConcurrentHashMap<>();
private static JavaPlugin javaPlugin;
private static volatile Map<String, String> localization = ConfigManager.getLocalization();
private static final MiniMessage miniMessage = MiniMessage.miniMessage();
private static final Component prefix = miniMessage.deserialize("<gold>[<bold><blue>BlockAndSeek<reset><gold>] ");
public static void reload() {
File localizationFile = new File(javaPlugin.getDataFolder(), "messages.yml");
if (!localizationFile.exists()) javaPlugin.saveResource("messages.yml", false);
YamlConfiguration locale = YamlConfiguration.loadConfiguration(localizationFile);
YamlConfiguration defaultLocale = YamlConfiguration.loadConfiguration(
new InputStreamReader(Objects.requireNonNull(javaPlugin.getResource("messages.yml"))));
String prefix = locale.getString("prefix");
prefix = prefix == null ? defaultLocale.getString("prefix") : prefix;
for (String defaultElement : defaultLocale.getKeys(false)) {
String element = locale.getString(defaultElement);
localization.put(defaultElement, String.format("%s%s", prefix, element == null ? defaultLocale.getString(defaultElement) : element));
}
public static Component getPrefix() {
return prefix;
}
public static void load(JavaPlugin plugin) {
javaPlugin = plugin;
File localizationFile = new File(plugin.getDataFolder(), "messages.yml");
if (!localizationFile.exists()) plugin.saveResource("messages.yml", false);
YamlConfiguration locale = YamlConfiguration.loadConfiguration(localizationFile);
YamlConfiguration defaultLocale = YamlConfiguration.loadConfiguration(
new InputStreamReader(Objects.requireNonNull(plugin.getResource("messages.yml"))));
String prefix = locale.getString("prefix");
prefix = prefix == null ? defaultLocale.getString("prefix") : prefix;
for (String defaultElement : defaultLocale.getKeys(false)) {
String element = locale.getString(defaultElement);
localization.put(defaultElement, String.format("%s%s", prefix, element == null ? defaultLocale.getString(defaultElement) : element));
}
public static void update() {
localization = ConfigManager.getLocalization();
}
public static Component get(String key, String... replacements) {
public static String get(String key, String... replacements) {
String s = localization.get(key);
for (int i = 0; i < replacements.length; i+=2) {
s = s.replace(replacements[i], replacements[i + 1]);
}
if (s != null) {
for (int i = 0; i < replacements.length; i += 2) {
s = s.replace(replacements[i], replacements[i + 1]);
}
} else return "Unknown localization: " + key;
return s;
}
return MiniMessage.miniMessage().deserialize(s);
public static Component getComponent(String key, String... replacements) {
return miniMessage.deserialize(get(key, replacements));
}