1
mirror of https://github.com/CarmJos/ScriptItems synced 2026-06-04 20:37:33 +08:00
Files
ScriptItems/src/main/java/cc/carm/plugin/scriptitems/Main.java
T
2022-03-13 17:31:20 +08:00

100 lines
2.8 KiB
Java

package cc.carm.plugin.scriptitems;
import cc.carm.lib.easyplugin.EasyPlugin;
import cc.carm.lib.easyplugin.i18n.EasyPluginMessageProvider;
import cc.carm.plugin.scriptitems.command.ScriptItemsCommand;
import cc.carm.plugin.scriptitems.configuration.PluginConfig;
import cc.carm.plugin.scriptitems.hooker.GHUpdateChecker;
import cc.carm.plugin.scriptitems.listener.ItemListener;
import cc.carm.plugin.scriptitems.manager.ConfigManager;
import cc.carm.plugin.scriptitems.manager.ItemsManager;
import cc.carm.plugin.scriptitems.util.JarResourceUtils;
import org.bstats.bukkit.Metrics;
import org.bukkit.Bukkit;
import java.util.Optional;
public class Main extends EasyPlugin {
private static Main instance;
public Main() {
super(new EasyPluginMessageProvider.zh_CN());
instance = this;
}
public static Main getInstance() {
return instance;
}
protected ConfigManager configManager;
protected ItemsManager itemsManager;
@Override
protected boolean initialize() {
info("加载配置文件...");
this.configManager = new ConfigManager(this);
if (!configManager.initConfig()) {
severe("配置文件初始化失败,请检查。");
setEnabled(false);
return false;
}
info("加载物品配置...");
this.itemsManager = new ItemsManager();
this.itemsManager.initialize();
info("注册指令...");
registerCommand("ScriptItems", new ScriptItemsCommand());
info("注册监听器...");
regListener(new ItemListener());
if (PluginConfig.METRICS.get()) {
info("启用统计数据...");
new Metrics(this, 14615);
}
if (PluginConfig.CHECK_UPDATE.get()) {
log("开始检查更新...");
GHUpdateChecker checker = new GHUpdateChecker(getLogger(), "CarmJos", "CommandItem");
getScheduler().runAsync(() -> checker.checkUpdate(getDescription().getVersion()));
} else {
log("已禁用检查更新,跳过。");
}
return true;
}
@Override
protected void shutdown() {
log("卸载监听器...");
Bukkit.getServicesManager().unregisterAll(this);
}
@Override
public boolean isDebugging() {
return PluginConfig.DEBUG.get();
}
@Override
public void outputInfo() {
Optional.ofNullable(JarResourceUtils.readResource(this.getResource("PLUGIN_INFO"))).ifPresent(this::log);
}
public static void info(String... messages) {
getInstance().log(messages);
}
public static void severe(String... messages) {
getInstance().error(messages);
}
public static void debugging(String... messages) {
getInstance().debug(messages);
}
}