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:
parent
a8b47c39d9
commit
41680cf8cc
1 changed files with 33 additions and 14 deletions
|
@ -13,10 +13,11 @@ import java.util.Map;
|
||||||
import java.util.concurrent.ScheduledFuture;
|
import java.util.concurrent.ScheduledFuture;
|
||||||
import java.util.concurrent.TimeUnit;
|
import java.util.concurrent.TimeUnit;
|
||||||
|
|
||||||
public class BossbarManagerPlugin extends CorePlugin.Listener {
|
public class BossbarManagerPlugin extends SessionAdapter {
|
||||||
private final Bot bot;
|
private final Bot bot;
|
||||||
|
|
||||||
private ScheduledFuture<?> tickTask;
|
private ScheduledFuture<?> tickTask;
|
||||||
|
private ScheduledFuture<?> updateTask;
|
||||||
|
|
||||||
private final Map<String, BossBar> bossBars = new HashMap<>();
|
private final Map<String, BossBar> bossBars = new HashMap<>();
|
||||||
|
|
||||||
|
@ -29,19 +30,37 @@ public class BossbarManagerPlugin extends CorePlugin.Listener {
|
||||||
public BossbarManagerPlugin (Bot bot) {
|
public BossbarManagerPlugin (Bot bot) {
|
||||||
this.bot = bot;
|
this.bot = bot;
|
||||||
|
|
||||||
bot.core().addListener(this);
|
bot.core().addListener(new CorePlugin.Listener() {
|
||||||
|
|
||||||
bot.addListener(new SessionAdapter() {
|
|
||||||
@Override
|
@Override
|
||||||
public void disconnected(DisconnectedEvent event) {
|
public void ready() {
|
||||||
tickTask.cancel(true);
|
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
|
@Override
|
||||||
public void ready () {
|
public void disconnected(DisconnectedEvent event) {
|
||||||
tickTask = bot.executor().scheduleAtFixedRate(this::tick, 0, 50, TimeUnit.MILLISECONDS);
|
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 () {
|
public void tick () {
|
||||||
|
@ -53,14 +72,8 @@ public class BossbarManagerPlugin extends CorePlugin.Listener {
|
||||||
final String stringifiedComponent = GsonComponentSerializer.gson().serialize(bossBar.name());
|
final String stringifiedComponent = GsonComponentSerializer.gson().serialize(bossBar.name());
|
||||||
|
|
||||||
if (!actionbar) {
|
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 + " 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 + " value " + bossBar.value());
|
||||||
bot.core().run("minecraft:bossbar set " + bossBarPrefix + name + " max " + bossBar.max());
|
|
||||||
} else {
|
} else {
|
||||||
bot.core().run("minecraft:title " + bossBar.players() + " actionbar " + stringifiedComponent);
|
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) {
|
public void add (String name, BossBar bossBar) {
|
||||||
bossBars.put(name, bossBar);
|
bossBars.put(name, bossBar);
|
||||||
|
createBossBar(name, bossBar.players());
|
||||||
}
|
}
|
||||||
|
|
||||||
public void remove (String name) {
|
public void remove (String name) {
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue