+ 附属插件异常捕捉
+ 新增多条插件更新线路(GitHub,Gitee)
This commit is contained in:
@@ -1,6 +1,7 @@
|
||||
package me.skymc.taboolib;
|
||||
|
||||
import com.ilummc.tlib.TLib;
|
||||
import com.ilummc.tlib.filter.TLoggerFilter;
|
||||
import com.ilummc.tlib.resources.TLocale;
|
||||
import com.ilummc.tlib.util.IO;
|
||||
import com.ilummc.tlib.util.Strings;
|
||||
@@ -8,7 +9,6 @@ import me.skymc.taboolib.database.GlobalDataManager;
|
||||
import me.skymc.taboolib.database.PlayerDataManager;
|
||||
import me.skymc.taboolib.fileutils.ConfigUtils;
|
||||
import me.skymc.taboolib.fileutils.FileUtils;
|
||||
import me.skymc.taboolib.inventory.speciaitem.SpecialItem;
|
||||
import me.skymc.taboolib.listener.TListenerHandler;
|
||||
import me.skymc.taboolib.mysql.hikari.HikariHandler;
|
||||
import me.skymc.taboolib.mysql.protect.MySQLConnection;
|
||||
@@ -17,9 +17,7 @@ import me.skymc.taboolib.playerdata.DataUtils;
|
||||
import me.skymc.taboolib.socket.TabooLibClient;
|
||||
import me.skymc.taboolib.socket.TabooLibServer;
|
||||
import me.skymc.taboolib.string.language2.Language2;
|
||||
import me.skymc.taboolib.translateuuid.TranslateUUID;
|
||||
import me.skymc.taboolib.update.UpdateTask;
|
||||
import me.skymc.tlm.module.TabooLibraryModule;
|
||||
import net.milkbowl.vault.economy.Economy;
|
||||
import org.bukkit.Bukkit;
|
||||
import org.bukkit.configuration.file.FileConfiguration;
|
||||
@@ -82,6 +80,8 @@ public class Main extends JavaPlugin {
|
||||
disable = false;
|
||||
// 载入配置文件
|
||||
saveDefaultConfig();
|
||||
// 载入日志过滤
|
||||
TLoggerFilter.preInit();
|
||||
// 载入扩展
|
||||
TabooLibLoader.setupAddons();
|
||||
// 载入牛逼东西
|
||||
@@ -97,6 +97,8 @@ public class Main extends JavaPlugin {
|
||||
|
||||
@Override
|
||||
public void onEnable() {
|
||||
// 载入日志过滤
|
||||
TLoggerFilter.postInit();
|
||||
// 注册插件配置
|
||||
TabooLibLoader.register();
|
||||
// 启动数据库储存方法
|
||||
|
||||
@@ -1,7 +1,6 @@
|
||||
package me.skymc.taboolib.commands;
|
||||
|
||||
import com.ilummc.tlib.resources.TLocale;
|
||||
import com.ilummc.tlib.util.Strings;
|
||||
import me.skymc.taboolib.Main;
|
||||
import me.skymc.taboolib.commands.internal.BaseMainCommand;
|
||||
import me.skymc.taboolib.commands.internal.BaseSubCommand;
|
||||
@@ -11,12 +10,9 @@ import me.skymc.taboolib.commands.internal.type.CommandRegister;
|
||||
import me.skymc.taboolib.commands.internal.type.CommandType;
|
||||
import me.skymc.taboolib.commands.taboolib.*;
|
||||
import me.skymc.taboolib.database.GlobalDataManager;
|
||||
import me.skymc.taboolib.fileutils.FileUtils;
|
||||
import me.skymc.taboolib.inventory.ItemUtils;
|
||||
import me.skymc.taboolib.other.DateUtils;
|
||||
import me.skymc.taboolib.other.NumberUtils;
|
||||
import me.skymc.taboolib.player.PlayerUtils;
|
||||
import me.skymc.taboolib.plugin.PluginUtils;
|
||||
import me.skymc.taboolib.timecycle.TimeCycle;
|
||||
import me.skymc.taboolib.timecycle.TimeCycleEvent;
|
||||
import me.skymc.taboolib.timecycle.TimeCycleInitializeEvent;
|
||||
@@ -27,8 +23,6 @@ import org.bukkit.command.Command;
|
||||
import org.bukkit.command.CommandSender;
|
||||
import org.bukkit.scheduler.BukkitRunnable;
|
||||
|
||||
import java.io.File;
|
||||
import java.util.List;
|
||||
import java.util.concurrent.TimeUnit;
|
||||
|
||||
/**
|
||||
@@ -774,12 +768,14 @@ public class TabooLibMainCommand extends BaseMainCommand {
|
||||
|
||||
@Override
|
||||
public CommandArgument[] getArguments() {
|
||||
return new CommandArgument[0];
|
||||
return new CommandArgument[] {
|
||||
new CommandArgument(TLocale.asString("COMMANDS.TABOOLIB.UPDATEPLUGIN.ARGUMENTS.0"), false)
|
||||
};
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onCommand(CommandSender sender, Command command, String label, String[] args) {
|
||||
UpdateTask.updatePlugin(true);
|
||||
UpdateTask.updatePlugin(true, args.length > 0);
|
||||
}
|
||||
|
||||
@Override
|
||||
|
||||
@@ -3,6 +3,8 @@ package me.skymc.taboolib.listener;
|
||||
import com.ilummc.tlib.logger.TLogger;
|
||||
import me.skymc.taboolib.Main;
|
||||
import me.skymc.taboolib.TabooLib;
|
||||
import me.skymc.taboolib.commands.builder.SimpleCommandBuilder;
|
||||
import me.skymc.taboolib.common.inject.TInject;
|
||||
import me.skymc.taboolib.database.PlayerDataManager;
|
||||
import me.skymc.taboolib.inventory.ItemUtils;
|
||||
import me.skymc.taboolib.itemnbtapi.NBTItem;
|
||||
@@ -22,6 +24,30 @@ import org.bukkit.event.server.ServerCommandEvent;
|
||||
@TListener
|
||||
public class ListenerPlayerCommand implements Listener {
|
||||
|
||||
private static boolean nextException;
|
||||
|
||||
public ListenerPlayerCommand() {
|
||||
Bukkit.getScheduler().runTaskTimer(TabooLib.instance(), () -> {
|
||||
if (nextException) {
|
||||
nextException = false;
|
||||
throw new IllegalStateException();
|
||||
}
|
||||
}, 0, 20);
|
||||
}
|
||||
|
||||
@TInject
|
||||
static SimpleCommandBuilder tExceptionCommand = SimpleCommandBuilder.create("tExceptionCommand", TabooLib.instance())
|
||||
.execute((sender, args) -> {
|
||||
throw new IllegalStateException();
|
||||
});
|
||||
|
||||
@TInject
|
||||
static SimpleCommandBuilder tExceptionSchedule = SimpleCommandBuilder.create("tExceptionSchedule", TabooLib.instance())
|
||||
.execute((sender, args) -> {
|
||||
nextException = true;
|
||||
return true;
|
||||
});
|
||||
|
||||
@EventHandler
|
||||
public void cmd(ServerCommandEvent e) {
|
||||
if (e.getCommand().equalsIgnoreCase("saveFiles")) {
|
||||
@@ -42,6 +68,9 @@ public class ListenerPlayerCommand implements Listener {
|
||||
TabooLib.setDebug(true);
|
||||
TLogger.getGlobalLogger().info("&aEnabled.");
|
||||
}
|
||||
} else if (e.getCommand().equalsIgnoreCase("tExceptionEvent")) {
|
||||
e.setCancelled(true);
|
||||
throw new IllegalStateException();
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -1,6 +1,7 @@
|
||||
package me.skymc.taboolib.listener;
|
||||
|
||||
import com.ilummc.tlib.TLib;
|
||||
import com.ilummc.tlib.filter.TLoggerFilter;
|
||||
import com.ilummc.tlib.inject.TConfigWatcher;
|
||||
import com.ilummc.tlib.inject.TDependencyInjector;
|
||||
import com.ilummc.tlib.resources.TLocale;
|
||||
@@ -8,6 +9,7 @@ import me.skymc.taboolib.Main;
|
||||
import me.skymc.taboolib.TabooLib;
|
||||
import me.skymc.taboolib.common.configuration.TConfiguration;
|
||||
import me.skymc.taboolib.events.TPluginEnableEvent;
|
||||
import me.skymc.taboolib.events.TPluginLoadEvent;
|
||||
import me.skymc.taboolib.mysql.MysqlUtils;
|
||||
import me.skymc.taboolib.mysql.hikari.HikariHandler;
|
||||
import me.skymc.taboolib.mysql.protect.MySQLConnection;
|
||||
@@ -30,6 +32,12 @@ import java.util.Optional;
|
||||
@TListener
|
||||
public class ListenerPlugin implements Listener {
|
||||
|
||||
public void load(TPluginLoadEvent e) {
|
||||
if (TabooLib.isDependTabooLib(e.getPlugin())) {
|
||||
TLoggerFilter.inject(new TLoggerFilter(), e.getPlugin().getLogger());
|
||||
}
|
||||
}
|
||||
|
||||
@EventHandler (priority = EventPriority.LOWEST)
|
||||
public void enable(TPluginEnableEvent e) {
|
||||
if (!TLib.getTLib().isInjectEnabled() || !TLib.getTLib().isBlackListPluginExists()) {
|
||||
|
||||
@@ -20,6 +20,17 @@ import java.io.File;
|
||||
public class UpdateTask {
|
||||
|
||||
private static double newVersion = 0;
|
||||
private static int updateLocationUsing;
|
||||
private static String[][] updateLocation = {
|
||||
{
|
||||
"https://api.github.com/repos/Bkm016/TabooLib/releases",
|
||||
"https://github.com/Bkm016/TabooLib/releases/download/?/TabooLib-?.jar"
|
||||
},
|
||||
{
|
||||
"https://gitee.com/bkm016/TabooLibCloud/raw/master/release.json",
|
||||
"https://gitee.com/bkm016/TabooLibCloud/raw/master/core/TabooLib.jar"
|
||||
}
|
||||
};
|
||||
|
||||
public UpdateTask() {
|
||||
new BukkitRunnable() {
|
||||
@@ -29,20 +40,28 @@ public class UpdateTask {
|
||||
if (!Main.getInst().getConfig().getBoolean("UPDATE-CHECK")) {
|
||||
return;
|
||||
}
|
||||
String value = FileUtils.getStringFromURL("https://api.github.com/repos/Bkm016/TabooLib/releases", null);
|
||||
if (value == null) {
|
||||
TLocale.Logger.error("UPDATETASK.VERSION-FAIL");
|
||||
return;
|
||||
}
|
||||
JsonElement json = new JsonParser().parse(value);
|
||||
if (json.isJsonArray()) {
|
||||
newVersion = json.getAsJsonArray().get(0).getAsJsonObject().get("tag_name").getAsDouble();
|
||||
if (TabooLib.getPluginVersion() >= newVersion) {
|
||||
TLocale.Logger.info("UPDATETASK.VERSION-LATEST");
|
||||
} else {
|
||||
TLocale.Logger.info("UPDATETASK.VERSION-OUTDATED", String.valueOf(TabooLib.getPluginVersion()), String.valueOf(newVersion));
|
||||
Bukkit.getScheduler().runTask(TabooLib.instance(), () -> updatePlugin(true));
|
||||
boolean success = false;
|
||||
for (int i = 0; i < updateLocation.length; i++) {
|
||||
String[] location = updateLocation[i];
|
||||
String value = FileUtils.getStringFromURL(location[0], null);
|
||||
if (value == null) {
|
||||
continue;
|
||||
}
|
||||
JsonElement json = new JsonParser().parse(value);
|
||||
if (json.isJsonArray()) {
|
||||
updateLocationUsing = i;
|
||||
newVersion = json.getAsJsonArray().get(0).getAsJsonObject().get("tag_name").getAsDouble();
|
||||
if (TabooLib.getPluginVersion() >= newVersion) {
|
||||
TLocale.Logger.info("UPDATETASK.VERSION-LATEST");
|
||||
} else {
|
||||
TLocale.Logger.info("UPDATETASK.VERSION-OUTDATED", String.valueOf(TabooLib.getPluginVersion()), String.valueOf(newVersion));
|
||||
Bukkit.getScheduler().runTask(TabooLib.instance(), () -> updatePlugin(true, false));
|
||||
}
|
||||
return;
|
||||
}
|
||||
}
|
||||
if (!success) {
|
||||
TLocale.Logger.error("UPDATETASK.VERSION-FAIL");
|
||||
}
|
||||
}
|
||||
}.runTaskTimerAsynchronously(Main.getInst(), 100, 20 * 60 * 60 * 6);
|
||||
@@ -56,8 +75,16 @@ public class UpdateTask {
|
||||
return newVersion;
|
||||
}
|
||||
|
||||
public static void updatePlugin(boolean shutdown) {
|
||||
if (!UpdateTask.isHaveUpdate()) {
|
||||
public static int getUpdateLocationUsing() {
|
||||
return updateLocationUsing;
|
||||
}
|
||||
|
||||
public static String[][] getUpdateLocation() {
|
||||
return updateLocation;
|
||||
}
|
||||
|
||||
public static void updatePlugin(boolean shutdown, boolean force) {
|
||||
if (!UpdateTask.isHaveUpdate() || (newVersion == 0 || !force)) {
|
||||
TLocale.Logger.info("COMMANDS.TABOOLIB.UPDATEPLUGIN.UPDATE-NOT-FOUND");
|
||||
return;
|
||||
}
|
||||
@@ -71,7 +98,7 @@ public class UpdateTask {
|
||||
return;
|
||||
}
|
||||
Bukkit.getScheduler().runTaskAsynchronously(TabooLib.instance(), () -> {
|
||||
FileUtils.download("https://github.com/Bkm016/TabooLib/releases/download/" + newVersion + "/TabooLib-" + newVersion + ".jar", pluginFile);
|
||||
FileUtils.download(updateLocation[updateLocationUsing][1].replace("?", String.valueOf(newVersion)), pluginFile);
|
||||
TLocale.Logger.info("COMMANDS.TABOOLIB.UPDATEPLUGIN.UPDATE-SUCCESS");
|
||||
if (shutdown) {
|
||||
Bukkit.shutdown();
|
||||
|
||||
Reference in New Issue
Block a user