fix: java.lang.IllegalStateException: Rendersystem called from wrong thread SongPlayer

This commit is contained in:
Chayapak Supasakul 2025-10-19 14:25:25 +07:00
parent 5e1e7591e7
commit 7675aae619
Signed by: ChomeNS
SSH key fingerprint: SHA256:0YoxhdyXsgbc0nfeB2N6FYE60mxMU7DS4uCUMaw2mvA

View file

@ -108,10 +108,10 @@ public class SongPlayer {
if (loaderThread != null && !loaderThread.isAlive() && client.player != null) {
if (loaderThread.exception != null) {
client.player.sendMessage(Component.translatable("Failed to load song: %s", Component.text(loaderThread.exception.message.getString())).color(NamedTextColor.RED));
client.execute(() -> client.player.sendMessage(Component.translatable("Failed to load song: %s", Component.text(loaderThread.exception.message.getString())).color(NamedTextColor.RED)));
} else {
songQueue.add(loaderThread.song);
client.player.sendMessage(Component.translatable("Added %s to the song queue", Component.empty().append(loaderThread.song.name).color(NamedTextColor.DARK_GREEN)).color(NamedTextColor.GREEN));
client.execute(() -> client.player.sendMessage(Component.translatable("Added %s to the song queue", Component.empty().append(loaderThread.song.name).color(NamedTextColor.DARK_GREEN)).color(NamedTextColor.GREEN)));
}
loaderThread = null;
}
@ -120,7 +120,8 @@ public class SongPlayer {
if (songQueue.isEmpty()) return;
currentSong = songQueue.poll();
if (client.player != null) client.player.sendMessage(
if (client.player != null) {
client.execute(() -> client.player.sendMessage(
Component
.translatable(
"Now playing %s",
@ -129,7 +130,8 @@ public class SongPlayer {
.color(NamedTextColor.DARK_GREEN)
)
.color(NamedTextColor.GREEN)
);
));
}
currentSong.play();
}