feat: Allow for custom locale folder path

This commit is contained in:
Ben Woo 2023-02-17 00:19:04 +08:00
parent 47a92deffd
commit 44904eaef4
No known key found for this signature in database
GPG Key ID: FB2A3645536E12C8
2 changed files with 17 additions and 7 deletions

View File

@ -1,7 +1,5 @@
package com.onarandombox.MultiverseCore.locale;
import org.bukkit.plugin.Plugin;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
@ -9,15 +7,22 @@ import java.io.InputStream;
import java.net.MalformedURLException;
import java.net.URL;
import org.bukkit.plugin.Plugin;
/**
* A class loader that loads resources from the plugin's locales folder.
*/
public class FileResClassLoader extends ClassLoader {
private static final String DEFAULT_LOCALE_FOLDER_PATH = "locales";
private final transient File localesFolder;
public FileResClassLoader(final ClassLoader classLoader, final Plugin plugin) {
super(classLoader);
this.localesFolder = new File(plugin.getDataFolder(), "locales");
public FileResClassLoader(final Plugin plugin) {
this(plugin, DEFAULT_LOCALE_FOLDER_PATH);
}
public FileResClassLoader(final Plugin plugin, final String localesFolderPath) {
super(plugin.getClass().getClassLoader());
this.localesFolder = new File(plugin.getDataFolder(), localesFolderPath);
}
@Override

View File

@ -3,13 +3,18 @@ package com.onarandombox.MultiverseCore.locale;
import co.aikar.commands.BukkitCommandManager;
import co.aikar.commands.BukkitLocales;
import org.bukkit.plugin.Plugin;
import org.jetbrains.annotations.NotNull;
public class PluginLocales extends BukkitLocales {
public PluginLocales(BukkitCommandManager manager) {
super(manager);
}
public boolean addFileResClassLoader(Plugin plugin) {
return this.addBundleClassLoader(new FileResClassLoader(plugin.getClass().getClassLoader(), plugin));
public boolean addFileResClassLoader(@NotNull Plugin plugin) {
return this.addBundleClassLoader(new FileResClassLoader(plugin));
}
public boolean addFileResClassLoader(@NotNull Plugin plugin, @NotNull String localesFolderPath) {
return this.addBundleClassLoader(new FileResClassLoader(plugin, localesFolderPath));
}
}