Commits

jameslfc19 authored and md_5 committed 8408de02d23
#716: Fix barrel open API playing sound twice
No tags

src/main/java/org/bukkit/craftbukkit/block/CraftBarrel.java

Modified
1 1 package org.bukkit.craftbukkit.block;
2 2
3 +import net.minecraft.server.BlockBarrel;
3 4 import net.minecraft.server.IBlockData;
4 5 import net.minecraft.server.SoundEffects;
5 6 import net.minecraft.server.TileEntityBarrel;
6 7 import org.bukkit.Material;
7 8 import org.bukkit.block.Barrel;
8 9 import org.bukkit.block.Block;
9 10 import org.bukkit.craftbukkit.inventory.CraftInventory;
10 11 import org.bukkit.inventory.Inventory;
11 12
12 13 public class CraftBarrel extends CraftLootable<TileEntityBarrel> implements Barrel {
31 32 }
32 33
33 34 return new CraftInventory(this.getTileEntity());
34 35 }
35 36
36 37 @Override
37 38 public void open() {
38 39 requirePlaced();
39 40 if (!getTileEntity().opened) {
40 41 IBlockData blockData = getTileEntity().getBlock();
41 - getTileEntity().setOpenFlag(blockData, true);
42 - getTileEntity().playOpenSound(blockData, SoundEffects.BLOCK_BARREL_OPEN);
42 + boolean open = blockData.get(BlockBarrel.b);
43 +
44 + if (!open) {
45 + getTileEntity().setOpenFlag(blockData, true);
46 + getTileEntity().playOpenSound(blockData, SoundEffects.BLOCK_BARREL_OPEN);
47 + }
43 48 }
44 49 getTileEntity().opened = true;
45 50 }
46 51
47 52 @Override
48 53 public void close() {
49 54 requirePlaced();
50 55 if (getTileEntity().opened) {
51 56 IBlockData blockData = getTileEntity().getBlock();
52 57 getTileEntity().setOpenFlag(blockData, false);

Everything looks good. We'll let you know here if there's anything you should know about.

Add shortcut