1
mirror of https://github.com/CarmJos/ScriptItems synced 2026-06-04 11:08:17 +08:00
Files
ScriptItems/src/main/java/cc/carm/plugin/scriptitems/Main.java
T

103 lines
2.8 KiB
Java

package cc.carm.plugin.scriptitems;
import cc.carm.lib.configuration.core.source.ConfigurationProvider;
import cc.carm.lib.easyplugin.EasyPlugin;
import cc.carm.lib.easyplugin.updatechecker.GHUpdateChecker;
import cc.carm.lib.mineconfiguration.bukkit.MineConfiguration;
import cc.carm.plugin.scriptitems.command.MainCommand;
import cc.carm.plugin.scriptitems.conf.PluginConfig;
import cc.carm.plugin.scriptitems.conf.PluginMessages;
import cc.carm.plugin.scriptitems.listener.ItemListener;
import cc.carm.plugin.scriptitems.listener.ProtectListener;
import cc.carm.plugin.scriptitems.manager.ItemsManager;
import org.bstats.bukkit.Metrics;
import org.bukkit.Bukkit;
public class Main extends EasyPlugin {
private static Main instance;
public Main() {
instance = this;
}
protected ConfigurationProvider<?> configProvider;
protected ConfigurationProvider<?> messageProvider;
protected ItemsManager itemsManager;
@Override
protected boolean initialize() {
log("加载插件配置文件...");
this.configProvider = MineConfiguration.from(this, "config.yml");
this.configProvider.initialize(PluginConfig.class);
this.messageProvider = MineConfiguration.from(this, "messages.yml");
this.messageProvider.initialize(PluginMessages.class);
info("加载物品配置...");
this.itemsManager = new ItemsManager();
this.itemsManager.initialize();
info("注册指令...");
registerCommand("ScriptItems", new MainCommand(this));
info("注册监听器...");
registerListener(new ItemListener());
registerListener(new ProtectListener(this));
if (PluginConfig.METRICS.getNotNull()) {
info("启用统计数据...");
new Metrics(this, 14615);
}
if (PluginConfig.CHECK_UPDATE.getNotNull()) {
log("开始检查更新...");
getScheduler().runAsync(GHUpdateChecker.runner(this));
} else {
log("已禁用检查更新,跳过。");
}
return true;
}
@Override
protected void shutdown() {
log("卸载监听器...");
Bukkit.getServicesManager().unregisterAll(this);
}
@Override
public boolean isDebugging() {
return PluginConfig.DEBUG.getNotNull();
}
public static Main getInstance() {
return instance;
}
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);
}
public ConfigurationProvider<?> getConfigProvider() {
return configProvider;
}
public ConfigurationProvider<?> getMessageProvider() {
return messageProvider;
}
}