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
This commit is contained in:
Chayapak 2023-04-19 14:18:16 +07:00
parent a8b47c39d9
commit 41680cf8cc

View file

@ -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<String, BossBar> 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<String, BossBar> _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) {