PaperMC/Spigot-API-Patches/0182-Add-BlockSoundGroup-interface.patch
Aikar 36f34f01c0
Updated Upstream (Bukkit/CraftBukkit)
Upstream has released updates that appears to apply and compile correctly.
This update has not been tested by PaperMC and as with ANY update, please do your own testing

Bukkit Changes:
da9ef3c5 #496: Add methods to get/set ItemStacks in EquipmentSlots
3abebc9f #492: Let Tameable extend Animals rather than Entity
941111a0 #495: Expose ItemStack and hand used in PlayerShearEntityEvent
4fe19cae #494: InventoryView - Add missing Brewing FUEL_TIME

CraftBukkit Changes:
933e9094 #664: Add methods to get/set ItemStacks in EquipmentSlots
18722312 #662: Expose ItemStack and hand used in PlayerShearEntityEvent
2020-05-06 06:05:22 -04:00

94 lines
2.7 KiB
Diff

From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001
From: simpleauthority <jacob@algorithmjunkie.com>
Date: Tue, 28 May 2019 03:41:28 -0700
Subject: [PATCH] Add BlockSoundGroup interface
This PR adds the getSoundGroup() method in Block which returns a BlockSoundGroup
diff --git a/src/main/java/com/destroystokyo/paper/block/BlockSoundGroup.java b/src/main/java/com/destroystokyo/paper/block/BlockSoundGroup.java
new file mode 100644
index 0000000000000000000000000000000000000000..8cf87d228a7006658d52ce0da16c2d74f4706545
--- /dev/null
+++ b/src/main/java/com/destroystokyo/paper/block/BlockSoundGroup.java
@@ -0,0 +1,52 @@
+package com.destroystokyo.paper.block;
+
+import org.bukkit.Sound;
+import org.bukkit.block.Block;
+import org.jetbrains.annotations.NotNull;
+
+/**
+ * Represents the sounds that a {@link Block} makes in certain situations
+ * <p>
+ * The sound group includes break, step, place, hit, and fall sounds.
+ */
+public interface BlockSoundGroup {
+ /**
+ * Gets the sound that plays when breaking this block
+ *
+ * @return The break sound
+ */
+ @NotNull
+ Sound getBreakSound();
+
+ /**
+ * Gets the sound that plays when stepping on this block
+ *
+ * @return The step sound
+ */
+ @NotNull
+ Sound getStepSound();
+
+ /**
+ * Gets the sound that plays when placing this block
+ *
+ * @return The place sound
+ */
+ @NotNull
+ Sound getPlaceSound();
+
+ /**
+ * Gets the sound that plays when hitting this block
+ *
+ * @return The hit sound
+ */
+ @NotNull
+ Sound getHitSound();
+
+ /**
+ * Gets the sound that plays when this block falls
+ *
+ * @return The fall sound
+ */
+ @NotNull
+ Sound getFallSound();
+}
diff --git a/src/main/java/org/bukkit/block/Block.java b/src/main/java/org/bukkit/block/Block.java
index 41f6b849186346f9a4e254122d2448a7ea8e0ee9..9713867950572fdc8c0f8798afcb37712a6a4e85 100644
--- a/src/main/java/org/bukkit/block/Block.java
+++ b/src/main/java/org/bukkit/block/Block.java
@@ -1,6 +1,7 @@
package org.bukkit.block;
import java.util.Collection;
+
import org.bukkit.Chunk;
import org.bukkit.FluidCollisionMode;
import org.bukkit.Location;
@@ -539,4 +540,16 @@ public interface Block extends Metadatable {
*/
@NotNull
BoundingBox getBoundingBox();
+
+ // Paper start
+ /**
+ * Gets the {@link com.destroystokyo.paper.block.BlockSoundGroup} for this block.
+ * <p>
+ * This object contains the block, step, place, hit, and fall sounds.
+ *
+ * @return the sound group for this block
+ */
+ @NotNull
+ com.destroystokyo.paper.block.BlockSoundGroup getSoundGroup();
+ // Paper end
}