1
mirror of https://github.com/CarmJos/ScriptItems synced 2026-06-04 20:37:33 +08:00

feat(execute): 支持以OP身份执行命令

This commit is contained in:
2023-02-07 22:29:52 +08:00
parent 0c56954402
commit 4f86daa541
35 changed files with 686 additions and 825 deletions
@@ -1,65 +1,59 @@
package cc.carm.plugin.scriptitems;
import cc.carm.lib.configuration.core.source.ConfigurationProvider;
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.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.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 ConfigurationProvider<?> configProvider;
protected ConfigurationProvider<?> messageProvider;
protected ConfigManager configManager;
protected ItemsManager itemsManager;
@Override
protected boolean initialize() {
info("加载配置文件...");
this.configManager = new ConfigManager(this);
if (!configManager.initConfig()) {
severe("配置文件初始化失败,请检查。");
setEnabled(false);
return false;
}
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 ScriptItemsCommand());
registerCommand("ScriptItems", new MainCommand(this));
info("注册监听器...");
regListener(new ItemListener());
registerListener(new ItemListener());
if (PluginConfig.METRICS.get()) {
if (PluginConfig.METRICS.getNotNull()) {
info("启用统计数据...");
new Metrics(this, 14615);
}
if (PluginConfig.CHECK_UPDATE.get()) {
if (PluginConfig.CHECK_UPDATE.getNotNull()) {
log("开始检查更新...");
GHUpdateChecker checker = new GHUpdateChecker(getLogger(), "CarmJos", "CommandItem");
getScheduler().runAsync(() -> checker.checkUpdate(getDescription().getVersion()));
getScheduler().runAsync(GHUpdateChecker.runner(this));
} else {
log("已禁用检查更新,跳过。");
}
@@ -77,12 +71,11 @@ public class Main extends EasyPlugin {
@Override
public boolean isDebugging() {
return PluginConfig.DEBUG.get();
return PluginConfig.DEBUG.getNotNull();
}
@Override
public void outputInfo() {
Optional.ofNullable(JarResourceUtils.readResource(this.getResource("PLUGIN_INFO"))).ifPresent(this::log);
public static Main getInstance() {
return instance;
}
public static void info(String... messages) {
@@ -96,4 +89,12 @@ public class Main extends EasyPlugin {
public static void debugging(String... messages) {
getInstance().debug(messages);
}
public ConfigurationProvider<?> getConfigProvider() {
return configProvider;
}
public ConfigurationProvider<?> getMessageProvider() {
return messageProvider;
}
}