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

View File

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