From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Encode42 Date: Fri, 8 Jan 2021 16:07:32 -0500 Subject: [PATCH] |FEAT| Config to allow Note Block sounds when blocked Allows for Note Blocks to ignore whether or not there's air above them to play. Normally, the sounds will only play when the block directly above is air. With this patch enabled, players can place any block above the Note Block and it will still work. diff --git a/src/main/java/net/minecraft/world/level/block/NoteBlock.java b/src/main/java/net/minecraft/world/level/block/NoteBlock.java index 59ae3bb34678cdb5241f691915c96d6568363d3b..f6c0c9fca005f72c3764a4a4f8df05825796e950 100644 --- a/src/main/java/net/minecraft/world/level/block/NoteBlock.java +++ b/src/main/java/net/minecraft/world/level/block/NoteBlock.java @@ -62,7 +62,7 @@ public class NoteBlock extends Block { } private void play(Level world, BlockPos blockposition, BlockState data) { // CraftBukkit - if (world.getBlockState(blockposition.above()).isAir()) { + if (world.purpurConfig.noteBlockIgnoreAbove || world.getBlockState(blockposition.above()).isAir()) { // Purpur // CraftBukkit start org.bukkit.event.block.NotePlayEvent event = org.bukkit.craftbukkit.event.CraftEventFactory.callNotePlayEvent(world, blockposition, data.getValue(NoteBlock.INSTRUMENT), data.getValue(NoteBlock.NOTE)); if (!event.isCancelled()) { diff --git a/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java b/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java index 282a98b682558818bc1b694b82592feb3bc5dad7..c9fb98c7aacf0745ee5f008629ebfe2d117f664d 100644 --- a/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java +++ b/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java @@ -384,6 +384,7 @@ public class PurpurWorldConfig { public boolean entitiesPickUpLootBypassMobGriefing = false; public boolean fireballsBypassMobGriefing = false; public boolean milkCuresBadOmen = true; + public boolean noteBlockIgnoreAbove = false; public boolean persistentTileEntityDisplayNames = false; public boolean persistentDroppableEntityDisplayNames = false; public boolean projectilesBypassMobGriefing = false; @@ -401,6 +402,7 @@ public class PurpurWorldConfig { entitiesPickUpLootBypassMobGriefing = getBoolean("gameplay-mechanics.entities-pick-up-loot-bypass-mob-griefing", entitiesPickUpLootBypassMobGriefing); fireballsBypassMobGriefing = getBoolean("gameplay-mechanics.fireballs-bypass-mob-griefing", fireballsBypassMobGriefing); milkCuresBadOmen = getBoolean("gameplay-mechanics.milk-cures-bad-omen", milkCuresBadOmen); + noteBlockIgnoreAbove = getBoolean("gameplay-mechanics.note-block-ignore-above", noteBlockIgnoreAbove); persistentTileEntityDisplayNames = getBoolean("gameplay-mechanics.persistent-tileentity-display-names-and-lore", persistentTileEntityDisplayNames); persistentDroppableEntityDisplayNames = getBoolean("gameplay-mechanics.persistent-droppable-entity-display-names", persistentDroppableEntityDisplayNames); projectilesBypassMobGriefing = getBoolean("gameplay-mechanics.projectiles-bypass-mob-griefing", projectilesBypassMobGriefing);