Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- /**
- * Checks if given sound is being played.
- * @param res
- * The sound that is checked for. Format: {@code isSoundPlaying(new ResourceLocation("modid:mySound")}
- */
- public static boolean isSoundPlaying(ResourceLocation res)
- {
- HashBiMap<String, ISound> playing = null;
- SoundManager manager = null;
- try
- {
- // handler -> manager -> playingList
- // gets SoundHandler
- net.minecraft.client.audio.SoundHandler handler;
- Field field_handler = Minecraft.class.getDeclaredField("mcSoundHandler");
- field_handler.setAccessible(true);
- handler = (net.minecraft.client.audio.SoundHandler) field_handler.get(Minecraft.getMinecraft());
- // gets SoundManager
- Field field_manager = net.minecraft.client.audio.SoundHandler.class.getDeclaredField("sndManager");
- field_manager.setAccessible(true);
- manager = (SoundManager) field_manager.get(handler);
- // gets playing list
- Field field_playing = SoundManager.class.getDeclaredField("playingSounds");
- field_playing.setAccessible(true);
- playing = (HashBiMap<String, ISound>) field_playing.get(manager);
- }
- catch (Exception ex)
- {
- // ex.printStackTrace();
- }
- if (playing != null)
- {
- ISound[] array_playing = playing.values().toArray(new ISound[playing.values().size()]);
- for (int i = 0; i < array_playing.length; i++)
- if (array_playing[i].getPositionedSoundLocation().equals(res))
- return true;
- }
- return false;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement