summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--src/main/java/org/bukkit/SoundCategory.java18
-rw-r--r--src/main/java/org/bukkit/World.java28
-rw-r--r--src/main/java/org/bukkit/entity/Player.java29
3 files changed, 75 insertions, 0 deletions
diff --git a/src/main/java/org/bukkit/SoundCategory.java b/src/main/java/org/bukkit/SoundCategory.java
new file mode 100644
index 00000000..ac5e263d
--- /dev/null
+++ b/src/main/java/org/bukkit/SoundCategory.java
@@ -0,0 +1,18 @@
+package org.bukkit;
+
+/**
+ * An Enum of categories for sounds.
+ */
+public enum SoundCategory {
+
+ MASTER,
+ MUSIC,
+ RECORDS,
+ WEATHER,
+ BLOCKS,
+ HOSTILE,
+ NEUTRAL,
+ PLAYERS,
+ AMBIENT,
+ VOICE;
+}
diff --git a/src/main/java/org/bukkit/World.java b/src/main/java/org/bukkit/World.java
index c14840a2..8dd254aa 100644
--- a/src/main/java/org/bukkit/World.java
+++ b/src/main/java/org/bukkit/World.java
@@ -1156,6 +1156,34 @@ public interface World extends PluginMessageRecipient, Metadatable {
void playSound(Location location, String sound, float volume, float pitch);
/**
+ * Play a Sound at the provided Location in the World.
+ * <p>
+ * This function will fail silently if Location or Sound are null.
+ *
+ * @param location The location to play the sound
+ * @param sound The sound to play
+ * @param category the category of the sound
+ * @param volume The volume of the sound
+ * @param pitch The pitch of the sound
+ */
+ void playSound(Location location, Sound sound, SoundCategory category, float volume, float pitch);
+
+ /**
+ * Play a Sound at the provided Location in the World.
+ * <p>
+ * This function will fail silently if Location or Sound are null. No sound
+ * will be heard by the players if their clients do not have the respective
+ * sound for the value passed.
+ *
+ * @param location the location to play the sound
+ * @param sound the internal sound name to play
+ * @param category the category of the sound
+ * @param volume the volume of the sound
+ * @param pitch the pitch of the sound
+ */
+ void playSound(Location location, String sound, SoundCategory category, float volume, float pitch);
+
+ /**
* Get existing rules
*
* @return An array of rules
diff --git a/src/main/java/org/bukkit/entity/Player.java b/src/main/java/org/bukkit/entity/Player.java
index 73816a05..d3210229 100644
--- a/src/main/java/org/bukkit/entity/Player.java
+++ b/src/main/java/org/bukkit/entity/Player.java
@@ -13,6 +13,7 @@ import org.bukkit.Note;
import org.bukkit.OfflinePlayer;
import org.bukkit.Particle;
import org.bukkit.Sound;
+import org.bukkit.SoundCategory;
import org.bukkit.Statistic;
import org.bukkit.WeatherType;
import org.bukkit.command.CommandSender;
@@ -242,6 +243,34 @@ public interface Player extends HumanEntity, Conversable, CommandSender, Offline
public void playSound(Location location, String sound, float volume, float pitch);
/**
+ * Play a sound for a player at the location.
+ * <p>
+ * This function will fail silently if Location or Sound are null.
+ *
+ * @param location The location to play the sound
+ * @param sound The sound to play
+ * @param category The category of the sound
+ * @param volume The volume of the sound
+ * @param pitch The pitch of the sound
+ */
+ public void playSound(Location location, Sound sound, SoundCategory category, float volume, float pitch);
+
+ /**
+ * Play a sound for a player at the location.
+ * <p>
+ * This function will fail silently if Location or Sound are null. No sound
+ * will be heard by the player if their client does not have the respective
+ * sound for the value passed.
+ *
+ * @param location the location to play the sound
+ * @param sound the internal sound name to play
+ * @param category The category of the sound
+ * @param volume the volume of the sound
+ * @param pitch the pitch of the sound
+ */
+ public void playSound(Location location, String sound, SoundCategory category, float volume, float pitch);
+
+ /**
* Stop the specified sound from playing.
*
* @param sound the sound to stop