船新 I18n 系统

修了一个配置文件小bug
This commit is contained in:
Izzel_Aliz
2018-04-22 13:30:50 +08:00
parent 385b2aa974
commit c573617a01
18 changed files with 479 additions and 38 deletions

View File

@@ -0,0 +1,54 @@
package com.ilummc.tlib.resources;
import com.ilummc.tlib.util.Ref;
import org.bukkit.Bukkit;
import org.bukkit.command.CommandSender;
import org.bukkit.plugin.java.JavaPlugin;
import java.lang.reflect.Field;
public final class TLocale {
private TLocale() {
throw new AssertionError();
}
private static void sendTo(String path, CommandSender sender, String[] args, Class<?> callerClass) {
try {
Field pluginField = callerClass.getClassLoader().getClass().getDeclaredField("plugin");
pluginField.setAccessible(true);
JavaPlugin plugin = (JavaPlugin) pluginField.get(callerClass.getClassLoader());
if (args.length == 0)
LocaleLoader.sendTo(plugin, path, sender);
else
LocaleLoader.sendTo(plugin, path, sender, args);
} catch (Exception e) {
e.printStackTrace();
}
}
public static void sendTo(String path, CommandSender sender, String... args) {
Ref.getCallerClass(3).ifPresent(clazz -> sendTo(path, sender, args, clazz));
}
public static void sendTo(String path, CommandSender sender) {
Ref.getCallerClass(3).ifPresent(clazz -> sendTo(path, sender, new String[0], clazz));
}
public static void sendTo(CommandSender sender, String path, String... args) {
Ref.getCallerClass(3).ifPresent(clazz -> sendTo(path, sender, args, clazz));
}
public static void sendTo(CommandSender sender, String path) {
Ref.getCallerClass(3).ifPresent(clazz -> sendTo(path, sender, new String[0], clazz));
}
public static void sendToConsole(String path, String... args) {
Ref.getCallerClass(3).ifPresent(clazz -> sendTo(path, Bukkit.getConsoleSender(), args, clazz));
}
public static void sendToConsole(String path) {
Ref.getCallerClass(3).ifPresent(clazz -> sendTo(path, Bukkit.getConsoleSender(), new String[0], clazz));
}
}