版本更新至 4.01
调整:TLocale$logger 现在可以发送多行文本了 调整:TLocale 发送不存在的信息,错误提示由红色改为灰色,用于区分发送错误的提示颜色。 调整:TLocaleLoader 中的 getCallerPlugin 方法转移到 Ref 中 修复:BaseMainCommand 接口中 getType 方法失效的问题 修复:Main 中的语言提示无法更改的问题 新增:TPlugin 命令现在可以补全插件名了 新增:config.yml 现在会自动重载了(部分配置还需重启)
This commit is contained in:
@@ -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;
|
||||
|
||||
Reference in New Issue
Block a user