Skip to content

Commit

Permalink
Add ability to register LangType
Browse files Browse the repository at this point in the history
  • Loading branch information
BoomEaro committed Aug 27, 2024
1 parent 7506a80 commit f85a704
Show file tree
Hide file tree
Showing 2 changed files with 37 additions and 1 deletion.
Original file line number Diff line number Diff line change
Expand Up @@ -40,6 +40,8 @@ public abstract class DefaultTranslateManager implements TranslateManager {

protected Map<LangType, TranslatedMessages> types;

private final Set<LangType> registeredLanguages = new HashSet<>();

/**
* Загружает языки из файла в менеджере, учитывая включенные языки.
*/
Expand Down Expand Up @@ -118,10 +120,14 @@ public Set<LangType> 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<LangType> languages = new HashSet<>(this.configManager.getEnabledLanguages());
languages.addAll(this.registeredLanguages);

for (LangType lt : languages) {
// Убеждаемся что файл языка существует.
// Нам на самом деле не важно, пустой или модифицирован, главное, что он есть.
File langFile = new File(currentTranFolder, lt.name());
Expand Down Expand Up @@ -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<TranslatedMessages> getAllTranslate() {
return this.types.values();
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -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);

}

0 comments on commit f85a704

Please sign in to comment.