From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: simpleauthority 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 + *

+ * 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 79c0fa47a0d733d1547f8926d88169939c986d8c..5e92f8f6ba5368ae934c24154ab13fbc6a46272f 100644 --- a/src/main/java/org/bukkit/block/Block.java +++ b/src/main/java/org/bukkit/block/Block.java @@ -596,4 +596,16 @@ public interface Block extends Metadatable { * @return true if the block data can be placed here */ boolean canPlace(@NotNull BlockData data); + + // Paper start + /** + * Gets the {@link com.destroystokyo.paper.block.BlockSoundGroup} for this block. + *

+ * 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 }