forked from ChomeNS/chomens-bot-java
? idk
This commit is contained in:
parent
54cf9a9a68
commit
2616970e55
1 changed files with 3 additions and 73 deletions
|
@ -12,6 +12,7 @@ import lombok.Getter;
|
||||||
import lombok.Setter;
|
import lombok.Setter;
|
||||||
import net.kyori.adventure.text.Component;
|
import net.kyori.adventure.text.Component;
|
||||||
import net.kyori.adventure.text.format.NamedTextColor;
|
import net.kyori.adventure.text.format.NamedTextColor;
|
||||||
|
import net.kyori.adventure.text.format.TextColor;
|
||||||
|
|
||||||
import java.io.File;
|
import java.io.File;
|
||||||
import java.net.URL;
|
import java.net.URL;
|
||||||
|
@ -45,6 +46,7 @@ public class MusicPlayerPlugin extends SessionAdapter {
|
||||||
private int ticksUntilPausedBossbar = 20;
|
private int ticksUntilPausedBossbar = 20;
|
||||||
|
|
||||||
private final String bossbarName = "music";
|
private final String bossbarName = "music";
|
||||||
|
private Runnable runnable;
|
||||||
|
|
||||||
public MusicPlayerPlugin (Bot bot) {
|
public MusicPlayerPlugin (Bot bot) {
|
||||||
this.bot = bot;
|
this.bot = bot;
|
||||||
|
@ -90,79 +92,7 @@ public class MusicPlayerPlugin extends SessionAdapter {
|
||||||
}
|
}
|
||||||
|
|
||||||
public void coreReady () {
|
public void coreReady () {
|
||||||
final Runnable task = () -> {
|
final Runnable task = runnable;
|
||||||
if (loaderThread != null && !loaderThread.isAlive()) {
|
|
||||||
if (loaderThread.exception != null) {
|
|
||||||
bot.chat().tellraw(Component.translatable("Failed to load song: %s", loaderThread.exception.message()).color(NamedTextColor.RED));
|
|
||||||
} else {
|
|
||||||
songQueue.add(loaderThread.song);
|
|
||||||
bot.chat().tellraw(Component.translatable("Added %s to the song queue", Component.empty().append(loaderThread.song.name).color(NamedTextColor.GOLD)));
|
|
||||||
}
|
|
||||||
loaderThread = null;
|
|
||||||
}
|
|
||||||
|
|
||||||
if (currentSong == null) {
|
|
||||||
if (songQueue.size() == 0) return;
|
|
||||||
|
|
||||||
bot.bossbar().add(bossbarName, new BossBar(
|
|
||||||
Component.empty(),
|
|
||||||
BossBarColor.WHITE,
|
|
||||||
0,
|
|
||||||
"",
|
|
||||||
BossBarStyle.PROGRESS,
|
|
||||||
0,
|
|
||||||
false
|
|
||||||
));
|
|
||||||
|
|
||||||
currentSong = songQueue.get(0); // songQueue.poll();
|
|
||||||
bot.chat().tellraw(Component.translatable("Now playing %s", Component.empty().append(currentSong.name).color(NamedTextColor.GOLD)));
|
|
||||||
currentSong.play();
|
|
||||||
}
|
|
||||||
|
|
||||||
if (currentSong.paused && ticksUntilPausedBossbar-- < 0) return;
|
|
||||||
else ticksUntilPausedBossbar = 20;
|
|
||||||
|
|
||||||
final BossBar bossBar = bot.bossbar().get(bossbarName);
|
|
||||||
|
|
||||||
bossBar.players(SELECTOR);
|
|
||||||
bossBar.name(generateBossbar());
|
|
||||||
bossBar.color(pitch > 0 ? BossBarColor.PURPLE : BossBarColor.YELLOW);
|
|
||||||
bossBar.visible(true);
|
|
||||||
bossBar.style(BossBarStyle.PROGRESS);
|
|
||||||
bossBar.value((int) Math.floor(currentSong.time));
|
|
||||||
bossBar.max(currentSong.length);
|
|
||||||
|
|
||||||
if (currentSong.paused) return;
|
|
||||||
|
|
||||||
handlePlaying();
|
|
||||||
|
|
||||||
if (currentSong.finished()) {
|
|
||||||
removeBossbar();
|
|
||||||
bot.chat().tellraw(Component.translatable("Finished playing %s", Component.empty().append(currentSong.name).color(NamedTextColor.GOLD)));
|
|
||||||
|
|
||||||
if (loop == Loop.CURRENT) {
|
|
||||||
currentSong.setTime(0);
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
if (loop == Loop.ALL) {
|
|
||||||
skip();
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
|
|
||||||
songQueue.remove();
|
|
||||||
|
|
||||||
if (songQueue.size() == 0) {
|
|
||||||
stopPlaying();
|
|
||||||
bot.chat().tellraw(Component.text("Finished playing every song in the queue"));
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
if (currentSong.size() > 0) {
|
|
||||||
currentSong = songQueue.get(0);
|
|
||||||
currentSong.setTime(0);
|
|
||||||
currentSong.play();
|
|
||||||
}
|
|
||||||
}
|
|
||||||
};
|
|
||||||
|
|
||||||
playTask = bot.executor().scheduleAtFixedRate(task, 50, 50, TimeUnit.MILLISECONDS);
|
playTask = bot.executor().scheduleAtFixedRate(task, 50, 50, TimeUnit.MILLISECONDS);
|
||||||
|
|
||||||
|
|
Loading…
Reference in a new issue