把部分硬编码语言文件抽取到新的语言系统

This commit is contained in:
Izzel_Aliz
2018-04-28 22:56:16 +08:00
parent 20fcb3dfa0
commit 250d168c2e
24 changed files with 434 additions and 325 deletions

View File

@@ -1,8 +1,8 @@
package com.ilummc.tlib.inject;
import com.google.common.io.Files;
import com.ilummc.tlib.TLib;
import com.ilummc.tlib.annotations.Config;
import com.ilummc.tlib.resources.TLocale;
import me.skymc.taboolib.fileutils.ConfigUtils;
import org.apache.commons.lang3.Validate;
import org.bukkit.configuration.file.YamlConfiguration;
@@ -59,9 +59,9 @@ public class TConfigInjector {
if (!config.readOnly()) saveConfig(plugin, obj);
return obj;
} catch (NullPointerException e) {
TLib.getTLib().getLogger().warn("插件 " + plugin + " 的配置类 " + clazz.getSimpleName() + " 加载失败:没有 @Config 注解");
TLocale.Logger.warn("CONFIG.LOAD-FAIL-NO-ANNOTATION", plugin.toString(), clazz.getSimpleName());
} catch (Exception e) {
TLib.getTLib().getLogger().warn("插件 " + plugin + " 的配置类 " + clazz.getSimpleName() + " 加载失败");
TLocale.Logger.warn("CONFIG.LOAD-FAIL", plugin.toString(), clazz.getSimpleName());
}
return null;
}
@@ -75,13 +75,13 @@ public class TConfigInjector {
ConfigUtils.yamlToMap(
Files.toString(new File(plugin.getDataFolder(), config.name()), Charset.forName(config.charset())))), clazz);
} catch (NullPointerException e) {
TLib.getTLib().getLogger().warn("插件 " + plugin + " 的配置类 " + clazz.getSimpleName() + " 加载失败:没有 @Config 注解或文件不存在");
TLocale.Logger.warn("CONFIG.LOAD-FAIL-NO-FILE", plugin.toString(), clazz.getSimpleName());
return null;
} catch (Exception e) {
try {
return clazz.newInstance();
} catch (InstantiationException | IllegalAccessException e1) {
TLib.getTLib().getLogger().warn("插件 " + plugin + " 的配置类 " + clazz.getSimpleName() + " 加载失败");
TLocale.Logger.warn("CONFIG.LOAD-FAIL", plugin.toString(), clazz.getSimpleName());
return null;
}
}
@@ -93,9 +93,9 @@ public class TConfigInjector {
Validate.notNull(config);
return ConfigUtils.objToConf(object).getValues(false);
} catch (NullPointerException e) {
TLib.getTLib().getLogger().warn("插件 " + plugin + " 的配置类 " + object.getClass().getSimpleName() + " 序列化失败:没有 @Config 注解");
TLocale.Logger.warn("CONFIG.SAVE-FAIL-NO-ANNOTATION", plugin.toString(), object.getClass().getSimpleName());
} catch (Exception e) {
TLib.getTLib().getLogger().warn("插件 " + plugin + " 的配置类 " + object.getClass().getSimpleName() + " 序列化失败");
TLocale.Logger.warn("CONFIG.SAVE-FAIL", plugin.toString(), object.getClass().getSimpleName());
}
return null;
}

View File

@@ -1,22 +1,18 @@
package com.ilummc.tlib.inject;
import java.io.File;
import java.lang.reflect.Field;
import com.ilummc.tlib.TLib;
import com.ilummc.tlib.annotations.*;
import com.ilummc.tlib.dependency.TDependency;
import com.ilummc.tlib.logger.TLogger;
import com.ilummc.tlib.resources.TLocale;
import com.ilummc.tlib.resources.TLocaleLoader;
import com.ilummc.tlib.util.Ref;
import org.bukkit.Bukkit;
import org.bukkit.plugin.Plugin;
import org.bukkit.plugin.java.JavaPlugin;
import com.ilummc.tlib.TLib;
import com.ilummc.tlib.annotations.Config;
import com.ilummc.tlib.annotations.Dependencies;
import com.ilummc.tlib.annotations.Dependency;
import com.ilummc.tlib.annotations.Logger;
import com.ilummc.tlib.annotations.PluginInstance;
import com.ilummc.tlib.dependency.TDependency;
import com.ilummc.tlib.logger.TLogger;
import com.ilummc.tlib.resources.TLocaleLoader;
import com.ilummc.tlib.util.Ref;
import java.io.File;
import java.lang.reflect.Field;
public class TDependencyInjector {
@@ -50,9 +46,9 @@ public class TDependencyInjector {
try {
field.setAccessible(true);
TConfigInjector.saveConfig(plugin, field.get(o));
TLib.getTLib().getLogger().info("插件 " + plugin + " 的配置 " + config.name() + " 已保存");
TLocale.Logger.info("CONFIG.SAVE-SUCCESS", plugin.toString(), config.name());
} catch (Exception e) {
TLib.getTLib().getLogger().warn("插件 " + plugin + " 的配置 " + config.name() + " 保存失败");
TLocale.Logger.warn("CONFIG.SAVE-FAIL", plugin.toString(), config.name());
e.printStackTrace();
}
}
@@ -67,10 +63,10 @@ public class TDependencyInjector {
field.setAccessible(true);
Object obj = TConfigInjector.loadConfig(plugin, field.getType());
if (obj != null) {
TLib.getTLib().getLogger().info("插件 " + plugin.getName() + "" + config.name() + " 配置文件成功加载");
TLocale.Logger.info("CONFIG.LOAD-SUCCESS", plugin.toString(), config.name());
field.set(o, obj);
if (config.listenChanges()) {
TLib.getTLib().getLogger().info("开始监听插件 " + plugin.getName() + "" + config.name() + " 配置文件");
TLocale.Logger.info("CONFIG.LISTEN-START", plugin.toString(), config.name());
TLib.getTLib().getConfigWatcher().addOnListen(
new File(plugin.getDataFolder(), config.name()),
obj,
@@ -81,9 +77,9 @@ public class TDependencyInjector {
f.setAccessible(true);
f.set(obj, f.get(newObj));
}
TLib.getTLib().getLogger().info("插件 " + plugin.getName() + "" + config.name() + " 配置文件成功重载");
TLocale.Logger.info("CONFIG.RELOAD-SUCCESS", plugin.toString(), config.name());
} catch (Exception ignored) {
TLib.getTLib().getLogger().warn("插件 " + plugin.getName() + "" + config.name() + " 配置文件重载时发生错误");
TLocale.Logger.warn("CONFIG.RELOAD-FAIL", plugin.toString(), config.name());
}
}
);
@@ -105,6 +101,7 @@ public class TDependencyInjector {
if (!field.isAccessible())
field.setAccessible(true);
field.set(o, tLogger);
TLoggerManager.setDefaultLogger(plugin, tLogger);
}
} catch (Exception ignored2) {
}
@@ -122,7 +119,7 @@ public class TDependencyInjector {
Plugin pl;
if ((pl = Bukkit.getPluginManager().getPlugin(instance.value())) == null) {
if (!TDependency.requestPlugin(instance.value())) {
TLib.getTLib().getLogger().warn(plugin.getName() + " 所需的依赖插件 " + instance.value() + " 自动加载失败");
TLocale.Logger.warn("PLUGIN-AUTOLOAD-FAIL", plugin.getName(), instance.value());
return;
} else {
pl = Bukkit.getPluginManager().getPlugin(instance.value());
@@ -149,24 +146,24 @@ public class TDependencyInjector {
}
}
if (dependencies.length != 0) {
TLib.getTLib().getLogger().info("正在加载 " + plugin.getName() + " 插件所需的依赖");
TLocale.Logger.info("DEPENDENCY.LOADING-START", plugin.getName());
for (Dependency dependency : dependencies) {
if (dependency.type() == Dependency.Type.PLUGIN) {
if (TDependency.requestPlugin(dependency.plugin())) {
TLib.getTLib().getLogger().info(" " + plugin.getName() + " 请求的插件 " + dependency.plugin() + " 加载成功。");
TLocale.Logger.info("DEPENDENCY.PLUGIN-LOAD-SUCCESS", plugin.getName(), dependency.plugin());
} else {
TLib.getTLib().getLogger().warn(" " + plugin.getName() + " 请求的插件 " + dependency.plugin() + " 加载失败。");
TLocale.Logger.warn("DEPENDENCY.PLUGIN-LOAD-FAIL", plugin.getName(), dependency.plugin());
}
}
if (dependency.type() == Dependency.Type.LIBRARY) {
if (TDependency.requestLib(dependency.maven(), dependency.mavenRepo(), dependency.url())) {
TLib.getTLib().getLogger().info(" " + plugin.getName() + " 请求的库文件 " + String.join(":", dependency.maven()) + " 加载成功。");
TLocale.Logger.info("DEPENDENCY.LIBRARY-LOAD-SUCCESS", plugin.getName(), String.join(":", dependency.maven()));
} else {
TLib.getTLib().getLogger().warn(" " + plugin.getName() + " 请求的库文件 " + String.join(":", dependency.maven()) + " 加载失败。");
TLocale.Logger.warn("DEPENDENCY.LIBRARY-LOAD-FAIL", plugin.getName(), String.join(":", dependency.maven()));
}
}
}
TLib.getTLib().getLogger().info("依赖加载完成");
TLocale.Logger.info("DEPENDENCY.LOAD-COMPLETE");
}
}

View File

@@ -0,0 +1,25 @@
package com.ilummc.tlib.inject;
import com.ilummc.tlib.logger.TLogger;
import org.bukkit.plugin.Plugin;
import java.util.HashMap;
import java.util.Map;
public class TLoggerManager {
private static final Map<Plugin, TLogger> map = new HashMap<>();
public static void setDefaultLogger(Plugin plugin, TLogger logger) {
map.put(plugin, logger);
}
public static TLogger getLogger(Plugin plugin) {
TLogger logger = map.get(plugin);
if (logger == null) {
logger = TLogger.getUnformatted(plugin);
map.put(plugin, logger);
}
return logger;
}
}

View File

@@ -1,15 +1,7 @@
package com.ilummc.tlib.inject;
import java.io.File;
import java.lang.reflect.Field;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.LinkedHashMap;
import java.util.List;
import java.util.Map;
import java.util.Set;
import java.util.regex.Pattern;
import com.ilummc.tlib.resources.TLocale;
import me.skymc.taboolib.Main;
import org.bukkit.Bukkit;
import org.bukkit.Server;
import org.bukkit.command.SimpleCommandMap;
@@ -18,17 +10,12 @@ import org.bukkit.event.EventPriority;
import org.bukkit.event.Listener;
import org.bukkit.permissions.Permissible;
import org.bukkit.permissions.Permission;
import org.bukkit.plugin.EventExecutor;
import org.bukkit.plugin.InvalidDescriptionException;
import org.bukkit.plugin.InvalidPluginException;
import org.bukkit.plugin.Plugin;
import org.bukkit.plugin.PluginLoader;
import org.bukkit.plugin.PluginManager;
import org.bukkit.plugin.UnknownDependencyException;
import org.bukkit.plugin.*;
import com.ilummc.tlib.TLib;
import me.skymc.taboolib.Main;
import java.io.File;
import java.lang.reflect.Field;
import java.util.*;
import java.util.regex.Pattern;
@SuppressWarnings("unused")
public class TPluginManager implements PluginManager {
@@ -68,14 +55,14 @@ public class TPluginManager implements PluginManager {
Field bukkitField = instance.getClass().getDeclaredField(bukkitName);
Field thisFiled = this.getClass().getDeclaredField(bukkitName);
if (bukkitField == null || thisFiled == null) {
TLib.getTLib().getLogger().warn("拷贝 " + bukkitName + " 对象失败");
TLocale.Logger.warn("MISC.FIELD-COPY-FAILED", bukkitName);
return;
}
bukkitField.setAccessible(true);
thisFiled.setAccessible(true);
thisFiled.set(this, bukkitField.get(instance));
} catch (Exception ignored) {
TLib.getTLib().getLogger().error("拷贝 " + bukkitName + " 对象出错");
} catch (Exception e) {
TLocale.Logger.error("MISC.FIELD-COPY-ERROR", bukkitName, e.toString());
}
}