From b64481dec1f93621220df1b8580594299cc6b699 Mon Sep 17 00:00:00 2001 From: "Luis C.M." <42545778+c0508383@users.noreply.github.com> Date: Wed, 5 Mar 2025 22:57:24 -0600 Subject: [PATCH] Fixed music continuing to play for server bards even after logging out --- src/main/java/noppes/npcs/client/ClientCacheHandler.java | 4 ++++ src/main/java/noppes/npcs/client/ClientTickHandler.java | 7 +++---- .../noppes/npcs/client/controllers/MusicController.java | 2 +- 3 files changed, 8 insertions(+), 5 deletions(-) diff --git a/src/main/java/noppes/npcs/client/ClientCacheHandler.java b/src/main/java/noppes/npcs/client/ClientCacheHandler.java index abfc0993e..427a77947 100644 --- a/src/main/java/noppes/npcs/client/ClientCacheHandler.java +++ b/src/main/java/noppes/npcs/client/ClientCacheHandler.java @@ -1,6 +1,7 @@ package noppes.npcs.client; import net.minecraft.util.ResourceLocation; +import noppes.npcs.client.controllers.MusicController; import noppes.npcs.client.gui.customoverlay.OverlayCustom; import noppes.npcs.client.gui.select.GuiSoundSelection; import noppes.npcs.client.gui.select.GuiTextureSelection; @@ -61,6 +62,9 @@ public class ClientCacheHandler { // Clear Texture Caches GuiSoundSelection.cachedDomains.clear(); GuiTextureSelection.cachedTextures.clear(); + + // Clear music/bard sounds + MusicController.Instance.stopAllSounds(); } public static void clearSkinCache() { diff --git a/src/main/java/noppes/npcs/client/ClientTickHandler.java b/src/main/java/noppes/npcs/client/ClientTickHandler.java index 889e13539..4231080da 100644 --- a/src/main/java/noppes/npcs/client/ClientTickHandler.java +++ b/src/main/java/noppes/npcs/client/ClientTickHandler.java @@ -68,10 +68,8 @@ public class ClientTickHandler{ otherContainer = true; CustomNpcs.ticks++; RenderNPCInterface.LastTextureTick++; - if(prevWorld != mc.theWorld){ - prevWorld = mc.theWorld; - MusicController.Instance.stopAllSounds(); - } else if (MusicController.Instance.isPlaying() && MusicController.Instance.getEntity() != null) { + + if (MusicController.Instance.isPlaying() && MusicController.Instance.getEntity() != null) { Entity entity = MusicController.Instance.getEntity(); if (MusicController.Instance.getOffRange() > 0 && (Minecraft.getMinecraft().thePlayer == null || @@ -80,6 +78,7 @@ public class ClientTickHandler{ MusicController.Instance.stopMusic(); } } + MusicController.Instance.onUpdate(); ScriptSoundController.Instance.onUpdate(); if(Minecraft.getMinecraft().thePlayer!=null && (prevWidth!=mc.displayWidth || prevHeight!=mc.displayHeight)){ diff --git a/src/main/java/noppes/npcs/client/controllers/MusicController.java b/src/main/java/noppes/npcs/client/controllers/MusicController.java index e9c266d0b..779aab1ec 100644 --- a/src/main/java/noppes/npcs/client/controllers/MusicController.java +++ b/src/main/java/noppes/npcs/client/controllers/MusicController.java @@ -61,7 +61,7 @@ public class MusicController { soundHandler.stopSounds(); } catch (Exception ignored) {} } - if (this.isPlaying()) { + if (this.playingSound != null) { this.playingSound.stopSound(); this.playingSound = null; }