From 43e67bdbd3635b5def711e726c74fac91df8a25b Mon Sep 17 00:00:00 2001 From: CannibalVox Date: Tue, 10 Mar 2015 10:48:36 -0500 Subject: [PATCH] Don't crash server on startup trying to use sounds --- .../mod_pocketDim/CommonProxy.java | 7 ++- .../mod_pocketDim/EventHookContainer.java | 26 --------- .../mod_pocketDim/mod_pocketDim.java | 2 + .../mod_pocketDimClient/ClientOnlyHooks.java | 53 +++++++++++++++++++ .../mod_pocketDimClient/ClientProxy.java | 10 +++- 5 files changed, 69 insertions(+), 29 deletions(-) create mode 100644 src/main/java/StevenDimDoors/mod_pocketDimClient/ClientOnlyHooks.java diff --git a/src/main/java/StevenDimDoors/mod_pocketDim/CommonProxy.java b/src/main/java/StevenDimDoors/mod_pocketDim/CommonProxy.java index 9a1666d..eb82a4f 100644 --- a/src/main/java/StevenDimDoors/mod_pocketDim/CommonProxy.java +++ b/src/main/java/StevenDimDoors/mod_pocketDim/CommonProxy.java @@ -2,6 +2,7 @@ package StevenDimDoors.mod_pocketDim; import java.io.File; import java.io.FileOutputStream; import StevenDimDoors.mod_pocketDim.blocks.BaseDimDoor; +import StevenDimDoors.mod_pocketDim.config.DDProperties; import StevenDimDoors.mod_pocketDim.tileentities.TileEntityDimDoor; import net.minecraft.entity.Entity; @@ -12,6 +13,8 @@ import net.minecraft.tileentity.TileEntity; import net.minecraft.world.World; import cpw.mods.fml.common.FMLCommonHandler; import cpw.mods.fml.common.network.IGuiHandler; +import net.minecraftforge.common.MinecraftForge; + public class CommonProxy implements IGuiHandler { public static String BLOCK_PNG = "/PocketBlockTextures.png"; @@ -145,7 +148,7 @@ public class CommonProxy implements IGuiHandler } } - - + public void registerSidedHooks(DDProperties properties) { + } } \ No newline at end of file diff --git a/src/main/java/StevenDimDoors/mod_pocketDim/EventHookContainer.java b/src/main/java/StevenDimDoors/mod_pocketDim/EventHookContainer.java index e693738..f52eb7a 100644 --- a/src/main/java/StevenDimDoors/mod_pocketDim/EventHookContainer.java +++ b/src/main/java/StevenDimDoors/mod_pocketDim/EventHookContainer.java @@ -51,12 +51,9 @@ public class EventHookContainer private DDWorldProperties worldProperties; private RiftRegenerator regenerator; - private ISound limboMusic; - public EventHookContainer(DDProperties properties) { this.properties = properties; - this.limboMusic = PositionedSoundRecord.func_147673_a(new ResourceLocation(mod_pocketDim.modid + ":creepy")); } public void setSessionFields(DDWorldProperties worldProperties, RiftRegenerator regenerator) @@ -82,24 +79,6 @@ public class EventHookContainer */ } - @SideOnly(Side.CLIENT) - @SubscribeEvent - public void onSoundEffectResult(PlaySoundEvent17 event) - { - ResourceLocation playingSound = event.sound.getPositionedSoundLocation(); - if (playingSound != null && playingSound.getResourceDomain().equals("minecraft") && (playingSound.getResourcePath().equals("music.game") || playingSound.getResourcePath().equals("music.game.creative"))) { - if (FMLClientHandler.instance().getClient().thePlayer.worldObj.provider.dimensionId == mod_pocketDim.properties.LimboDimensionID) { - ResourceLocation sound = new ResourceLocation(mod_pocketDim.modid + ":creepy"); - - if (!Minecraft.getMinecraft().getSoundHandler().isSoundPlaying(limboMusic)) { - event.result = limboMusic; - } else { - event.setResult(Event.Result.DENY); - } - } - } - } - @SubscribeEvent public void onPlayerEvent(PlayerInteractEvent event) { @@ -144,11 +123,6 @@ public class EventHookContainer { PocketManager.load(); } - - if (event.world.provider.dimensionId == mod_pocketDim.properties.LimboDimensionID && - event.world.isRemote && !Minecraft.getMinecraft().getSoundHandler().isSoundPlaying(limboMusic)) { - Minecraft.getMinecraft().getSoundHandler().playSound(limboMusic); - } } @SubscribeEvent diff --git a/src/main/java/StevenDimDoors/mod_pocketDim/mod_pocketDim.java b/src/main/java/StevenDimDoors/mod_pocketDim/mod_pocketDim.java index ea118d0..645f239 100644 --- a/src/main/java/StevenDimDoors/mod_pocketDim/mod_pocketDim.java +++ b/src/main/java/StevenDimDoors/mod_pocketDim/mod_pocketDim.java @@ -177,6 +177,8 @@ public class mod_pocketDim hooks = new EventHookContainer(properties); MinecraftForge.EVENT_BUS.register(hooks); MinecraftForge.TERRAIN_GEN_BUS.register(hooks); + + proxy.registerSidedHooks(properties); } @EventHandler diff --git a/src/main/java/StevenDimDoors/mod_pocketDimClient/ClientOnlyHooks.java b/src/main/java/StevenDimDoors/mod_pocketDimClient/ClientOnlyHooks.java new file mode 100644 index 0000000..24d2622 --- /dev/null +++ b/src/main/java/StevenDimDoors/mod_pocketDimClient/ClientOnlyHooks.java @@ -0,0 +1,53 @@ +package StevenDimDoors.mod_pocketDimClient; + +import StevenDimDoors.mod_pocketDim.config.DDProperties; +import StevenDimDoors.mod_pocketDim.mod_pocketDim; +import cpw.mods.fml.client.FMLClientHandler; +import cpw.mods.fml.common.eventhandler.Event; +import cpw.mods.fml.common.eventhandler.SubscribeEvent; +import cpw.mods.fml.relauncher.Side; +import cpw.mods.fml.relauncher.SideOnly; +import net.minecraft.client.Minecraft; +import net.minecraft.client.audio.ISound; +import net.minecraft.client.audio.PositionedSoundRecord; +import net.minecraft.util.ResourceLocation; +import net.minecraftforge.client.event.sound.PlaySoundEvent17; +import net.minecraftforge.event.world.WorldEvent; + +public class ClientOnlyHooks { + private DDProperties properties; + + private ISound limboMusic; + + public ClientOnlyHooks(DDProperties properties) { + this.properties = properties; + this.limboMusic = PositionedSoundRecord.func_147673_a(new ResourceLocation(mod_pocketDim.modid + ":creepy")); + } + + + @SideOnly(Side.CLIENT) + @SubscribeEvent + public void onSoundEffectResult(PlaySoundEvent17 event) + { + ResourceLocation playingSound = event.sound.getPositionedSoundLocation(); + if (playingSound != null && playingSound.getResourceDomain().equals("minecraft") && (playingSound.getResourcePath().equals("music.game") || playingSound.getResourcePath().equals("music.game.creative"))) { + if (FMLClientHandler.instance().getClient().thePlayer.worldObj.provider.dimensionId == mod_pocketDim.properties.LimboDimensionID) { + ResourceLocation sound = new ResourceLocation(mod_pocketDim.modid + ":creepy"); + + if (!Minecraft.getMinecraft().getSoundHandler().isSoundPlaying(limboMusic)) { + event.result = limboMusic; + } else { + event.setResult(Event.Result.DENY); + } + } + } + } + + @SubscribeEvent + public void onWorldLoad(WorldEvent.Load event) { + if (event.world.provider.dimensionId == mod_pocketDim.properties.LimboDimensionID && + event.world.isRemote && !Minecraft.getMinecraft().getSoundHandler().isSoundPlaying(limboMusic)) { + Minecraft.getMinecraft().getSoundHandler().playSound(limboMusic); + } + } +} diff --git a/src/main/java/StevenDimDoors/mod_pocketDimClient/ClientProxy.java b/src/main/java/StevenDimDoors/mod_pocketDimClient/ClientProxy.java index 9387b13..d3407fa 100644 --- a/src/main/java/StevenDimDoors/mod_pocketDimClient/ClientProxy.java +++ b/src/main/java/StevenDimDoors/mod_pocketDimClient/ClientProxy.java @@ -1,4 +1,5 @@ package StevenDimDoors.mod_pocketDimClient; +import StevenDimDoors.mod_pocketDim.config.DDProperties; import net.minecraft.tileentity.TileEntity; import net.minecraft.world.World; import StevenDimDoors.mod_pocketDim.CommonProxy; @@ -12,6 +13,7 @@ import StevenDimDoors.mod_pocketDim.tileentities.TileEntityTransTrapdoor; import StevenDimDoors.mod_pocketDim.watcher.ClientLinkData; import cpw.mods.fml.client.registry.ClientRegistry; import cpw.mods.fml.client.registry.RenderingRegistry; +import net.minecraftforge.common.MinecraftForge; public class ClientProxy extends CommonProxy @@ -49,5 +51,11 @@ public class ClientProxy extends CommonProxy public void printStringClient(String string) { } - + + @Override + public void registerSidedHooks(DDProperties properties) { + ClientOnlyHooks hooks = new ClientOnlyHooks(properties); + MinecraftForge.EVENT_BUS.register(hooks); + MinecraftForge.TERRAIN_GEN_BUS.register(hooks); + } } \ No newline at end of file