Skip to content

Commit

Permalink
Restrict modifying signs (#2080)
Browse files Browse the repository at this point in the history
* Restrict waxing signs

* Also restrict signs in general
  • Loading branch information
Jikoo committed Jun 28, 2023
1 parent 7e86ad6 commit 19cb0e3
Showing 1 changed file with 7 additions and 3 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -35,6 +35,7 @@
import org.bukkit.World.Environment;
import org.bukkit.block.Block;
import org.bukkit.block.BlockFace;
import org.bukkit.block.Sign;
import org.bukkit.block.data.BlockData;
import org.bukkit.block.data.Levelled;
import org.bukkit.block.data.Waterlogged;
Expand Down Expand Up @@ -1811,7 +1812,10 @@ else if (clickedBlock != null &&
clickedBlockType == Material.COMPARATOR ||
clickedBlockType == Material.REDSTONE_WIRE ||
Tag.FLOWER_POTS.isTagged(clickedBlockType) ||
Tag.CANDLES.isTagged(clickedBlockType)
Tag.CANDLES.isTagged(clickedBlockType) ||
// Only block interaction with un-editable signs to allow command signs to function.
// TODO: When we are required to update Spigot API to 1.20 to support a change, swap to Sign#isWaxed
Tag.SIGNS.isTagged(clickedBlockType) && clickedBlock.getState() instanceof Sign sign && sign.isEditable()
))
{
if (playerData == null) playerData = this.dataStore.getPlayerData(player.getUniqueId());
Expand Down Expand Up @@ -1851,15 +1855,15 @@ else if (material.name().endsWith("_DYE"))
dyes.add(material);
}

//if it's bonemeal, armor stand, spawn egg, etc - check for build permission //RoboMWM: also check flint and steel to stop TNT ignition
//add glowing ink sac and ink sac, due to their usage on signs
// Require build permission for items that may have an effect on the world when used.
if (clickedBlock != null && (materialInHand == Material.BONE_MEAL
|| materialInHand == Material.ARMOR_STAND
|| (spawn_eggs.contains(materialInHand) && GriefPrevention.instance.config_claims_preventGlobalMonsterEggs)
|| materialInHand == Material.END_CRYSTAL
|| materialInHand == Material.FLINT_AND_STEEL
|| materialInHand == Material.INK_SAC
|| materialInHand == Material.GLOW_INK_SAC
|| materialInHand == Material.HONEYCOMB
|| dyes.contains(materialInHand)))
{
String noBuildReason = instance
Expand Down

0 comments on commit 19cb0e3

Please sign in to comment.