SPIGOT-4314: Ability to change item in frame without playing sound

This commit is contained in:
simpleauthority 2018-09-11 00:09:10 -07:00 committed by md_5
parent b6bf6aa3ba
commit 953e1d601a
2 changed files with 27 additions and 1 deletions

View file

@ -12,3 +12,25 @@
this.b(damagesource.getEntity(), false); this.b(damagesource.getEntity(), false);
this.a(SoundEffects.ENTITY_ITEM_FRAME_REMOVE_ITEM, 1.0F, 1.0F); this.a(SoundEffects.ENTITY_ITEM_FRAME_REMOVE_ITEM, 1.0F, 1.0F);
} }
@@ -170,6 +175,12 @@
}
private void setItem(ItemStack itemstack, boolean flag) {
+ // CraftBukkit start
+ this.setItem(itemstack, flag, true);
+ }
+
+ public void setItem(ItemStack itemstack, boolean flag, boolean playSound) {
+ // CraftBukkit end
if (!itemstack.isEmpty()) {
itemstack = itemstack.cloneItemStack();
itemstack.setCount(1);
@@ -177,7 +188,7 @@
}
this.getDataWatcher().set(EntityItemFrame.e, itemstack);
- if (!itemstack.isEmpty()) {
+ if (!itemstack.isEmpty() && playSound) { // CraftBukkit
this.a(SoundEffects.ENTITY_ITEM_FRAME_ADD_ITEM, 1.0F, 1.0F);
}

View file

@ -57,7 +57,11 @@ public class CraftItemFrame extends CraftHanging implements ItemFrame {
} }
public void setItem(org.bukkit.inventory.ItemStack item) { public void setItem(org.bukkit.inventory.ItemStack item) {
getHandle().setItem(CraftItemStack.asNMSCopy(item)); setItem(item, true);
}
public void setItem(org.bukkit.inventory.ItemStack item, boolean playSound) {
getHandle().setItem(CraftItemStack.asNMSCopy(item), true, playSound);
} }
public org.bukkit.inventory.ItemStack getItem() { public org.bukkit.inventory.ItemStack getItem() {