From bf80e340731b3822b63a25668f6bfb30c4edb218 Mon Sep 17 00:00:00 2001 From: IamMusavaRibica <65848142+IamMusavaRibica@users.noreply.github.com> Date: Mon, 1 Jul 2024 21:07:48 +0200 Subject: [PATCH 1/8] update boss bar progress later --- .../auraskills/bukkit/ui/BossBarManager.java | 33 ++++++++++--------- 1 file changed, 17 insertions(+), 16 deletions(-) diff --git a/bukkit/src/main/java/dev/aurelium/auraskills/bukkit/ui/BossBarManager.java b/bukkit/src/main/java/dev/aurelium/auraskills/bukkit/ui/BossBarManager.java index 0d324187b..7b7a2f807 100644 --- a/bukkit/src/main/java/dev/aurelium/auraskills/bukkit/ui/BossBarManager.java +++ b/bukkit/src/main/java/dev/aurelium/auraskills/bukkit/ui/BossBarManager.java @@ -157,13 +157,20 @@ public void sendBossBar(Player player, Skill skill, double currentXp, double lev bossBar = bossBars.get(playerId).get(skill); } String text = getBossBarText(player, skill, currentXp, (long) levelXp, xpGained, level, maxed, income, plugin.getLocale(player)); + // Calculate xp progress + float progressNew = (float) (currentXp / levelXp); + if (progressNew > 1 || progressNew < 0) { + progressNew = 1.0f; + } // If player does not have a boss bar in that skill if (bossBar == null) { - bossBar = handleNewBossBar(player, skill, currentXp, levelXp, text); + // Calculate progress before gaining xp, for boss bar animation + float progressOld = (float) (Math.max(currentXp - xpGained, 0) / levelXp); + bossBar = handleNewBossBar(player, skill, progressOld > 1 ? 1.0f : progressOld, progressNew, text); } // Use existing one else { - handleExistingBossBar(bossBar, player, skill, currentXp, levelXp, text); + handleExistingBossBar(bossBar, player, skill, progressNew, text); } // Increment current action if (mode.equals("single")) { @@ -174,20 +181,17 @@ public void sendBossBar(Player player, Skill skill, double currentXp, double lev scheduleHide(playerId, skill, bossBar); // Schedule tasks to hide the boss bar } - private BossBar handleNewBossBar(Player player, Skill skill, double currentXp, double levelXp, String text) { + private BossBar handleNewBossBar(Player player, Skill skill, float progress1, float progress2, String text) { BossBar.Color color = getColor(skill); BossBar.Overlay overlay = getOverlay(skill); Component name = tf.toComponent(text); - // Calculate xp progress - double progress = currentXp / levelXp; - if (progress > 1 || progress < 0) { - progress = 1.0; - } - BossBar bossBar = BossBar.bossBar(name, (float) progress, color, overlay); + BossBar bossBar = BossBar.bossBar(name, progress1, color, overlay); plugin.getAudiences().player(player).showBossBar(bossBar); + // Boss bar progress is updated later, so the player sees the animation going from progress1 to progress2 + plugin.getScheduler().scheduleSync(() -> bossBar.progress(progress2), 2 * 50, TimeUnit.MILLISECONDS); // Add to maps if (mode.equals("single")) { singleBossBars.put(player.getUniqueId(), bossBar); @@ -197,19 +201,16 @@ private BossBar handleNewBossBar(Player player, Skill skill, double currentXp, d return bossBar; } - private void handleExistingBossBar(BossBar bossBar, Player player, Skill skill, double currentXp, double levelXp, String text) { + private void handleExistingBossBar(BossBar bossBar, Player player, Skill skill, float progress, String text) { Component name = tf.toComponent(text); bossBar.name(name); // Update the boss bar to the new text value - // Calculate xp progress - double progress = currentXp / levelXp; - if (progress > 1 || progress < 0) { - progress = 1.0; - } - bossBar.progress((float) progress); bossBar.color(getColor(skill)); plugin.getAudiences().player(player).showBossBar(bossBar); + + // Boss bar progress is updated later, so the player sees the animation going from old progress to new + plugin.getScheduler().scheduleSync(() -> bossBar.progress(progress), 2 * 50, TimeUnit.MILLISECONDS); } private String getBossBarText(Player player, Skill skill, double currentXp, long levelXp, double xpGained, int level, boolean maxed, double income, Locale locale) { From 10c922eba608daa4b98697beb62f9fc8943d96ec Mon Sep 17 00:00:00 2001 From: IamMusavaRibica <65848142+IamMusavaRibica@users.noreply.github.com> Date: Mon, 1 Jul 2024 21:07:48 +0200 Subject: [PATCH 2/8] update boss bar progress later --- .../auraskills/bukkit/ui/BossBarManager.java | 33 ++++++++++--------- 1 file changed, 17 insertions(+), 16 deletions(-) diff --git a/bukkit/src/main/java/dev/aurelium/auraskills/bukkit/ui/BossBarManager.java b/bukkit/src/main/java/dev/aurelium/auraskills/bukkit/ui/BossBarManager.java index 0d324187b..d410fe485 100644 --- a/bukkit/src/main/java/dev/aurelium/auraskills/bukkit/ui/BossBarManager.java +++ b/bukkit/src/main/java/dev/aurelium/auraskills/bukkit/ui/BossBarManager.java @@ -157,13 +157,20 @@ public void sendBossBar(Player player, Skill skill, double currentXp, double lev bossBar = bossBars.get(playerId).get(skill); } String text = getBossBarText(player, skill, currentXp, (long) levelXp, xpGained, level, maxed, income, plugin.getLocale(player)); + // Calculate xp progress + float progressNew = (float) (currentXp / levelXp); + if (progressNew > 1 || progressNew < 0) { + progressNew = 1.0f; + } // If player does not have a boss bar in that skill if (bossBar == null) { - bossBar = handleNewBossBar(player, skill, currentXp, levelXp, text); + // Calculate progress before gaining xp, for boss bar animation + float progressOld = (float) (Math.max(currentXp - xpGained, 0) / levelXp); + bossBar = handleNewBossBar(player, skill, progressOld > 1 ? 1.0f : progressOld, progressNew, text); } // Use existing one else { - handleExistingBossBar(bossBar, player, skill, currentXp, levelXp, text); + handleExistingBossBar(bossBar, player, skill, progressNew, text); } // Increment current action if (mode.equals("single")) { @@ -174,20 +181,17 @@ public void sendBossBar(Player player, Skill skill, double currentXp, double lev scheduleHide(playerId, skill, bossBar); // Schedule tasks to hide the boss bar } - private BossBar handleNewBossBar(Player player, Skill skill, double currentXp, double levelXp, String text) { + private BossBar handleNewBossBar(Player player, Skill skill, float progressOld, float progressNew, String text) { BossBar.Color color = getColor(skill); BossBar.Overlay overlay = getOverlay(skill); Component name = tf.toComponent(text); - // Calculate xp progress - double progress = currentXp / levelXp; - if (progress > 1 || progress < 0) { - progress = 1.0; - } - BossBar bossBar = BossBar.bossBar(name, (float) progress, color, overlay); + BossBar bossBar = BossBar.bossBar(name, progressOld, color, overlay); plugin.getAudiences().player(player).showBossBar(bossBar); + // Boss bar progress is updated later, so the player sees the animation going from progressOld to progressNew + plugin.getScheduler().scheduleSync(() -> bossBar.progress(progressNew), 2 * 50, TimeUnit.MILLISECONDS); // Add to maps if (mode.equals("single")) { singleBossBars.put(player.getUniqueId(), bossBar); @@ -197,19 +201,16 @@ private BossBar handleNewBossBar(Player player, Skill skill, double currentXp, d return bossBar; } - private void handleExistingBossBar(BossBar bossBar, Player player, Skill skill, double currentXp, double levelXp, String text) { + private void handleExistingBossBar(BossBar bossBar, Player player, Skill skill, float progress, String text) { Component name = tf.toComponent(text); bossBar.name(name); // Update the boss bar to the new text value - // Calculate xp progress - double progress = currentXp / levelXp; - if (progress > 1 || progress < 0) { - progress = 1.0; - } - bossBar.progress((float) progress); bossBar.color(getColor(skill)); plugin.getAudiences().player(player).showBossBar(bossBar); + + // Boss bar progress is updated later, so the player sees the animation going from old progress to new + plugin.getScheduler().scheduleSync(() -> bossBar.progress(progress), 2 * 50, TimeUnit.MILLISECONDS); } private String getBossBarText(Player player, Skill skill, double currentXp, long levelXp, double xpGained, int level, boolean maxed, double income, Locale locale) { From 5535140fb038ba40f62899d7bb86e1e6cf855c47 Mon Sep 17 00:00:00 2001 From: IamMusavaRibica <65848142+IamMusavaRibica@users.noreply.github.com> Date: Mon, 1 Jul 2024 21:13:23 +0200 Subject: [PATCH 3/8] update comment --- .../java/dev/aurelium/auraskills/bukkit/ui/BossBarManager.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/bukkit/src/main/java/dev/aurelium/auraskills/bukkit/ui/BossBarManager.java b/bukkit/src/main/java/dev/aurelium/auraskills/bukkit/ui/BossBarManager.java index d410fe485..b073d7d98 100644 --- a/bukkit/src/main/java/dev/aurelium/auraskills/bukkit/ui/BossBarManager.java +++ b/bukkit/src/main/java/dev/aurelium/auraskills/bukkit/ui/BossBarManager.java @@ -209,7 +209,7 @@ private void handleExistingBossBar(BossBar bossBar, Player player, Skill skill, plugin.getAudiences().player(player).showBossBar(bossBar); - // Boss bar progress is updated later, so the player sees the animation going from old progress to new + // Boss bar progress is updated later, so the player sees the animation going from previous progress to new plugin.getScheduler().scheduleSync(() -> bossBar.progress(progress), 2 * 50, TimeUnit.MILLISECONDS); } From cb1dff557cd9b93dea46acf449310415bc5b644b Mon Sep 17 00:00:00 2001 From: Archy-X <63976867+Archy-X@users.noreply.github.com> Date: Fri, 5 Jul 2024 22:11:13 -0700 Subject: [PATCH 4/8] Add animate_progress option to toggle feature --- .../auraskills/bukkit/ui/BossBarManager.java | 24 ++++++++++++++----- .../auraskills/common/config/Option.java | 1 + common/src/main/resources/config.yml | 1 + 3 files changed, 20 insertions(+), 6 deletions(-) diff --git a/bukkit/src/main/java/dev/aurelium/auraskills/bukkit/ui/BossBarManager.java b/bukkit/src/main/java/dev/aurelium/auraskills/bukkit/ui/BossBarManager.java index b073d7d98..7c01f3407 100644 --- a/bukkit/src/main/java/dev/aurelium/auraskills/bukkit/ui/BossBarManager.java +++ b/bukkit/src/main/java/dev/aurelium/auraskills/bukkit/ui/BossBarManager.java @@ -46,6 +46,7 @@ public class BossBarManager implements Listener { private NumberFormat moneyFormat; private final AuraSkills plugin; private final TextFormatter tf = new TextFormatter(); + private final boolean ANIMATE_PROGRESS; public BossBarManager(AuraSkills plugin) { this.bossBars = new HashMap<>(); @@ -56,6 +57,7 @@ public BossBarManager(AuraSkills plugin) { this.checkCurrentActions = new HashMap<>(); this.singleCheckCurrentActions = new HashMap<>(); loadNumberFormats(); + this.ANIMATE_PROGRESS = plugin.configBoolean(Option.BOSS_BAR_ANIMATE_PROGRESS); } public NumberFormat getXpFormat() { @@ -187,11 +189,17 @@ private BossBar handleNewBossBar(Player player, Skill skill, float progressOld, Component name = tf.toComponent(text); + if (!ANIMATE_PROGRESS) { + progressOld = progressNew; + } + BossBar bossBar = BossBar.bossBar(name, progressOld, color, overlay); plugin.getAudiences().player(player).showBossBar(bossBar); - // Boss bar progress is updated later, so the player sees the animation going from progressOld to progressNew - plugin.getScheduler().scheduleSync(() -> bossBar.progress(progressNew), 2 * 50, TimeUnit.MILLISECONDS); + if (ANIMATE_PROGRESS) { + // Boss bar progress is updated later, so the player sees the animation going from progressOld to progressNew + plugin.getScheduler().scheduleSync(() -> bossBar.progress(progressNew), 2 * 50, TimeUnit.MILLISECONDS); + } // Add to maps if (mode.equals("single")) { singleBossBars.put(player.getUniqueId(), bossBar); @@ -204,13 +212,18 @@ private BossBar handleNewBossBar(Player player, Skill skill, float progressOld, private void handleExistingBossBar(BossBar bossBar, Player player, Skill skill, float progress, String text) { Component name = tf.toComponent(text); + if (!ANIMATE_PROGRESS) { + bossBar.progress(progress); + } bossBar.name(name); // Update the boss bar to the new text value bossBar.color(getColor(skill)); plugin.getAudiences().player(player).showBossBar(bossBar); - // Boss bar progress is updated later, so the player sees the animation going from previous progress to new - plugin.getScheduler().scheduleSync(() -> bossBar.progress(progress), 2 * 50, TimeUnit.MILLISECONDS); + if (ANIMATE_PROGRESS) { + // Boss bar progress is updated later, so the player sees the animation going from previous progress to new + plugin.getScheduler().scheduleSync(() -> bossBar.progress(progress), 2 * 50, TimeUnit.MILLISECONDS); + } } private String getBossBarText(Player player, Skill skill, double currentXp, long levelXp, double xpGained, int level, boolean maxed, double income, Locale locale) { @@ -265,8 +278,7 @@ public void incrementAction(Player player, Skill skill) { // Increment current action if (mode.equals("single")) { singleCheckCurrentActions.put(playerId, singleCheckCurrentActions.get(playerId) + 1); - } - else { + } else { Integer currentAction = checkCurrentActions.get(playerId).get(skill); if (currentAction != null) { checkCurrentActions.get(playerId).put(skill, currentAction + 1); diff --git a/common/src/main/java/dev/aurelium/auraskills/common/config/Option.java b/common/src/main/java/dev/aurelium/auraskills/common/config/Option.java index 487ad6a69..21333c086 100644 --- a/common/src/main/java/dev/aurelium/auraskills/common/config/Option.java +++ b/common/src/main/java/dev/aurelium/auraskills/common/config/Option.java @@ -45,6 +45,7 @@ public enum Option { BOSS_BAR_XP_FORMAT("boss_bar.xp_format", OptionType.STRING), BOSS_BAR_PERCENT_FORMAT("boss_bar.percent_format", OptionType.STRING), BOSS_BAR_MONEY_FORMAT("boss_bar.money_format", OptionType.STRING), + BOSS_BAR_ANIMATE_PROGRESS("boss_bar.animate_progress", OptionType.BOOLEAN), // Jobs options JOBS_ENABLED("jobs.enabled", OptionType.BOOLEAN), JOBS_SELECTION_REQUIRE_SELECTION("jobs.selection.require_selection", OptionType.BOOLEAN), diff --git a/common/src/main/resources/config.yml b/common/src/main/resources/config.yml index 278712bc0..be441101c 100644 --- a/common/src/main/resources/config.yml +++ b/common/src/main/resources/config.yml @@ -97,6 +97,7 @@ boss_bar: xp_format: '#.#' percent_format: '#.##' money_format: '0.00' + animate_progress: true jobs: enabled: false selection: From c58baff120b1eb309e99bc0ac09fe94c9d20f8fa Mon Sep 17 00:00:00 2001 From: IamMusavaRibica <65848142+IamMusavaRibica@users.noreply.github.com> Date: Mon, 8 Jul 2024 13:46:08 +0200 Subject: [PATCH 5/8] fix animate_progess option to update correctly after plugin reload --- .../dev/aurelium/auraskills/bukkit/ui/BossBarManager.java | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/bukkit/src/main/java/dev/aurelium/auraskills/bukkit/ui/BossBarManager.java b/bukkit/src/main/java/dev/aurelium/auraskills/bukkit/ui/BossBarManager.java index 7c01f3407..01d0c0a60 100644 --- a/bukkit/src/main/java/dev/aurelium/auraskills/bukkit/ui/BossBarManager.java +++ b/bukkit/src/main/java/dev/aurelium/auraskills/bukkit/ui/BossBarManager.java @@ -46,7 +46,6 @@ public class BossBarManager implements Listener { private NumberFormat moneyFormat; private final AuraSkills plugin; private final TextFormatter tf = new TextFormatter(); - private final boolean ANIMATE_PROGRESS; public BossBarManager(AuraSkills plugin) { this.bossBars = new HashMap<>(); @@ -57,7 +56,6 @@ public BossBarManager(AuraSkills plugin) { this.checkCurrentActions = new HashMap<>(); this.singleCheckCurrentActions = new HashMap<>(); loadNumberFormats(); - this.ANIMATE_PROGRESS = plugin.configBoolean(Option.BOSS_BAR_ANIMATE_PROGRESS); } public NumberFormat getXpFormat() { @@ -184,6 +182,7 @@ public void sendBossBar(Player player, Skill skill, double currentXp, double lev } private BossBar handleNewBossBar(Player player, Skill skill, float progressOld, float progressNew, String text) { + final boolean ANIMATE_PROGRESS = plugin.configBoolean(Option.BOSS_BAR_ANIMATE_PROGRESS); BossBar.Color color = getColor(skill); BossBar.Overlay overlay = getOverlay(skill); @@ -210,6 +209,7 @@ private BossBar handleNewBossBar(Player player, Skill skill, float progressOld, } private void handleExistingBossBar(BossBar bossBar, Player player, Skill skill, float progress, String text) { + final boolean ANIMATE_PROGRESS = plugin.configBoolean(Option.BOSS_BAR_ANIMATE_PROGRESS); Component name = tf.toComponent(text); if (!ANIMATE_PROGRESS) { From 584eecd136863787871247360a0e2ef8466d83e5 Mon Sep 17 00:00:00 2001 From: IamMusavaRibica <65848142+IamMusavaRibica@users.noreply.github.com> Date: Mon, 8 Jul 2024 13:57:53 +0200 Subject: [PATCH 6/8] shorter code around animate_progress --- .../auraskills/bukkit/ui/BossBarManager.java | 22 +++++++------------ 1 file changed, 8 insertions(+), 14 deletions(-) diff --git a/bukkit/src/main/java/dev/aurelium/auraskills/bukkit/ui/BossBarManager.java b/bukkit/src/main/java/dev/aurelium/auraskills/bukkit/ui/BossBarManager.java index 01d0c0a60..0bb657e5a 100644 --- a/bukkit/src/main/java/dev/aurelium/auraskills/bukkit/ui/BossBarManager.java +++ b/bukkit/src/main/java/dev/aurelium/auraskills/bukkit/ui/BossBarManager.java @@ -188,17 +188,14 @@ private BossBar handleNewBossBar(Player player, Skill skill, float progressOld, Component name = tf.toComponent(text); - if (!ANIMATE_PROGRESS) { - progressOld = progressNew; - } - BossBar bossBar = BossBar.bossBar(name, progressOld, color, overlay); - - plugin.getAudiences().player(player).showBossBar(bossBar); - if (ANIMATE_PROGRESS) { - // Boss bar progress is updated later, so the player sees the animation going from progressOld to progressNew + if (!ANIMATE_PROGRESS) { // If the config option is disabled, immediately show new progress + bossBar.progress(progressNew); + } else { // Update the progress later to display its animation from progressOld to progressNew plugin.getScheduler().scheduleSync(() -> bossBar.progress(progressNew), 2 * 50, TimeUnit.MILLISECONDS); } + plugin.getAudiences().player(player).showBossBar(bossBar); + // Add to maps if (mode.equals("single")) { singleBossBars.put(player.getUniqueId(), bossBar); @@ -212,18 +209,15 @@ private void handleExistingBossBar(BossBar bossBar, Player player, Skill skill, final boolean ANIMATE_PROGRESS = plugin.configBoolean(Option.BOSS_BAR_ANIMATE_PROGRESS); Component name = tf.toComponent(text); - if (!ANIMATE_PROGRESS) { + if (!ANIMATE_PROGRESS) { // Update boss bar progress immediately bossBar.progress(progress); + } else { // Update progress later, so the player sees the animation from previous progress (from reused boss bar) to new + plugin.getScheduler().scheduleSync(() -> bossBar.progress(progress), 2 * 50, TimeUnit.MILLISECONDS); } bossBar.name(name); // Update the boss bar to the new text value bossBar.color(getColor(skill)); plugin.getAudiences().player(player).showBossBar(bossBar); - - if (ANIMATE_PROGRESS) { - // Boss bar progress is updated later, so the player sees the animation going from previous progress to new - plugin.getScheduler().scheduleSync(() -> bossBar.progress(progress), 2 * 50, TimeUnit.MILLISECONDS); - } } private String getBossBarText(Player player, Skill skill, double currentXp, long levelXp, double xpGained, int level, boolean maxed, double income, Locale locale) { From fa0019812e2b50dc0d1a21ddbc3a9e895821d1e1 Mon Sep 17 00:00:00 2001 From: IamMusavaRibica <65848142+IamMusavaRibica@users.noreply.github.com> Date: Mon, 8 Jul 2024 18:49:52 +0200 Subject: [PATCH 7/8] Revert "fix animate_progess option to update correctly after plugin reload" This reverts commit c58baff120b1eb309e99bc0ac09fe94c9d20f8fa. --- .../dev/aurelium/auraskills/bukkit/ui/BossBarManager.java | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/bukkit/src/main/java/dev/aurelium/auraskills/bukkit/ui/BossBarManager.java b/bukkit/src/main/java/dev/aurelium/auraskills/bukkit/ui/BossBarManager.java index 0bb657e5a..4babff287 100644 --- a/bukkit/src/main/java/dev/aurelium/auraskills/bukkit/ui/BossBarManager.java +++ b/bukkit/src/main/java/dev/aurelium/auraskills/bukkit/ui/BossBarManager.java @@ -46,6 +46,7 @@ public class BossBarManager implements Listener { private NumberFormat moneyFormat; private final AuraSkills plugin; private final TextFormatter tf = new TextFormatter(); + private final boolean ANIMATE_PROGRESS; public BossBarManager(AuraSkills plugin) { this.bossBars = new HashMap<>(); @@ -56,6 +57,7 @@ public BossBarManager(AuraSkills plugin) { this.checkCurrentActions = new HashMap<>(); this.singleCheckCurrentActions = new HashMap<>(); loadNumberFormats(); + this.ANIMATE_PROGRESS = plugin.configBoolean(Option.BOSS_BAR_ANIMATE_PROGRESS); } public NumberFormat getXpFormat() { @@ -182,7 +184,6 @@ public void sendBossBar(Player player, Skill skill, double currentXp, double lev } private BossBar handleNewBossBar(Player player, Skill skill, float progressOld, float progressNew, String text) { - final boolean ANIMATE_PROGRESS = plugin.configBoolean(Option.BOSS_BAR_ANIMATE_PROGRESS); BossBar.Color color = getColor(skill); BossBar.Overlay overlay = getOverlay(skill); @@ -206,7 +207,6 @@ private BossBar handleNewBossBar(Player player, Skill skill, float progressOld, } private void handleExistingBossBar(BossBar bossBar, Player player, Skill skill, float progress, String text) { - final boolean ANIMATE_PROGRESS = plugin.configBoolean(Option.BOSS_BAR_ANIMATE_PROGRESS); Component name = tf.toComponent(text); if (!ANIMATE_PROGRESS) { // Update boss bar progress immediately From 90a2e638d1277c4b167c5fa537263a7051ced7c0 Mon Sep 17 00:00:00 2001 From: IamMusavaRibica <65848142+IamMusavaRibica@users.noreply.github.com> Date: Mon, 8 Jul 2024 21:02:00 +0200 Subject: [PATCH 8/8] update animate_progress on reload --- .../java/dev/aurelium/auraskills/bukkit/ui/BossBarManager.java | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/bukkit/src/main/java/dev/aurelium/auraskills/bukkit/ui/BossBarManager.java b/bukkit/src/main/java/dev/aurelium/auraskills/bukkit/ui/BossBarManager.java index 4babff287..2da210f0b 100644 --- a/bukkit/src/main/java/dev/aurelium/auraskills/bukkit/ui/BossBarManager.java +++ b/bukkit/src/main/java/dev/aurelium/auraskills/bukkit/ui/BossBarManager.java @@ -46,7 +46,7 @@ public class BossBarManager implements Listener { private NumberFormat moneyFormat; private final AuraSkills plugin; private final TextFormatter tf = new TextFormatter(); - private final boolean ANIMATE_PROGRESS; + private boolean ANIMATE_PROGRESS; public BossBarManager(AuraSkills plugin) { this.bossBars = new HashMap<>(); @@ -91,6 +91,7 @@ public void loadOptions() { stayTime = plugin.configInt(Option.BOSS_BAR_STAY_TIME); colors = new HashMap<>(); overlays = new HashMap<>(); + ANIMATE_PROGRESS = plugin.configBoolean(Option.BOSS_BAR_ANIMATE_PROGRESS); for (String entry : plugin.configStringList(Option.BOSS_BAR_FORMAT)) { String[] splitEntry = entry.split(" "); Skill skill;