From 282dcba1f491704cac98d7b200009b295b405eac Mon Sep 17 00:00:00 2001 From: Xanadu13 <104714710+iXanadu13@users.noreply.github.com> Date: Fri, 5 Jan 2024 10:05:26 +0800 Subject: [PATCH] adapt bossbar save --- .../v1_16_R1_above/BossBarManager.java | 22 +++++++++++++------ 1 file changed, 15 insertions(+), 7 deletions(-) diff --git a/src/main/java/pers/xanadu/enderdragon/nms/BossBar/v1_16_R1_above/BossBarManager.java b/src/main/java/pers/xanadu/enderdragon/nms/BossBar/v1_16_R1_above/BossBarManager.java index 352fd4c..dfa714b 100644 --- a/src/main/java/pers/xanadu/enderdragon/nms/BossBar/v1_16_R1_above/BossBarManager.java +++ b/src/main/java/pers/xanadu/enderdragon/nms/BossBar/v1_16_R1_above/BossBarManager.java @@ -1,10 +1,7 @@ package pers.xanadu.enderdragon.nms.BossBar.v1_16_R1_above; import org.bukkit.World; -import org.bukkit.boss.BarColor; -import org.bukkit.boss.BarStyle; -import org.bukkit.boss.BossBar; -import org.bukkit.boss.DragonBattle; +import org.bukkit.boss.*; import org.bukkit.configuration.InvalidConfigurationException; import org.bukkit.configuration.file.YamlConfiguration; import pers.xanadu.enderdragon.config.Lang; @@ -21,14 +18,18 @@ public class BossBarManager implements I_BossBarManager { public void saveBossBarData(List worlds){ File file = new File(plugin.getDataFolder(),"world_data.yml"); YamlConfiguration yml = new YamlConfiguration(); + char split = yml.options().pathSeparator(); worlds.forEach(world -> { DragonBattle battle = world.getEnderDragonBattle(); if(battle == null) return; BossBar bossBar = battle.getBossBar(); - String path = world.getName() + yml.options().pathSeparator(); + String path = world.getName() + split; yml.set(path+"title",bossBar.getTitle()); yml.set(path+"color",bossBar.getColor().name()); yml.set(path+"style",bossBar.getStyle().name()); + yml.set(path+"create_frog",bossBar.hasFlag(BarFlag.CREATE_FOG)); + yml.set(path+"darken_sky",bossBar.hasFlag(BarFlag.DARKEN_SKY)); + yml.set(path+"play_boss_music",bossBar.hasFlag(BarFlag.PLAY_BOSS_MUSIC)); }); try{ yml.save(file); @@ -42,6 +43,7 @@ public class BossBarManager implements I_BossBarManager { if(!file.exists()) return; Lang.info("Enabling BossBar fix..."); YamlConfiguration yml = new YamlConfiguration(); + char split = yml.options().pathSeparator(); try{ yml.load(file); }catch (InvalidConfigurationException | IOException e) { @@ -52,12 +54,18 @@ public class BossBarManager implements I_BossBarManager { DragonBattle battle = world.getEnderDragonBattle(); if(battle == null) return; BossBar bossBar = battle.getBossBar(); - String path = world.getName() + yml.options().pathSeparator(); + String path = world.getName() + split; bossBar.setTitle(yml.getString(path+"title")); bossBar.setColor(BarColor.valueOf(yml.getString(path+"color"))); bossBar.setStyle(BarStyle.valueOf(yml.getString(path+"style"))); + if(yml.getBoolean(path+"create_frog",true)) bossBar.addFlag(BarFlag.CREATE_FOG); + else bossBar.removeFlag(BarFlag.CREATE_FOG); + if(yml.getBoolean(path+"darken_sky",true)) bossBar.addFlag(BarFlag.DARKEN_SKY); + else bossBar.removeFlag(BarFlag.DARKEN_SKY); + if(yml.getBoolean(path+"play_boss_music",true)) bossBar.addFlag(BarFlag.PLAY_BOSS_MUSIC); + else bossBar.removeFlag(BarFlag.PLAY_BOSS_MUSIC); }); } public void setBossBar(World world, final MyDragon myDragon){ } -} \ No newline at end of file +}