From 0978b20993a856170f28aed67518ac420e3e1a5c Mon Sep 17 00:00:00 2001 From: Xanadu13 Date: Mon, 18 Mar 2024 16:27:52 +0800 Subject: [PATCH] use sync --- .../enderdragon/manager/DragonManager.java | 92 +++++++++---------- .../enderdragon/manager/GuiManager.java | 35 +++---- 2 files changed, 58 insertions(+), 69 deletions(-) diff --git a/src/main/java/pers/xanadu/enderdragon/manager/DragonManager.java b/src/main/java/pers/xanadu/enderdragon/manager/DragonManager.java index 3ea3922..686a5f3 100644 --- a/src/main/java/pers/xanadu/enderdragon/manager/DragonManager.java +++ b/src/main/java/pers/xanadu/enderdragon/manager/DragonManager.java @@ -54,56 +54,50 @@ public class DragonManager { private static final Pattern pattern_attacker_top = Pattern.compile("%attacker_top_(\\d+)%"); public static void reload(){ - new BukkitRunnable(){ - @Override - public void run(){ - dragons.clear(); - mp.clear(); - dragon_names.clear(); - sum = 0; - if(Config.dragon_setting_file == null){ - Lang.error("\"dragon_setting_file\" in config.yml is empty!"); - Lang.warn("Plugin will use the default config..."); - Config.dragon_setting_file = new ArrayList<>(); - Config.dragon_setting_file.add("default:5"); - Config.dragon_setting_file.add("special:5"); - } - for(String str : Config.dragon_setting_file){ - String[] s = str.split(":"); - if(s.length != 2){ - Lang.error("\"dragon_setting_file\" in config.yml error! Key: " + str); - continue; - } - String path = "setting/" + s[0] + ".yml"; - int edge = -1; - try { - edge = Integer.parseInt(s[1]); - } catch (NumberFormatException ignored){} - if(edge < 0) { - Lang.error("\"dragon_setting_file\" in config.yml error! Key: " + str); - continue; - } - File file = new File(plugin.getDataFolder(),path); - if(!file.exists()) { - try{ - plugin.saveResource("setting/"+file.getName(),false); - file = new File(plugin.getDataFolder(),path); - }catch (Exception ignored){ - Lang.error("Not Found setting/" + s[0] + ".yml ,skipped it."); - continue; - } - } - FileConfiguration fc = YamlConfiguration.loadConfiguration(file); - if(!Version.setting_dragon.equals(fc.getString("version"))){ - Lang.warn(Lang.plugin_wrong_file_version.replace("{file_name}", file.getName())); - } - readSettingFile(fc,edge); - } - dragons.sort((o1, o2) -> o2.priority - o1.priority); - RewardManager.reload(); + dragons.clear(); + mp.clear(); + dragon_names.clear(); + sum = 0; + if(Config.dragon_setting_file == null){ + Lang.error("\"dragon_setting_file\" in config.yml is empty!"); + Lang.warn("Plugin will use the default config..."); + Config.dragon_setting_file = new ArrayList<>(); + Config.dragon_setting_file.add("default:5"); + Config.dragon_setting_file.add("special:5"); + } + for(String str : Config.dragon_setting_file){ + String[] s = str.split(":"); + if(s.length != 2){ + Lang.error("\"dragon_setting_file\" in config.yml error! Key: " + str); + continue; } - }.runTaskAsynchronously(plugin); - + String path = "setting/" + s[0] + ".yml"; + int edge = -1; + try { + edge = Integer.parseInt(s[1]); + } catch (NumberFormatException ignored){} + if(edge < 0) { + Lang.error("\"dragon_setting_file\" in config.yml error! Key: " + str); + continue; + } + File file = new File(plugin.getDataFolder(),path); + if(!file.exists()) { + try{ + plugin.saveResource("setting/"+file.getName(),false); + file = new File(plugin.getDataFolder(),path); + }catch (Exception ignored){ + Lang.error("Not Found setting/" + s[0] + ".yml ,skipped it."); + continue; + } + } + FileConfiguration fc = YamlConfiguration.loadConfiguration(file); + if(!Version.setting_dragon.equals(fc.getString("version"))){ + Lang.warn(Lang.plugin_wrong_file_version.replace("{file_name}", file.getName())); + } + readSettingFile(fc,edge); + } + dragons.sort((o1, o2) -> o2.priority - o1.priority); + RewardManager.reload(); } public static MyDragon judge(){ if(Config.special_dragon_jude_mode.equalsIgnoreCase("weight")){ diff --git a/src/main/java/pers/xanadu/enderdragon/manager/GuiManager.java b/src/main/java/pers/xanadu/enderdragon/manager/GuiManager.java index 1c8f50e..fa0b1e2 100644 --- a/src/main/java/pers/xanadu/enderdragon/manager/GuiManager.java +++ b/src/main/java/pers/xanadu/enderdragon/manager/GuiManager.java @@ -17,27 +17,22 @@ import static pers.xanadu.enderdragon.EnderDragon.plugin; public class GuiManager { private static HashMap f = new HashMap<>(); public static void loadGui(){ - new BukkitRunnable(){ - @Override - public void run(){ - File folder = new File(plugin.getDataFolder(),"gui"); - if(!folder.exists()) return; - File[] files = folder.listFiles(); - if(files == null) return; - for(File file : files){ - if(!file.getName().endsWith(".yml")) continue; - Lang.info(Lang.plugin_read_file + file.getName()); - FileConfiguration fileConfiguration = YamlConfiguration.loadConfiguration(file); - Iterator it = fileConfiguration.getKeys(false).iterator(); - while (it.hasNext()){ - String name = (String) it.next(); - ConfigurationSection section = fileConfiguration.getConfigurationSection(name); - GUIWrapper guiWrapper = new GUIWrapper(section); - f.put(name, guiWrapper); - } - } + File folder = new File(plugin.getDataFolder(),"gui"); + if(!folder.exists()) return; + File[] files = folder.listFiles(); + if(files == null) return; + for(File file : files){ + if(!file.getName().endsWith(".yml")) continue; + Lang.info(Lang.plugin_read_file + file.getName()); + FileConfiguration fileConfiguration = YamlConfiguration.loadConfiguration(file); + Iterator it = fileConfiguration.getKeys(false).iterator(); + while (it.hasNext()){ + String name = (String) it.next(); + ConfigurationSection section = fileConfiguration.getConfigurationSection(name); + GUIWrapper guiWrapper = new GUIWrapper(section); + f.put(name, guiWrapper); } - }.runTaskAsynchronously(plugin); + } } public static void disable(){ f.clear();