summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--src/main/java/org/bukkit/craftbukkit/CraftSound.java140
-rw-r--r--src/main/java/org/bukkit/craftbukkit/CraftWorld.java2
-rw-r--r--src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java3
-rw-r--r--src/test/java/org/bukkit/SoundTest.java17
4 files changed, 160 insertions, 2 deletions
diff --git a/src/main/java/org/bukkit/craftbukkit/CraftSound.java b/src/main/java/org/bukkit/craftbukkit/CraftSound.java
new file mode 100644
index 00000000..0bdb4937
--- /dev/null
+++ b/src/main/java/org/bukkit/craftbukkit/CraftSound.java
@@ -0,0 +1,140 @@
+package org.bukkit.craftbukkit;
+
+import static org.bukkit.Sound.*;
+
+import org.apache.commons.lang.Validate;
+import org.bukkit.Sound;
+
+public class CraftSound {
+ private static String[] sounds = new String[Sound.values().length];
+
+ static {
+ sounds[AMBIENCE_CAVE.ordinal()] = "ambient.cave.cave";
+ sounds[AMBIENCE_RAIN.ordinal()] = "ambient.weather.rain";
+ sounds[AMBIENCE_THUNDER.ordinal()] = "ambient.weather.thunder";
+ sounds[ARROW_HIT.ordinal()] = "random.bowhit";
+ sounds[ARROW_SHAKE.ordinal()] = "random.drr";
+ sounds[BREATH.ordinal()] = "random.breath";
+ sounds[BURP.ordinal()] = "random.burp";
+ sounds[CHEST_CLOSE.ordinal()] = "random.chestclosed";
+ sounds[CHEST_OPEN.ordinal()] = "random.chestopen";
+ sounds[CLICK.ordinal()] = "random.click";
+ sounds[DOOR_CLOSE.ordinal()] = "random.door_close";
+ sounds[DOOR_OPEN.ordinal()] = "random.door_open";
+ sounds[DRINK.ordinal()] = "random.drink";
+ sounds[EAT.ordinal()] = "random.eat";
+ sounds[EXPLODE.ordinal()] = "random.explode";
+ sounds[EXPLODE_OLD.ordinal()] = "random.old_explode";
+ sounds[FALL_BIG.ordinal()] = "damage.fallbig";
+ sounds[FALL_SMALL.ordinal()] = "damage.fallsmall";
+ sounds[FIRE.ordinal()] = "fire.fire";
+ sounds[FIRE_IGNITE.ordinal()] = "fire.ignite";
+ sounds[FIZZ.ordinal()] = "random.fizz";
+ sounds[FUSE.ordinal()] = "random.fuse";
+ sounds[HURT.ordinal()] = "random.hurt";
+ sounds[HURT_FLESH.ordinal()] = "damage.hurtflesh";
+ sounds[ITEM_BREAK.ordinal()] = "random.break";
+ sounds[ITEM_PICKUP.ordinal()] = "random.pop";
+ sounds[LAVA.ordinal()] = "liquid.lava";
+ sounds[LAVA_POP.ordinal()] = "liquid.lavapop";
+ sounds[LEVEL_UP.ordinal()] = "random.levelup";
+ sounds[NOTE_PIANO.ordinal()] = "note.harp";
+ sounds[NOTE_BASS_DRUM.ordinal()] = "note.bd";
+ sounds[NOTE_STICKS.ordinal()] = "note.hat";
+ sounds[NOTE_BASS_GUITAR.ordinal()] = "note.bassattack";
+ sounds[NOTE_SNARE_DRUM.ordinal()] = "note.snare";
+ // NOTE_BASS("note.bass"),
+ sounds[NOTE_PLING.ordinal()] = "note.pling";
+ sounds[ORB_PICKUP.ordinal()] = "random.orb";
+ sounds[PISTON_EXTEND.ordinal()] = "tile.piston.out";
+ sounds[PISTON_RETRACT.ordinal()] = "tile.piston.in";
+ sounds[PORTAL.ordinal()] = "portal.portal";
+ sounds[PORTAL_TRAVEL.ordinal()] = "portal.travel";
+ sounds[PORTAL_TRIGGER.ordinal()] = "portal.trigger";
+ sounds[SHOOT_ARROW.ordinal()] = "random.bow";
+ sounds[SPLASH.ordinal()] = "random.splash";
+ sounds[SPLASH2.ordinal()] = "liquid.splash";
+ sounds[STEP_GRAVEL.ordinal()] = "step.gravel";
+ sounds[STEP_SAND.ordinal()] = "step.sand";
+ sounds[STEP_SNOW.ordinal()] = "step.snow";
+ sounds[STEP_STONE.ordinal()] = "step.stone";
+ sounds[STEP_WOOD.ordinal()] = "step.wood";
+ sounds[STEP_WOOL.ordinal()] = "step.wool";
+ sounds[WATER.ordinal()] = "liquid.water";
+ sounds[WOOD_CLICK.ordinal()] = "random.wood click";
+ // Mob sounds
+ sounds[BLAZE_BREATH.ordinal()] = "mob.blaze.breath";
+ sounds[BLAZE_DEATH.ordinal()] = "mob.blaze.death";
+ sounds[BLAZE_HIT.ordinal()] = "mob.blaze.hit";
+ sounds[CAT_HISS.ordinal()] = "mob.cat.hiss";
+ sounds[CAT_HIT.ordinal()] = "mob.cat.hitt";
+ sounds[CAT_MEOW.ordinal()] = "mob.cat.meow";
+ sounds[CAT_PURR.ordinal()] = "mob.cat.purr";
+ sounds[CAT_PURREOW.ordinal()] = "mob.cat.purreow";
+ sounds[CHICKEN_IDLE.ordinal()] = "mob.chicken";
+ sounds[CHICKEN_HURT.ordinal()] = "mob.chickenhurt";
+ sounds[CHICKEN_EGG_POP.ordinal()] = "mob.chickenplop";
+ sounds[COW_IDLE.ordinal()] = "mob.cow";
+ sounds[COW_HURT.ordinal()] = "mob.cowhurt";
+ sounds[CREEPER_HISS.ordinal()] = "mob.creeper";
+ sounds[CREEPER_DEATH.ordinal()] = "mob.creeperdeath";
+ sounds[ENDERMAN_DEATH.ordinal()] = "mob.endermen.death";
+ sounds[ENDERMAN_HIT.ordinal()] = "mob.endermen.hit";
+ sounds[ENDERMAN_IDLE.ordinal()] = "mob.endermen.idle";
+ sounds[ENDERMAN_TELEPORT.ordinal()] = "mob.endermen.portal";
+ sounds[ENDERMAN_SCREAM.ordinal()] = "mob.endermen.scream";
+ sounds[ENDERMAN_STARE.ordinal()] = "mob.endermen.stare";
+ sounds[GHAST_SCREAM.ordinal()] = "mob.ghast.scream";
+ sounds[GHAST_SCREAM2.ordinal()] = "mob.ghast.affectionate scream";
+ sounds[GHAST_CHARGE.ordinal()] = "mob.ghast.charge";
+ sounds[GHAST_DEATH.ordinal()] = "mob.ghast.death";
+ sounds[GHAST_FIREBALL.ordinal()] = "mob.ghast.fireball";
+ sounds[GHAST_MOAN.ordinal()] = "mob.ghast.moan";
+ sounds[IRONGOLEM_DEATH.ordinal()] = "mob.irongolem.death";
+ sounds[IRONGOLEM_HIT.ordinal()] = "mob.irongolem.hit";
+ sounds[IRONGOLEM_THROW.ordinal()] = "mob.irongolem.throw";
+ sounds[IRONGOLEM_WALK.ordinal()] = "mob.irongolem.walk";
+ sounds[MAGMACUBE_WALK.ordinal()] = "mob.magmacube.small";
+ sounds[MAGMACUBE_WALK2.ordinal()] = "mob.magmacube.big";
+ sounds[MAGMACUBE_JUMP.ordinal()] = "mob.magmacube.jump";
+ sounds[PIG_IDLE.ordinal()] = "mob.pig";
+ sounds[PIG_DEATH.ordinal()] = "mob.pigdeath";
+ sounds[SHEEP_IDLE.ordinal()] = "mob.sheep";
+ sounds[SILVERFISH_HIT.ordinal()] = "mob.silverfish.hit";
+ sounds[SILVERFISH_KILL.ordinal()] = "mob.silverfish.kill";
+ sounds[SILVERFISH_IDLE.ordinal()] = "mob.silverfish.say";
+ sounds[SILVERFISH_WALK.ordinal()] = "mob.silverfish.step";
+ sounds[SKELETON_IDLE.ordinal()] = "mob.skeleton";
+ sounds[SKELETON_DEATH.ordinal()] = "mob.skeletondeath";
+ sounds[SKELETON_HURT.ordinal()] = "mob.skeletonhurt";
+ sounds[SLIME_IDLE.ordinal()] = "mob.slime";
+ sounds[SLIME_ATTACK.ordinal()] = "mob.slimeattack";
+ sounds[SPIDER_IDLE.ordinal()] = "mob.spider";
+ sounds[SPIDER_DEATH.ordinal()] = "mob.spiderdeath";
+ sounds[WOLF_BARK.ordinal()] = "mob.wolf.bark";
+ sounds[WOLF_DEATH.ordinal()] = "mob.wolf.death";
+ sounds[WOLF_GROWL.ordinal()] = "mob.wolf.growl";
+ sounds[WOLF_HOWL.ordinal()] = "mob.wolf.howl";
+ sounds[WOLF_HURT.ordinal()] = "mob.wolf.hurt";
+ sounds[WOLF_PANT.ordinal()] = "mob.wolf.panting";
+ sounds[WOLF_SHAKE.ordinal()] = "mob.wolf.shake";
+ sounds[WOLF_WHINE.ordinal()] = "mob.wolf.whine";
+ sounds[ZOMBIE_METAL.ordinal()] = "mob.zombie.metal";
+ sounds[ZOMBIE_WOOD.ordinal()] = "mob.zombie.wood";
+ sounds[ZOMBIE_WOODBREAK.ordinal()] = "mob.zombie.woodbreak";
+ sounds[ZOMBIE_IDLE.ordinal()] = "mob.zombie";
+ sounds[ZOMBIE_DEATH.ordinal()] = "mob.zombiedeath";
+ sounds[ZOMBIE_HURT.ordinal()] = "mob.zombiehurt";
+ sounds[ZOMBIE_PIG_IDLE.ordinal()] = "mob.zombiepig.zpig";
+ sounds[ZOMBIE_PIG_ANGRY.ordinal()] = "mob.zombiepig.zpigangry";
+ sounds[ZOMBIE_PIG_DEATH.ordinal()] = "mob.zombiepig.zpigdeath";
+ sounds[ZOMBIE_PIG_HURT.ordinal()] = "mob.zombiepig.zpighurt";
+ }
+
+ public static String getSound(final Sound sound) {
+ Validate.notNull(sound, "Sound cannot be null");
+ return sounds[sound.ordinal()];
+ }
+
+ private CraftSound() {}
+}
diff --git a/src/main/java/org/bukkit/craftbukkit/CraftWorld.java b/src/main/java/org/bukkit/craftbukkit/CraftWorld.java
index 41f0935b..a8c8a609 100644
--- a/src/main/java/org/bukkit/craftbukkit/CraftWorld.java
+++ b/src/main/java/org/bukkit/craftbukkit/CraftWorld.java
@@ -1171,6 +1171,6 @@ public class CraftWorld implements World {
double y = loc.getY();
double z = loc.getZ();
- getHandle().makeSound(x, y, z, sound.getSound(), volume, pitch);
+ getHandle().makeSound(x, y, z, CraftSound.getSound(sound), volume, pitch);
}
}
diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java
index ab81041a..4e6dfb5c 100644
--- a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java
+++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java
@@ -33,6 +33,7 @@ import org.bukkit.craftbukkit.conversations.ConversationTracker;
import org.bukkit.craftbukkit.CraftEffect;
import org.bukkit.craftbukkit.CraftOfflinePlayer;
import org.bukkit.craftbukkit.CraftServer;
+import org.bukkit.craftbukkit.CraftSound;
import org.bukkit.craftbukkit.CraftWorld;
import org.bukkit.craftbukkit.map.CraftMapView;
import org.bukkit.craftbukkit.map.RenderData;
@@ -257,7 +258,7 @@ public class CraftPlayer extends CraftHumanEntity implements Player {
double y = loc.getBlockY() + 0.5;
double z = loc.getBlockZ() + 0.5;
- Packet62NamedSoundEffect packet = new Packet62NamedSoundEffect(sound.getSound(), x, y, z, volume, pitch);
+ Packet62NamedSoundEffect packet = new Packet62NamedSoundEffect(CraftSound.getSound(sound), x, y, z, volume, pitch);
getHandle().netServerHandler.sendPacket(packet);
}
diff --git a/src/test/java/org/bukkit/SoundTest.java b/src/test/java/org/bukkit/SoundTest.java
new file mode 100644
index 00000000..ca45067f
--- /dev/null
+++ b/src/test/java/org/bukkit/SoundTest.java
@@ -0,0 +1,17 @@
+package org.bukkit;
+
+import static org.junit.Assert.assertNotNull;
+
+import org.bukkit.craftbukkit.CraftSound;
+import org.junit.Test;
+
+
+public class SoundTest {
+
+ @Test
+ public void testGetSound() {
+ for (Sound sound : Sound.values()) {
+ assertNotNull(sound.name(), CraftSound.getSound(sound));
+ }
+ }
+}