diff options
| author | Krakenied <Krakenied1@gmail.com> | 2023-09-17 22:09:52 +0200 |
|---|---|---|
| committer | Krakenied <Krakenied1@gmail.com> | 2023-09-24 15:57:11 +0200 |
| commit | 43812ea231b338fd2f92288d204a8f0691cf76db (patch) | |
| tree | 69a8b68b1f89f02fb853305b42b58abd251a5478 /bukkit/src | |
| parent | 41e6964c3f68ce092217f5a3451e2ff3f8ab702c (diff) | |
Optimize send track advancement method more
Diffstat (limited to 'bukkit/src')
| -rw-r--r-- | bukkit/src/main/java/com/leonardobishop/quests/bukkit/util/TaskUtils.java | 51 |
1 files changed, 30 insertions, 21 deletions
diff --git a/bukkit/src/main/java/com/leonardobishop/quests/bukkit/util/TaskUtils.java b/bukkit/src/main/java/com/leonardobishop/quests/bukkit/util/TaskUtils.java index d0a5832a..40880bd0 100644 --- a/bukkit/src/main/java/com/leonardobishop/quests/bukkit/util/TaskUtils.java +++ b/bukkit/src/main/java/com/leonardobishop/quests/bukkit/util/TaskUtils.java @@ -151,13 +151,12 @@ public class TaskUtils { } public static void sendTrackAdvancement(Player player, Quest quest, Task task, TaskProgress taskProgress) { - boolean useBossBarProgress = plugin.getConfig().getBoolean("options.bossbar.progress", false); - boolean useBossBarComplete = plugin.getConfig().getBoolean("options.bossbar.complete", false); - boolean useActionBarProgress = plugin.getConfig().getBoolean("options.actionbar.progress", false); - boolean useActionBarComplete = plugin.getConfig().getBoolean("options.actionbar.complete", false); - - if (!(useBossBarProgress || useBossBarComplete || useActionBarProgress || useActionBarComplete)) { - return; // skip title processing if all options are disabled + boolean useActionBar = plugin.getConfig().getBoolean("options.actionbar.progress", false) + || (taskProgress.isCompleted() && plugin.getConfig().getBoolean("options.actionbar.complete", false)); + boolean useBossBar = plugin.getConfig().getBoolean("options.bossbar.progress", false) + || (taskProgress.isCompleted() && plugin.getConfig().getBoolean("options.bossbar.complete", false)); + if (!useActionBar && !useBossBar) { + return; } String title; @@ -196,10 +195,24 @@ public class TaskUtils { title = Chat.legacyColor(title); - if (useBossBarProgress || (useBossBarComplete && taskProgress.isCompleted())) { - Object progress = taskProgress.getProgress(); - Double bossBarProgress = null; + if (useActionBar) { + sendTrackAdvancementActionBar(player, title); + } + + if (useBossBar) { + sendTrackAdvancementBossBar(player, quest, task, taskProgress, title); + } + } + + private static void sendTrackAdvancementActionBar(Player player, String title) { + plugin.getActionBarHandle().sendActionBar(player, title); + } + private static void sendTrackAdvancementBossBar(Player player, Quest quest, Task task, TaskProgress taskProgress, String title) { + Double bossBarProgress = null; + + if (!taskProgress.isCompleted()) { + Object progress = taskProgress.getProgress(); if (progress instanceof Number number) { bossBarProgress = number.doubleValue(); } @@ -210,19 +223,15 @@ public class TaskUtils { bossBarProgress /= amountNumber.doubleValue(); // calculate progress } } - - int bossBarTime = plugin.getConfig().getInt("options.bossbar.time", 5); - - if (bossBarProgress != null) { - float bossBarFloatProgress = (float) Math.min(1.0d, Math.max(0.0d, bossBarProgress)); - plugin.getBossBarHandle().sendBossBar(player, quest.getId(), title, bossBarTime, bossBarFloatProgress); - } else { - plugin.getBossBarHandle().sendBossBar(player, quest.getId(), title, bossBarTime); - } } - if (useActionBarProgress || (useActionBarComplete && taskProgress.isCompleted())) { - plugin.getActionBarHandle().sendActionBar(player, title); + int bossBarTime = plugin.getConfig().getInt("options.bossbar.time", 5); + + if (bossBarProgress != null) { + float bossBarFloatProgress = (float) Math.min(1.0d, Math.max(0.0d, bossBarProgress)); + plugin.getBossBarHandle().sendBossBar(player, quest.getId(), title, bossBarTime, bossBarFloatProgress); + } else { + plugin.getBossBarHandle().sendBossBar(player, quest.getId(), title, bossBarTime); } } |
