From 7564d602419f10af5c1b5b1758eb0455250ea169 Mon Sep 17 00:00:00 2001 From: md_5 Date: Sat, 19 Nov 2016 14:27:18 +1100 Subject: [PATCH] Add stopSound for specific sound category & unit test for SoundCategory --- .../org/bukkit/craftbukkit/entity/CraftPlayer.java | 14 ++++++++++++-- src/test/java/org/bukkit/SoundTest.java | 14 ++++++++++++++ 2 files changed, 26 insertions(+), 2 deletions(-) diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java index 1904fa72d7..ab638ba759 100644 --- a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java +++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java @@ -322,15 +322,25 @@ public class CraftPlayer extends CraftHumanEntity implements Player { @Override public void stopSound(Sound sound) { - stopSound(CraftSound.getSound(sound)); + stopSound(sound, null); } @Override public void stopSound(String sound) { + stopSound(sound, null); + } + + @Override + public void stopSound(Sound sound, org.bukkit.SoundCategory category) { + stopSound(CraftSound.getSound(sound), category); + } + + @Override + public void stopSound(String sound, org.bukkit.SoundCategory category) { if (getHandle().playerConnection == null) return; PacketDataSerializer packetdataserializer = new PacketDataSerializer(Unpooled.buffer()); - packetdataserializer.a(""); + packetdataserializer.a(category == null ? "" : net.minecraft.server.SoundCategory.valueOf(category.name()).a()); packetdataserializer.a(sound); getHandle().playerConnection.sendPacket(new PacketPlayOutCustomPayload("MC|StopSound", packetdataserializer)); } diff --git a/src/test/java/org/bukkit/SoundTest.java b/src/test/java/org/bukkit/SoundTest.java index 8bb093daa9..ea1d0c842e 100644 --- a/src/test/java/org/bukkit/SoundTest.java +++ b/src/test/java/org/bukkit/SoundTest.java @@ -24,4 +24,18 @@ public class SoundTest { assertNotNull(effect + "", Sound.valueOf(effect.a().replace('.', '_').toUpperCase(java.util.Locale.ENGLISH))); } } + + @Test + public void testCategory() { + for (SoundCategory category : SoundCategory.values()) { + assertNotNull(category + "", net.minecraft.server.SoundCategory.valueOf(category.name())); + } + } + + @Test + public void testCategoryReverse() { + for (net.minecraft.server.SoundCategory category : net.minecraft.server.SoundCategory.values()) { + assertNotNull(category + "", SoundCategory.valueOf(category.name())); + } + } }