aboutsummaryrefslogtreecommitdiffstats
path: root/bukkit/src/main
diff options
context:
space:
mode:
authorKrakenied <Krakenied1@gmail.com>2023-09-24 16:05:18 +0200
committerKrakenied <Krakenied1@gmail.com>2023-09-24 16:05:18 +0200
commit15011f6802dec435ad33160090eed425218024d1 (patch)
tree1073455066a4adcacb35458fe2c34998851331d9 /bukkit/src/main
parentb462fe255b3c9b267b300cefded4cec05ff86222 (diff)
Make boss bar color and style customizable
Diffstat (limited to 'bukkit/src/main')
-rw-r--r--bukkit/src/main/java/com/leonardobishop/quests/bukkit/hook/bossbar/BossBar_Bukkit.java15
-rw-r--r--bukkit/src/main/resources/resources/bukkit/config.yml4
2 files changed, 18 insertions, 1 deletions
diff --git a/bukkit/src/main/java/com/leonardobishop/quests/bukkit/hook/bossbar/BossBar_Bukkit.java b/bukkit/src/main/java/com/leonardobishop/quests/bukkit/hook/bossbar/BossBar_Bukkit.java
index 7aa3244d..e7c7bd1a 100644
--- a/bukkit/src/main/java/com/leonardobishop/quests/bukkit/hook/bossbar/BossBar_Bukkit.java
+++ b/bukkit/src/main/java/com/leonardobishop/quests/bukkit/hook/bossbar/BossBar_Bukkit.java
@@ -11,11 +11,14 @@ import org.bukkit.boss.BossBar;
import org.bukkit.entity.Player;
import java.util.concurrent.TimeUnit;
+import java.util.logging.Level;
public class BossBar_Bukkit implements QuestsBossBar {
private final BukkitQuestsPlugin plugin;
private final RemovalListener<String, BossBar> removalListener;
+ private BarColor barColor = BarColor.BLUE;
+ private BarStyle barStyle = BarStyle.SOLID;
// use cache because of its concurrency and automatic player on quit removal
private final Cache<Player, Cache<String, BossBar>> playerQuestBarCache = CacheBuilder.newBuilder().weakKeys().build();
@@ -24,6 +27,16 @@ public class BossBar_Bukkit implements QuestsBossBar {
this.plugin = plugin;
this.removalListener = removal -> plugin.getScheduler().runTask(() -> removal.getValue().removeAll());
+ try {
+ String barColorString = plugin.getQuestsConfig().getString("options.bossbar.color", this.barColor.name());
+ this.barColor = BarColor.valueOf(barColorString);
+
+ String barStyleString = plugin.getQuestsConfig().getString("options.bossbar.style", this.barStyle.name());
+ this.barStyle = BarStyle.valueOf(barStyleString);
+ } catch (IllegalArgumentException e) {
+ this.plugin.getLogger().log(Level.SEVERE, "Could not set color or style for the initialized boss bar implementation, using default instead!", e);
+ }
+
//noinspection CodeBlock2Expr (for readability)
plugin.getScheduler().runTaskTimerAsynchronously(() -> {
playerQuestBarCache.asMap()
@@ -52,7 +65,7 @@ public class BossBar_Bukkit implements QuestsBossBar {
BossBar bar = questBarCache.asMap()
.computeIfAbsent(questId, k -> {
//noinspection CodeBlock2Expr (for readability)
- return Bukkit.createBossBar(null, BarColor.BLUE, BarStyle.SOLID);
+ return Bukkit.createBossBar(null, this.barColor, this.barStyle);
});
bar.setTitle(title);
diff --git a/bukkit/src/main/resources/resources/bukkit/config.yml b/bukkit/src/main/resources/resources/bukkit/config.yml
index 6a133670..5648bd7f 100644
--- a/bukkit/src/main/resources/resources/bukkit/config.yml
+++ b/bukkit/src/main/resources/resources/bukkit/config.yml
@@ -42,6 +42,10 @@ options:
complete: false
# Time in seconds of bossbar showed
time: 5
+ # See https://hub.spigotmc.org/javadocs/spigot/org/bukkit/boss/BarColor.html
+ color: BLUE
+ # See https://hub.spigotmc.org/javadocs/spigot/org/bukkit/boss/BarStyle.html
+ style: SOLID
# Enable/disable ActionBar
actionbar:
progress: false