From f85a704c915b9780036912ae87b5b423f646f825 Mon Sep 17 00:00:00 2001 From: BoomEaro <21033866+BoomEaro@users.noreply.github.com> Date: Tue, 27 Aug 2024 12:50:26 +0300 Subject: [PATCH] Add ability to register LangType --- .../versions/DefaultTranslateManager.java | 18 ++++++++++++++++- .../langhelper/versions/TranslateManager.java | 20 +++++++++++++++++++ 2 files changed, 37 insertions(+), 1 deletion(-) diff --git a/common/src/main/java/ru/boomearo/langhelper/versions/DefaultTranslateManager.java b/common/src/main/java/ru/boomearo/langhelper/versions/DefaultTranslateManager.java index 4b918f1..48645c1 100644 --- a/common/src/main/java/ru/boomearo/langhelper/versions/DefaultTranslateManager.java +++ b/common/src/main/java/ru/boomearo/langhelper/versions/DefaultTranslateManager.java @@ -40,6 +40,8 @@ public abstract class DefaultTranslateManager implements TranslateManager { protected Map types; + private final Set registeredLanguages = new HashSet<>(); + /** * Загружает языки из файла в менеджере, учитывая включенные языки. */ @@ -118,10 +120,14 @@ public Set getAllTranslateLang() { * Метод проверяет и скачивает с серверов mojang нужный язык для нужной версии. * Сам бы я не узнал как именно скачивать языки. Спасибо автору который реализовал утилиту: https://gist.github.com/Mystiflow/c2b8838688e3215bb5492041046e458e **/ + @Override public void checkAndDownloadLanguages() { File currentTranFolder = new File(this.plugin.getDataFolder(), "languages" + File.separator + this.version + File.separator); - for (LangType lt : this.configManager.getEnabledLanguages()) { + Set languages = new HashSet<>(this.configManager.getEnabledLanguages()); + languages.addAll(this.registeredLanguages); + + for (LangType lt : languages) { // Убеждаемся что файл языка существует. // Нам на самом деле не важно, пустой или модифицирован, главное, что он есть. File langFile = new File(currentTranFolder, lt.name()); @@ -151,6 +157,16 @@ public void checkAndDownloadLanguages() { } } + @Override + public void registerLanguageType(LangType langType) { + this.registeredLanguages.add(langType); + } + + @Override + public void unregisterLanguageType(LangType langType) { + this.registeredLanguages.remove(langType); + } + @Override public Collection getAllTranslate() { return this.types.values(); diff --git a/common/src/main/java/ru/boomearo/langhelper/versions/TranslateManager.java b/common/src/main/java/ru/boomearo/langhelper/versions/TranslateManager.java index ac0b6a2..46dfeb0 100644 --- a/common/src/main/java/ru/boomearo/langhelper/versions/TranslateManager.java +++ b/common/src/main/java/ru/boomearo/langhelper/versions/TranslateManager.java @@ -143,4 +143,24 @@ public interface TranslateManager { */ String getBiomeName(Biome biome, LangType langType); + /** + * Скачивает недостающие языки. + * Полезно если вы зарегистрировали языки, которые не были указаны в конфиге. + */ + void checkAndDownloadLanguages(); + + /** + * Зарегистрировать язык + * + * @param langType тип языка + */ + void registerLanguageType(LangType langType); + + /** + * Удалить регистрацию языка + * + * @param langType тип языка + */ + void unregisterLanguageType(LangType langType); + }