From 41680cf8ccfc4fc5dc2c4bb0a58ae2f48dff6525 Mon Sep 17 00:00:00 2001 From: ChomeNS <95471003+ChomeNS@users.noreply.github.com> Date: Wed, 19 Apr 2023 14:18:16 +0700 Subject: [PATCH] change bossbar a bit originally i want to add the bossbar packet thing but im too lazy to get things working so i just fard the among us --- .../plugins/BossbarManagerPlugin.java | 47 +++++++++++++------ 1 file changed, 33 insertions(+), 14 deletions(-) diff --git a/src/main/java/land/chipmunk/chayapak/chomens_bot/plugins/BossbarManagerPlugin.java b/src/main/java/land/chipmunk/chayapak/chomens_bot/plugins/BossbarManagerPlugin.java index 986b85af..d0baf009 100644 --- a/src/main/java/land/chipmunk/chayapak/chomens_bot/plugins/BossbarManagerPlugin.java +++ b/src/main/java/land/chipmunk/chayapak/chomens_bot/plugins/BossbarManagerPlugin.java @@ -13,10 +13,11 @@ import java.util.Map; import java.util.concurrent.ScheduledFuture; import java.util.concurrent.TimeUnit; -public class BossbarManagerPlugin extends CorePlugin.Listener { +public class BossbarManagerPlugin extends SessionAdapter { private final Bot bot; private ScheduledFuture tickTask; + private ScheduledFuture updateTask; private final Map bossBars = new HashMap<>(); @@ -29,19 +30,37 @@ public class BossbarManagerPlugin extends CorePlugin.Listener { public BossbarManagerPlugin (Bot bot) { this.bot = bot; - bot.core().addListener(this); - - bot.addListener(new SessionAdapter() { + bot.core().addListener(new CorePlugin.Listener() { @Override - public void disconnected(DisconnectedEvent event) { - tickTask.cancel(true); + public void ready() { + BossbarManagerPlugin.this.ready(); } }); + + bot.addListener(this); + } + + public void ready () { + tickTask = bot.executor().scheduleAtFixedRate(this::tick, 0, 50, TimeUnit.MILLISECONDS); + updateTask = bot.executor().scheduleAtFixedRate(this::update, 0, 500, TimeUnit.MILLISECONDS); } @Override - public void ready () { - tickTask = bot.executor().scheduleAtFixedRate(this::tick, 0, 50, TimeUnit.MILLISECONDS); + public void disconnected(DisconnectedEvent event) { + tickTask.cancel(true); + updateTask.cancel(true); + } + + private void update() { + for (Map.Entry _bossBar : bossBars.entrySet()) { + final String name = _bossBar.getKey(); + final BossBar bossBar = _bossBar.getValue(); + createBossBar(name, bossBar.players()); + bot.core().run("minecraft:bossbar set " + bossBarPrefix + name + " color " + bossBar.color().color); + bot.core().run("minecraft:bossbar set " + bossBarPrefix + name + " visible " + bossBar.visible()); + bot.core().run("minecraft:bossbar set " + bossBarPrefix + name + " style " + bossBar.style().style); + bot.core().run("minecraft:bossbar set " + bossBarPrefix + name + " max " + bossBar.max()); + } } public void tick () { @@ -53,14 +72,8 @@ public class BossbarManagerPlugin extends CorePlugin.Listener { final String stringifiedComponent = GsonComponentSerializer.gson().serialize(bossBar.name()); if (!actionbar) { - bot.core().run("minecraft:bossbar add " + bossBarPrefix + name + " \"\""); - bot.core().run("minecraft:bossbar set " + bossBarPrefix + name + " players " + bossBar.players()); bot.core().run("minecraft:bossbar set " + bossBarPrefix + name + " name " + stringifiedComponent); - bot.core().run("minecraft:bossbar set " + bossBarPrefix + name + " color " + bossBar.color().color); - bot.core().run("minecraft:bossbar set " + bossBarPrefix + name + " visible " + bossBar.visible()); - bot.core().run("minecraft:bossbar set " + bossBarPrefix + name + " style " + bossBar.style().style); bot.core().run("minecraft:bossbar set " + bossBarPrefix + name + " value " + bossBar.value()); - bot.core().run("minecraft:bossbar set " + bossBarPrefix + name + " max " + bossBar.max()); } else { bot.core().run("minecraft:title " + bossBar.players() + " actionbar " + stringifiedComponent); } @@ -70,8 +83,14 @@ public class BossbarManagerPlugin extends CorePlugin.Listener { } } + private void createBossBar (String name, String players) { + bot.core().run("minecraft:bossbar add " + bossBarPrefix + name + " \"\""); + bot.core().run("minecraft:bossbar set " + bossBarPrefix + name + " players " + players); + } + public void add (String name, BossBar bossBar) { bossBars.put(name, bossBar); + createBossBar(name, bossBar.players()); } public void remove (String name) {