idk some "cool" stuff

This commit is contained in:
hdvt
2025-06-28 00:36:06 +03:00
parent 54eb07cc86
commit e63ac83c17
17 changed files with 499 additions and 312 deletions

View File

@@ -1,26 +1,33 @@
package hdvtdev.blockAndSeek;
import hdvtdev.blockAndSeek.managers.ConfigManager;
import net.kyori.adventure.text.Component;
import net.kyori.adventure.text.minimessage.MiniMessage;
import org.jetbrains.annotations.NotNull;
import org.jetbrains.annotations.Nullable;
import java.util.Collections;
import java.util.Map;
public class Localization {
private static volatile Map<String, String> localization = ConfigManager.getLocalization();
private static volatile Map<String, Map<String, String>> localization = Collections.unmodifiableMap(ConfigManager.getLocalization());
private static final MiniMessage miniMessage = MiniMessage.miniMessage();
private static final Component prefix = miniMessage.deserialize("<gold>[<bold><blue>BlockAndSeek<reset><gold>] ");
public static Component getPrefix() {
return prefix;
}
public static void update() {
localization = ConfigManager.getLocalization();
localization = Collections.unmodifiableMap(ConfigManager.getLocalization());
}
public static String get(String key, String... replacements) {
String s = localization.get(key);
public static String get(@NotNull String key, String... replacements) {
return getLang(null, key, replacements);
}
public static String getLang(@Nullable String lang, @NotNull String key, String... replacements) {
lang = lang == null || !localization.containsKey(lang) ? "en-US" : lang;
String s = localization.get(lang).get(key);
if (s != null) {
for (int i = 0; i < replacements.length; i += 2) {
s = s.replace(replacements[i], replacements[i + 1]);
@@ -30,8 +37,19 @@ public class Localization {
}
public static Component getComponent(String key, String... replacements) {
return miniMessage.deserialize(get(key, replacements));
return getLangComponent(null, key, replacements);
}
public static Component getLangComponent(String lang, String key, String... replacements) {
return miniMessage.deserialize(getLang(lang, key, replacements));
}
public static Component getLangComponentWithPrefix(String lang, String key, String... replacements) {
return prefix.append(getLangComponent(lang, key, replacements));
}
public static Component getComponentWithPrefix(String key, String... replacements) {
return prefix.append(getLangComponent(null, key, replacements));
}
}