Skip to content

Commit

Permalink
Add TranslationLoadEvent
Browse files Browse the repository at this point in the history
  • Loading branch information
Warriorrrr authored and LlmDl committed Aug 25, 2021
1 parent 0c89266 commit 47d42dd
Show file tree
Hide file tree
Showing 2 changed files with 51 additions and 0 deletions.
38 changes: 38 additions & 0 deletions src/com/palmergames/bukkit/towny/event/TranslationLoadEvent.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,38 @@
package com.palmergames.bukkit.towny.event;

import org.bukkit.Bukkit;
import org.bukkit.event.Event;
import org.bukkit.event.HandlerList;
import org.jetbrains.annotations.NotNull;

import java.util.HashMap;
import java.util.Map;

public class TranslationLoadEvent extends Event {
private static final HandlerList handlers = new HandlerList();
private final Map<String, Map<String, String>> addedTranslations;

public TranslationLoadEvent() {
super(!Bukkit.isPrimaryThread());
this.addedTranslations = new HashMap<>();
}

public void addTranslation(@NotNull String locale, @NotNull String key, @NotNull String value) {
addedTranslations.computeIfAbsent(locale, k -> new HashMap<>());

addedTranslations.get(locale).put(key, value);
}

public Map<String, Map<String, String>> getAddedTranslations() {
return addedTranslations;
}

@Override
public @NotNull HandlerList getHandlers() {
return handlers;
}

public static HandlerList getHandlerList() {
return handlers;
}
}
13 changes: 13 additions & 0 deletions src/com/palmergames/bukkit/towny/object/Translation.java
Original file line number Diff line number Diff line change
Expand Up @@ -5,10 +5,12 @@
import com.palmergames.bukkit.towny.TownySettings;
import com.palmergames.bukkit.towny.TownyUniverse;
import com.palmergames.bukkit.towny.command.HelpMenu;
import com.palmergames.bukkit.towny.event.TranslationLoadEvent;
import com.palmergames.bukkit.util.BukkitTools;
import com.palmergames.bukkit.util.Colors;
import com.palmergames.util.FileMgmt;
import org.apache.commons.compress.utils.FileNameUtils;
import org.bukkit.Bukkit;
import org.bukkit.command.CommandSender;
import org.bukkit.entity.Player;
import org.jetbrains.annotations.Nullable;
Expand Down Expand Up @@ -78,6 +80,17 @@ public static void loadTranslationRegistry() {
e.printStackTrace();
}
}

TranslationLoadEvent translationLoadEvent = new TranslationLoadEvent();
Bukkit.getPluginManager().callEvent(translationLoadEvent);

Map<String, Map<String, String>> addedTranslations = translationLoadEvent.getAddedTranslations();
if (addedTranslations != null && !addedTranslations.isEmpty()) {
for (String lang : addedTranslations.keySet())
if (addedTranslations.get(lang) != null && !addedTranslations.get(lang).isEmpty())
for (Map.Entry<String, String> entry : addedTranslations.get(lang).entrySet())
translations.get(lang).put(entry.getKey().toLowerCase(Locale.ROOT), entry.getValue());
}

// Load optional override files.
File[] overrideFiles = new File(langFolder + File.separator + "override").listFiles();
Expand Down

0 comments on commit 47d42dd

Please sign in to comment.