diff --git a/src/main/java/com/ilummc/tlib/compat/PlaceholderApiHook.java b/src/main/java/com/ilummc/tlib/compat/PlaceholderApiHook.java deleted file mode 100644 index 728ee4c..0000000 --- a/src/main/java/com/ilummc/tlib/compat/PlaceholderApiHook.java +++ /dev/null @@ -1,40 +0,0 @@ -package com.ilummc.tlib.compat; - -import me.clip.placeholderapi.PlaceholderAPI; -import org.bukkit.Bukkit; -import org.bukkit.command.CommandSender; -import org.bukkit.entity.Player; - -public abstract class PlaceholderApiHook { - - private static PlaceholderApiHook impl; - - public static void init() { - if (Bukkit.getPluginManager().getPlugin("PlaceholderAPI") != null) - impl = new PlaceholderImpl(); - else impl = new AbstractImpl(); - } - - public static String replace(CommandSender sender, String text) { - return sender instanceof Player ? impl.replace(((Player) sender), text) : text; - } - - abstract String replace(Player player, String text); - - private static class PlaceholderImpl extends PlaceholderApiHook { - - @Override - String replace(Player player, String text) { - return PlaceholderAPI.setPlaceholders(player, text); - } - } - - private static class AbstractImpl extends PlaceholderApiHook { - - @Override - String replace(Player player, String text) { - return text; - } - } - -} diff --git a/src/main/java/com/ilummc/tlib/inject/DependencyInjector.java b/src/main/java/com/ilummc/tlib/inject/DependencyInjector.java deleted file mode 100644 index b528cf3..0000000 --- a/src/main/java/com/ilummc/tlib/inject/DependencyInjector.java +++ /dev/null @@ -1,168 +0,0 @@ -package com.ilummc.tlib.inject; - -import com.ilummc.tlib.TLib; -import com.ilummc.tlib.annotations.*; -import com.ilummc.tlib.dependency.TDependency; -import com.ilummc.tlib.resources.LocaleLoader; -import com.ilummc.tlib.util.Ref; -import com.ilummc.tlib.util.TLogger; -import org.bukkit.Bukkit; -import org.bukkit.plugin.Plugin; -import org.bukkit.plugin.java.JavaPlugin; - -import java.io.File; -import java.lang.reflect.Field; - -public class DependencyInjector { - - public static void inject(Plugin plugin, Object o) { - injectDependencies(plugin, o); - injectLogger(plugin, o); - injectConfig(plugin, o); - injectPluginInstance(plugin, o); - LocaleLoader.load(plugin, true); - } - - static void injectOnEnable(Plugin plugin) { - inject(plugin, plugin); - } - - static void onDisable(Plugin plugin) { - eject(plugin, plugin); - } - - public static void eject(Plugin plugin, Object o) { - try { - ejectConfig(plugin, o); - } catch (Throwable ignored) { - } - } - - private static void ejectConfig(Plugin plugin, Object o) { - for (Field field : Ref.getDeclaredFields(o.getClass())) { - Config config; - if ((config = field.getType().getAnnotation(Config.class)) != null && config.saveOnExit()) { - try { - field.setAccessible(true); - TConfigInjector.saveConfig(plugin, field.get(o)); - TLib.getTLib().getLogger().info("插件 " + plugin + " 的配置 " + config.name() + " 已保存"); - } catch (Exception e) { - TLib.getTLib().getLogger().warn("插件 " + plugin + " 的配置 " + config.name() + " 保存失败"); - e.printStackTrace(); - } - } - } - } - - private static void injectConfig(Plugin plugin, Object o) { - for (Field field : Ref.getDeclaredFields(o.getClass())) { - try { - Config config; - if ((config = field.getType().getAnnotation(Config.class)) != null) { - field.setAccessible(true); - Object obj = TConfigInjector.loadConfig(plugin, field.getType()); - if (obj != null) { - TLib.getTLib().getLogger().info("插件 " + plugin.getName() + " 的 " + config.name() + " 配置文件成功加载"); - field.set(o, obj); - if (config.listenChanges()) { - TLib.getTLib().getLogger().info("开始监听插件 " + plugin.getName() + " 的 " + config.name() + " 配置文件"); - TLib.getTLib().getConfigWatcher().addOnListen( - new File(plugin.getDataFolder(), config.name()), - obj, - object -> { - try { - Object newObj = TConfigInjector.loadConfig(plugin, object.getClass()); - for (Field f : newObj.getClass().getDeclaredFields()) { - f.setAccessible(true); - f.set(obj, f.get(newObj)); - } - TLib.getTLib().getLogger().info("插件 " + plugin.getName() + " 的 " + config.name() + " 配置文件成功重载"); - } catch (Exception ignored) { - TLib.getTLib().getLogger().warn("插件 " + plugin.getName() + " 的 " + config.name() + " 配置文件重载时发生错误"); - } - } - ); - } - } - } - } catch (Exception ignored) { - } - } - } - - private static void injectLogger(Plugin plugin, Object o) { - for (Field field : Ref.getDeclaredFields(o.getClass())) { - try { - Logger logger; - if ((logger = field.getAnnotation(Logger.class)) != null) { - field.getType().asSubclass(TLogger.class); - TLogger tLogger = new TLogger(logger.value(), plugin, logger.level()); - if (!field.isAccessible()) - field.setAccessible(true); - field.set(o, tLogger); - } - } catch (Exception ignored2) { - } - } - } - - private static void injectPluginInstance(Plugin plugin, Object o) { - for (Field field : Ref.getDeclaredFields(o.getClass())) { - try { - PluginInstance instance; - if ((instance = field.getAnnotation(PluginInstance.class)) != null) { - if (!field.isAccessible()) - field.setAccessible(true); - field.getType().asSubclass(JavaPlugin.class); - Plugin pl; - if ((pl = Bukkit.getPluginManager().getPlugin(instance.value())) == null) { - if (!TDependency.requestPlugin(instance.value())) { - TLib.getTLib().getLogger().warn(plugin.getName() + " 所需的依赖插件 " + instance.value() + " 自动加载失败"); - return; - } else { - pl = Bukkit.getPluginManager().getPlugin(instance.value()); - } - } - if (pl != null) - field.set(o, pl); - } - } catch (Exception ignored) { - } - } - } - - private static void injectDependencies(Plugin plugin, Object o) { - Dependency[] dependencies = new Dependency[0]; - { - Dependencies d = o.getClass().getAnnotation(Dependencies.class); - if (d != null) { - dependencies = d.value(); - } - Dependency d2 = o.getClass().getAnnotation(Dependency.class); - if (d2 != null) { - dependencies = new Dependency[]{d2}; - } - } - if (dependencies.length != 0) { - TLib.getTLib().getLogger().info("正在加载 " + 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() + " 加载成功。"); - } else { - TLib.getTLib().getLogger().warn(" " + 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()) + " 加载成功。"); - } else { - TLib.getTLib().getLogger().warn(" " + plugin.getName() + " 请求的库文件 " + String.join(":", dependency.maven()) + " 加载失败。"); - } - } - } - TLib.getTLib().getLogger().info("依赖加载完成"); - } - } - -} diff --git a/src/main/java/com/ilummc/tlib/inject/TLibPluginManager.java b/src/main/java/com/ilummc/tlib/inject/TLibPluginManager.java deleted file mode 100644 index 42f640d..0000000 --- a/src/main/java/com/ilummc/tlib/inject/TLibPluginManager.java +++ /dev/null @@ -1,174 +0,0 @@ -package com.ilummc.tlib.inject; - -import me.skymc.taboolib.Main; -import org.bukkit.Bukkit; -import org.bukkit.event.Event; -import org.bukkit.event.EventPriority; -import org.bukkit.event.Listener; -import org.bukkit.permissions.Permissible; -import org.bukkit.permissions.Permission; -import org.bukkit.plugin.*; - -import java.io.File; -import java.util.Set; - -public class TLibPluginManager implements PluginManager { - - private final PluginManager instance; - - private final Main main = (Main) Main.getInst(); - - public TLibPluginManager() { - instance = Bukkit.getPluginManager(); - } - - @Override - public void registerInterface(Class aClass) throws IllegalArgumentException { - instance.registerInterface(aClass); - } - - @Override - public Plugin getPlugin(String s) { - return instance.getPlugin(s); - } - - @Override - public Plugin[] getPlugins() { - return instance.getPlugins(); - } - - @Override - public boolean isPluginEnabled(String s) { - return instance.isPluginEnabled(s); - } - - @Override - public boolean isPluginEnabled(Plugin plugin) { - return instance.isPluginEnabled(plugin); - } - - @Override - public Plugin loadPlugin(File file) throws InvalidPluginException, InvalidDescriptionException, UnknownDependencyException { - return instance.loadPlugin(file); - } - - @Override - public Plugin[] loadPlugins(File file) { - return instance.loadPlugins(file); - } - - @Override - public void disablePlugins() { - for (Plugin plugin : getPlugins()) { - if (plugin != main) disablePlugin(plugin); - } - disablePlugin(main); - } - - @Override - public void clearPlugins() { - instance.clearPlugins(); - } - - @Override - public void callEvent(Event event) throws IllegalStateException { - instance.callEvent(event); - } - - @Override - public void registerEvents(Listener listener, Plugin plugin) { - instance.registerEvents(listener, plugin); - } - - @Override - public void registerEvent(Class aClass, Listener listener, EventPriority eventPriority, EventExecutor eventExecutor, Plugin plugin) { - instance.registerEvent(aClass, listener, eventPriority, eventExecutor, plugin); - } - - @Override - public void registerEvent(Class aClass, Listener listener, EventPriority eventPriority, EventExecutor eventExecutor, Plugin plugin, boolean b) { - instance.registerEvent(aClass, listener, eventPriority, eventExecutor, plugin, b); - } - - @Override - public void enablePlugin(Plugin plugin) { - DependencyInjector.injectOnEnable(plugin); - instance.enablePlugin(plugin); - } - - @Override - public void disablePlugin(Plugin plugin) { - DependencyInjector.onDisable(plugin); - instance.disablePlugin(plugin); - } - - @Override - public Permission getPermission(String s) { - return instance.getPermission(s); - } - - @Override - public void addPermission(Permission permission) { - instance.addPermission(permission); - } - - @Override - public void removePermission(Permission permission) { - instance.removePermission(permission); - } - - @Override - public void removePermission(String s) { - instance.removePermission(s); - } - - @Override - public Set getDefaultPermissions(boolean b) { - return instance.getDefaultPermissions(b); - } - - @Override - public void recalculatePermissionDefaults(Permission permission) { - instance.recalculatePermissionDefaults(permission); - } - - @Override - public void subscribeToPermission(String s, Permissible permissible) { - instance.subscribeToPermission(s, permissible); - } - - @Override - public void unsubscribeFromPermission(String s, Permissible permissible) { - instance.unsubscribeFromPermission(s, permissible); - } - - @Override - public Set getPermissionSubscriptions(String s) { - return instance.getPermissionSubscriptions(s); - } - - @Override - public void subscribeToDefaultPerms(boolean b, Permissible permissible) { - instance.subscribeToDefaultPerms(b, permissible); - } - - @Override - public void unsubscribeFromDefaultPerms(boolean b, Permissible permissible) { - instance.unsubscribeFromDefaultPerms(b, permissible); - } - - @Override - public Set getDefaultPermSubscriptions(boolean b) { - return instance.getDefaultPermSubscriptions(b); - } - - @Override - public Set getPermissions() { - return instance.getPermissions(); - } - - @Override - public boolean useTimings() { - return instance.useTimings(); - } -} diff --git a/src/main/java/com/ilummc/tlib/resources/LocaleInstance.java b/src/main/java/com/ilummc/tlib/resources/LocaleInstance.java deleted file mode 100644 index aec3862..0000000 --- a/src/main/java/com/ilummc/tlib/resources/LocaleInstance.java +++ /dev/null @@ -1,65 +0,0 @@ -package com.ilummc.tlib.resources; - -import com.google.common.collect.ImmutableList; -import org.bukkit.command.CommandSender; -import org.bukkit.configuration.ConfigurationSection; -import org.bukkit.configuration.file.YamlConfiguration; - -import javax.annotation.concurrent.ThreadSafe; -import java.util.Collections; -import java.util.List; -import java.util.Map; -import java.util.concurrent.ConcurrentHashMap; -import java.util.function.Function; -import java.util.stream.Collectors; - -@ThreadSafe -class LocaleInstance { - - private static final Function TO_SENDABLE = o -> { - if (o instanceof Sendable) return ((Sendable) o); - else if (o instanceof String) return SimpleChatMessage.of(((String) o)); - else return SimpleChatMessage.of(String.valueOf(o)); - }; - - LocaleInstance() { - } - - private final Map> map = new ConcurrentHashMap<>(); - - void sendTo(String path, CommandSender sender) { - map.getOrDefault(path, ImmutableList.of(Sendable.EMPTY)).forEach(sendable -> sendable.sendTo(sender)); - } - - void sendTo(String path, CommandSender sender, String... args) { - map.getOrDefault(path, ImmutableList.of(Sendable.EMPTY)).forEach(sendable -> sendable.sendTo(sender, args)); - System.out.println(map.toString()); - } - - void load(YamlConfiguration configuration) { - configuration.getKeys(false).forEach(s -> { - Object object = configuration.get(s); - if (object instanceof ConfigurationSection) - loadRecursively(s, (ConfigurationSection) object); - else if (object instanceof Sendable) - map.put(s, Collections.singletonList((Sendable) object)); - else if (object instanceof List && !((List) object).isEmpty()) - map.put(s, ((List) object).stream().map(TO_SENDABLE).collect(Collectors.toList())); - else map.put(s, Collections.singletonList(SimpleChatMessage.of(String.valueOf(object)))); - }); - } - - private void loadRecursively(String path, ConfigurationSection section) { - section.getKeys(false).forEach(s -> { - Object object = section.get(path + "." + s); - if (object instanceof ConfigurationSection) - loadRecursively(path + "." + s, (ConfigurationSection) object); - else if (object instanceof Sendable) - map.put(path + "." + s, Collections.singletonList((Sendable) object)); - else if (object instanceof List && !((List) object).isEmpty()) - map.put(path + "." + s, ((List) object).stream().map(TO_SENDABLE).collect(Collectors.toList())); - else map.put(path + "." + s, Collections.singletonList(SimpleChatMessage.of(String.valueOf(object)))); - }); - } - -} diff --git a/src/main/java/com/ilummc/tlib/resources/LocaleLoader.java b/src/main/java/com/ilummc/tlib/resources/LocaleLoader.java deleted file mode 100644 index 9767d43..0000000 --- a/src/main/java/com/ilummc/tlib/resources/LocaleLoader.java +++ /dev/null @@ -1,76 +0,0 @@ -package com.ilummc.tlib.resources; - -import com.ilummc.tlib.TLib; -import com.ilummc.tlib.inject.TConfigInjector; -import me.skymc.taboolib.Main; -import org.bukkit.command.CommandSender; -import org.bukkit.configuration.file.YamlConfiguration; -import org.bukkit.configuration.serialization.ConfigurationSerialization; -import org.bukkit.plugin.Plugin; - -import java.io.File; -import java.io.InputStream; -import java.io.InputStreamReader; -import java.nio.charset.Charset; -import java.nio.file.Files; -import java.nio.file.StandardOpenOption; -import java.util.HashMap; -import java.util.Map; -import java.util.Optional; - -public class LocaleLoader { - - private static final Map map = new HashMap<>(); - - static void sendTo(Plugin plugin, String path, CommandSender sender, String... args) { - Optional.ofNullable(map.get(plugin.getName())).ifPresent(localeInstance -> localeInstance.sendTo(path, sender, args)); - } - - static void sendTo(Plugin plugin, String path, CommandSender sender) { - Optional.ofNullable(map.get(plugin.getName())).ifPresent(localeInstance -> localeInstance.sendTo(path, sender)); - } - - public static void init() { - ConfigurationSerialization.registerClass(SimpleChatMessage.class); - ConfigurationSerialization.registerClass(SimpleChatMessage.class, "Message"); - ConfigurationSerialization.registerClass(SimpleChatMessage.class, "MESSAGE"); - ConfigurationSerialization.registerClass(SimpleChatMessage.class, "TEXT"); - ConfigurationSerialization.registerClass(SimpleChatMessage.class, "Text"); - } - - public static void load(Plugin plugin, boolean ignoreLoaded) { - try { - if ((!ignoreLoaded || !map.containsKey(plugin.getName())) && plugin == Main.getInst() || - plugin.getDescription().getDepend().contains("TabooLib") || plugin.getDescription().getSoftDepend().contains("TabooLib")) { - InputStream inputStream = null; - File file = null; - String lang = null; - for (String s : TLib.getTLib().getConfig().getLocale()) { - lang = s; - file = new File(plugin.getDataFolder(), "/lang/" + s + ".yml"); - if (file.exists()) { - inputStream = Files.newInputStream(file.toPath(), StandardOpenOption.READ); - break; - } else if ((inputStream = plugin.getClass().getResourceAsStream("/lang/" + s + ".yml")) != null) - break; - } - if (inputStream == null) return; - TLib.getTLib().getLogger().info("尝试加载 " + lang + ".yml 作为语言文件"); - YamlConfiguration configuration = YamlConfiguration.loadConfiguration(new InputStreamReader(inputStream, Charset.forName("utf-8"))); - LocaleInstance localeInstance = new LocaleInstance(); - localeInstance.load(configuration); - map.put(plugin.getName(), localeInstance); - TConfigInjector.fixUnicode(configuration); - if (!file.exists()) { - file.getParentFile().mkdirs(); - file.createNewFile(); - } - configuration.save(file); - TLib.getTLib().getLogger().info("成功加载 " + lang + " 语言文件"); - } - } catch (Exception e) { - TLib.getTLib().getLogger().error("载入语言文件发生异常:" + e.toString()); - } - } - -} diff --git a/src/main/java/com/ilummc/tlib/resources/Sendable.java b/src/main/java/com/ilummc/tlib/resources/Sendable.java deleted file mode 100644 index e033cb4..0000000 --- a/src/main/java/com/ilummc/tlib/resources/Sendable.java +++ /dev/null @@ -1,21 +0,0 @@ -package com.ilummc.tlib.resources; - -import org.bukkit.command.CommandSender; - -public interface Sendable { - - Sendable EMPTY = new Sendable() { - @Override - public void sendTo(CommandSender sender) { - } - - @Override - public void sendTo(CommandSender sender, String... args) { - } - }; - - void sendTo(CommandSender sender); - - void sendTo(CommandSender sender, String... args); - -} diff --git a/src/main/java/com/ilummc/tlib/resources/SimpleChatMessage.java b/src/main/java/com/ilummc/tlib/resources/SimpleChatMessage.java deleted file mode 100644 index 7e8781d..0000000 --- a/src/main/java/com/ilummc/tlib/resources/SimpleChatMessage.java +++ /dev/null @@ -1,95 +0,0 @@ -package com.ilummc.tlib.resources; - -import com.google.common.collect.ImmutableList; -import com.google.common.collect.ImmutableMap; -import com.google.common.collect.Maps; -import com.ilummc.tlib.TLib; -import com.ilummc.tlib.compat.PlaceholderApiHook; -import com.ilummc.tlib.util.Strings; -import org.bukkit.ChatColor; -import org.bukkit.command.CommandSender; -import org.bukkit.configuration.serialization.ConfigurationSerializable; -import org.bukkit.configuration.serialization.SerializableAs; - -import javax.annotation.concurrent.Immutable; -import java.util.Arrays; -import java.util.List; -import java.util.Map; -import java.util.Objects; -import java.util.stream.Collectors; - -@Immutable -@SerializableAs("TEXT") -@SuppressWarnings("unchecked") -public class SimpleChatMessage implements Sendable, ConfigurationSerializable { - - private final Object text; - - private final boolean usePlaceholder; - - private SimpleChatMessage(Object text, boolean usePlaceholder) { - this.usePlaceholder = usePlaceholder; - if (text instanceof String) - this.text = text; - else if (text instanceof List) - this.text = ImmutableList.copyOf(((List) text)); - else - throw new IllegalArgumentException("Param 'text' can only be an instance of String or String[] or List"); - } - - @Override - public void sendTo(CommandSender sender) { - if (text instanceof String) - sender.sendMessage(replaceMsg(sender, (String) text)); - else if (text instanceof List) - ((List) text).forEach(s -> sender.sendMessage(replaceMsg(sender, String.valueOf(s)))); - } - - @Override - public void sendTo(CommandSender sender, String... args) { - if (text instanceof String) - sender.sendMessage(replaceMsg(sender, Strings.replaceWithOrder((String) text, args))); - else if (text instanceof List) - ((List) text).forEach(s -> sender.sendMessage(replaceMsg(sender, Strings.replaceWithOrder(String.valueOf(s), args)))); - } - - private String replaceMsg(CommandSender sender, String s) { - return usePlaceholder ? PlaceholderApiHook.replace(sender, s) : s; - } - - @Override - public String toString() { - if (text instanceof String[]) return Arrays.toString((String[]) text); - else return text.toString(); - } - - @Override - public Map serialize() { - if (usePlaceholder) return Maps.newHashMap(ImmutableMap.of("text", text, "papi", true)); - return Maps.newHashMap(ImmutableMap.of("text", text)); - } - - public static SimpleChatMessage valueOf(Map map) { - if (map.containsKey("text")) { - Object object = map.get("text"); - Object objPapi = map.getOrDefault("papi", TLib.getTLib().getConfig().isEnablePapiByDefault()); - boolean papi = objPapi instanceof Boolean ? (boolean) objPapi : objPapi instanceof String && objPapi.equals("true"); - if (object instanceof List) - return new SimpleChatMessage(((List) object).stream() - .map(s -> ChatColor.translateAlternateColorCodes('&', s)) - .collect(Collectors.toList()), papi); - else if (object instanceof String[]) - return new SimpleChatMessage(Arrays.stream(((String[]) object)) - .map(s -> ChatColor.translateAlternateColorCodes('&', s)) - .collect(Collectors.toList()), papi); - else - return new SimpleChatMessage(ChatColor.translateAlternateColorCodes('&', Objects.toString(object)), papi); - } - return new SimpleChatMessage("§cError chat message loaded.", TLib.getTLib().getConfig().isEnablePapiByDefault()); - } - - public static SimpleChatMessage of(String s) { - return new SimpleChatMessage(ChatColor.translateAlternateColorCodes('&', s), TLib.getTLib().getConfig().isEnablePapiByDefault()); - } - -} diff --git a/src/main/java/com/ilummc/tlib/resources/TLocaleLoader.java b/src/main/java/com/ilummc/tlib/resources/TLocaleLoader.java index 966334a..86346fe 100644 --- a/src/main/java/com/ilummc/tlib/resources/TLocaleLoader.java +++ b/src/main/java/com/ilummc/tlib/resources/TLocaleLoader.java @@ -38,7 +38,7 @@ public class TLocaleLoader { } static String asString(Plugin plugin, String path) { - return Optional.ofNullable(map.get(plugin.getName())).get().asString(path); + return map.get(plugin.getName()).asString(path); } public static void init() { diff --git a/src/main/java/com/ilummc/tlib/util/TLogger.java b/src/main/java/com/ilummc/tlib/util/TLogger.java deleted file mode 100644 index bbbe2bf..0000000 --- a/src/main/java/com/ilummc/tlib/util/TLogger.java +++ /dev/null @@ -1,65 +0,0 @@ -package com.ilummc.tlib.util; - -import org.bukkit.Bukkit; -import org.bukkit.ChatColor; -import org.bukkit.plugin.Plugin; - -import lombok.Getter; -import lombok.Setter; - -public class TLogger { - - public static final int VERBOSE = 0, FINEST = 1, FINE = 2, INFO = 3, WARN = 4, ERROR = 5, FATAL = 6; - - @Getter - private final String pattern; - - @Getter - private Plugin plugin; - - @Getter - @Setter - private int level; - - public TLogger(String pattern, Plugin plugin, int level) { - this.pattern = pattern; - this.plugin = plugin; - this.level = level; - } - - public void verbose(String msg) { - if (level <= VERBOSE) - Bukkit.getConsoleSender().sendMessage(Strings.replaceWithOrder(pattern, plugin.getName(), "§f全部", ChatColor.translateAlternateColorCodes('&', msg))); - } - - public void finest(String msg) { - if (level <= FINEST) - Bukkit.getConsoleSender().sendMessage(Strings.replaceWithOrder(pattern, plugin.getName(), "§e良好", ChatColor.translateAlternateColorCodes('&', msg))); - } - - public void fine(String msg) { - if (level <= FINE) - Bukkit.getConsoleSender().sendMessage(Strings.replaceWithOrder(pattern, plugin.getName(), "§a正常", ChatColor.translateAlternateColorCodes('&', msg))); - } - - public void info(String msg) { - if (level <= INFO) - Bukkit.getConsoleSender().sendMessage(Strings.replaceWithOrder(pattern, plugin.getName(), "§b信息", ChatColor.translateAlternateColorCodes('&', msg))); - } - - public void warn(String msg) { - if (level <= WARN) - Bukkit.getConsoleSender().sendMessage(Strings.replaceWithOrder(pattern, plugin.getName(), "§6警告", "§6" + ChatColor.translateAlternateColorCodes('&', msg))); - } - - public void error(String msg) { - if (level <= ERROR) - Bukkit.getConsoleSender().sendMessage(Strings.replaceWithOrder(pattern, plugin.getName(), "§c错误", "§c" + ChatColor.translateAlternateColorCodes('&', msg))); - } - - public void fatal(String msg) { - if (level <= FATAL) - Bukkit.getConsoleSender().sendMessage(Strings.replaceWithOrder(pattern, plugin.getName(), "§4致命错误", "§4" + ChatColor.translateAlternateColorCodes('&', msg))); - } - -}