From 7675aae619035ae461dca454f4a59469c7b354bb Mon Sep 17 00:00:00 2001 From: ChomeNS <95471003+chomens@users.noreply.github.com> Date: Sun, 19 Oct 2025 14:25:25 +0700 Subject: [PATCH] fix: `java.lang.IllegalStateException: Rendersystem called from wrong thread` SongPlayer --- .../chipmunkmod/modules/SongPlayer.java | 26 ++++++++++--------- 1 file changed, 14 insertions(+), 12 deletions(-) diff --git a/src/main/java/land/chipmunk/chipmunkmod/modules/SongPlayer.java b/src/main/java/land/chipmunk/chipmunkmod/modules/SongPlayer.java index 985eb55..5b81ec5 100644 --- a/src/main/java/land/chipmunk/chipmunkmod/modules/SongPlayer.java +++ b/src/main/java/land/chipmunk/chipmunkmod/modules/SongPlayer.java @@ -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,16 +120,18 @@ public class SongPlayer { if (songQueue.isEmpty()) return; currentSong = songQueue.poll(); - if (client.player != null) client.player.sendMessage( - Component - .translatable( - "Now playing %s", - Component.empty() - .append(currentSong.name) - .color(NamedTextColor.DARK_GREEN) - ) - .color(NamedTextColor.GREEN) - ); + if (client.player != null) { + client.execute(() -> client.player.sendMessage( + Component + .translatable( + "Now playing %s", + Component.empty() + .append(currentSong.name) + .color(NamedTextColor.DARK_GREEN) + ) + .color(NamedTextColor.GREEN) + )); + } currentSong.play(); }