版本更新至 4.01

调整:TLocale$logger 现在可以发送多行文本了
调整:TLocale 发送不存在的信息,错误提示由红色改为灰色,用于区分发送错误的提示颜色。
调整:TLocaleLoader 中的 getCallerPlugin 方法转移到 Ref 中
修复:BaseMainCommand 接口中 getType 方法失效的问题
修复:Main 中的语言提示无法更改的问题
新增:TPlugin 命令现在可以补全插件名了
新增:config.yml 现在会自动重载了(部分配置还需重启)
This commit is contained in:
坏黑
2018-05-13 21:31:03 +08:00
parent eb616fd5bd
commit 3ea16b3e80
11 changed files with 122 additions and 64 deletions

View File

@@ -2,7 +2,10 @@ package com.ilummc.tlib.util;
import com.google.gson.annotations.SerializedName;
import com.ilummc.tlib.TLib;
import com.ilummc.tlib.resources.TLocale;
import com.ilummc.tlib.util.asm.AsmAnalyser;
import me.skymc.taboolib.Main;
import org.bukkit.plugin.java.JavaPlugin;
import org.objectweb.asm.ClassReader;
import org.objectweb.asm.ClassWriter;
import sun.reflect.Reflection;
@@ -96,6 +99,17 @@ public class Ref {
return Optional.empty();
}
public static JavaPlugin getCallerPlugin(Class<?> callerClass) {
try {
Field pluginField = callerClass.getClassLoader().getClass().getDeclaredField("plugin");
pluginField.setAccessible(true);
return (JavaPlugin) pluginField.get(callerClass.getClassLoader());
} catch (Exception ignored) {
TLocale.Logger.error("LOCALE.CALLER-PLUGIN-NOT-FOUND", callerClass.getName());
}
return (JavaPlugin) Main.getInst();
}
private static abstract class CallerClass {
private static CallerClass impl;