diff options
Diffstat (limited to 'bukkit')
| -rw-r--r-- | bukkit/src/main/java/com/leonardobishop/quests/bukkit/hook/bossbar/BossBar_Bukkit.java | 15 | ||||
| -rw-r--r-- | bukkit/src/main/resources/resources/bukkit/config.yml | 4 |
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 |
