From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: simpleauthority Date: Tue, 28 May 2019 03:48:51 -0700 Subject: [PATCH] Implement CraftBlockSoundGroup diff --git a/src/main/java/com/destroystokyo/paper/block/CraftBlockSoundGroup.java b/src/main/java/com/destroystokyo/paper/block/CraftBlockSoundGroup.java new file mode 100644 index 0000000000000000000000000000000000000000..99f99330d01fc61ce8ede9f225b0c42bd8f9ded1 --- /dev/null +++ b/src/main/java/com/destroystokyo/paper/block/CraftBlockSoundGroup.java @@ -0,0 +1,38 @@ +package com.destroystokyo.paper.block; + +import net.minecraft.server.SoundEffectType; +import org.bukkit.Sound; +import org.bukkit.craftbukkit.CraftSound; + +public class CraftBlockSoundGroup implements BlockSoundGroup { + private final SoundEffectType soundEffectType; + + public CraftBlockSoundGroup(SoundEffectType soundEffectType) { + this.soundEffectType = soundEffectType; + } + + @Override + public Sound getBreakSound() { + return CraftSound.getSoundByEffect(soundEffectType.getBreakSound()); + } + + @Override + public Sound getStepSound() { + return CraftSound.getSoundByEffect(soundEffectType.getStepSound()); + } + + @Override + public Sound getPlaceSound() { + return CraftSound.getSoundByEffect(soundEffectType.getPlaceSound()); + } + + @Override + public Sound getHitSound() { + return CraftSound.getSoundByEffect(soundEffectType.getHitSound()); + } + + @Override + public Sound getFallSound() { + return CraftSound.getSoundByEffect(soundEffectType.getFallSound()); + } +} diff --git a/src/main/java/net/minecraft/server/IBlockData.java b/src/main/java/net/minecraft/server/IBlockData.java index cca2bf1045c1305a9defa5241909b50711b85d4c..321eae23c575528788b1b575f17593580d6ba737 100644 --- a/src/main/java/net/minecraft/server/IBlockData.java +++ b/src/main/java/net/minecraft/server/IBlockData.java @@ -276,6 +276,7 @@ public class IBlockData extends BlockDataAbstract implements return this.getBlock().isTicking(this); } + public final SoundEffectType getStepSound() { return this.r(); } // Paper - OBFHELPER public SoundEffectType r() { return this.getBlock().getStepSound(this); } diff --git a/src/main/java/net/minecraft/server/SoundEffectType.java b/src/main/java/net/minecraft/server/SoundEffectType.java index b774d2d8d903acc1ce4c5bd9240b2e96779e1d53..0184bf3fc9e206cec003c5a325d5ee21f6b59dda 100644 --- a/src/main/java/net/minecraft/server/SoundEffectType.java +++ b/src/main/java/net/minecraft/server/SoundEffectType.java @@ -27,10 +27,10 @@ public class SoundEffectType { public static final SoundEffectType w = new SoundEffectType(1.0F, 1.0F, SoundEffects.BLOCK_LANTERN_BREAK, SoundEffects.BLOCK_LANTERN_STEP, SoundEffects.BLOCK_LANTERN_PLACE, SoundEffects.BLOCK_LANTERN_HIT, SoundEffects.BLOCK_LANTERN_FALL); public final float x; public final float y; - private final SoundEffect z; + private final SoundEffect z; public final SoundEffect getBreakSound() { return this.z; } // Paper - OBFHELPER private final SoundEffect A; private final SoundEffect B; - private final SoundEffect C; + private final SoundEffect C; public final SoundEffect getHitSound() { return this.B; } // Paper - OBFHELPER private final SoundEffect D; public SoundEffectType(float f, float f1, SoundEffect soundeffect, SoundEffect soundeffect1, SoundEffect soundeffect2, SoundEffect soundeffect3, SoundEffect soundeffect4) { @@ -51,14 +51,17 @@ public class SoundEffectType { return this.y; } + public final SoundEffect getStepSound() { return this.d(); } // Paper - OBFHELPER public SoundEffect d() { return this.A; } + public final SoundEffect getPlaceSound() { return this.e(); } // Paper - OBFHELPER public SoundEffect e() { return this.B; } + public final SoundEffect getFallSound() { return this.g(); } // Paper - OBFHELPER public SoundEffect g() { return this.D; } diff --git a/src/main/java/org/bukkit/craftbukkit/block/CraftBlock.java b/src/main/java/org/bukkit/craftbukkit/block/CraftBlock.java index 30b7c9038d3a95b80304e052a5d629b461f76e99..1fc7f55fcaa1f9aaa4c675f9fcd508ffb80e9629 100644 --- a/src/main/java/org/bukkit/craftbukkit/block/CraftBlock.java +++ b/src/main/java/org/bukkit/craftbukkit/block/CraftBlock.java @@ -704,4 +704,11 @@ public class CraftBlock implements Block { AxisAlignedBB aabb = shape.getBoundingBox(); return new BoundingBox(getX() + aabb.minX, getY() + aabb.minY, getZ() + aabb.minZ, getX() + aabb.maxX, getY() + aabb.maxY, getZ() + aabb.maxZ); } + + // Paper start + @Override + public com.destroystokyo.paper.block.BlockSoundGroup getSoundGroup() { + return new com.destroystokyo.paper.block.CraftBlockSoundGroup(getNMSBlock().getBlockData().getStepSound()); + } + // Paper end }