Quick Fix for Limbo Music Crash

The following small change deals with a strange background-music-related
crash. Wasn't this issue fixed for Jaitsu and Aether II? I'm not sure
what's the cause but I've added a check to prevent the NPE. Please deal
with this most robustly in the future.
This commit is contained in:
SenseiKiwi 2014-03-14 17:22:55 -04:00
parent 7e8fe10c7d
commit d1a2476a4e

View file

@ -218,24 +218,29 @@ public class EventHookContainer
public void playMusicForDim(World world) public void playMusicForDim(World world)
{ {
if(world.isRemote) if (world.isRemote)
{ {
SoundManager sndManager = FMLClientHandler.instance().getClient().sndManager; SoundManager sndManager = FMLClientHandler.instance().getClient().sndManager;
if(world.provider instanceof LimboProvider) // SenseiKiwi: I've added the following check as a quick fix for a reported crash.
// This needs to work without a hitch or we have to stop trying to replace the background music...
if (sndManager != null && sndManager.sndSystem != null)
{
if (world.provider instanceof LimboProvider)
{ {
sndManager.sndSystem.stop("BgMusic"); sndManager.sndSystem.stop("BgMusic");
SoundPoolEntry soundPoolEntry = sndManager.soundPoolSounds.getRandomSoundFromSoundPool(mod_pocketDim.modid+":creepy"); SoundPoolEntry soundPoolEntry = sndManager.soundPoolSounds.getRandomSoundFromSoundPool(mod_pocketDim.modid+":creepy");
if(soundPoolEntry!=null) if (soundPoolEntry != null)
{ {
sndManager.sndSystem.backgroundMusic("LimboMusic", soundPoolEntry.getSoundUrl(), soundPoolEntry.getSoundName(), false); sndManager.sndSystem.backgroundMusic("LimboMusic", soundPoolEntry.getSoundUrl(), soundPoolEntry.getSoundName(), false);
sndManager.sndSystem.play("LimboMusic"); sndManager.sndSystem.play("LimboMusic");
} }
} }
else if(!(world.provider instanceof LimboProvider)) else if (!(world.provider instanceof LimboProvider))
{ {
sndManager.sndSystem.stop("LimboMusic"); sndManager.sndSystem.stop("LimboMusic");
} }
} }
} }
}
} }