Skip to content

Commit 8536311

Browse files
committed
Update Protections to 1.20
* add new materials * add protections for sniffer eggs * add protection for signs
1 parent c61e9f1 commit 8536311

File tree

6 files changed

+47
-8
lines changed

6 files changed

+47
-8
lines changed

worldguard-bukkit/src/main/java/com/sk89q/worldguard/bukkit/BukkitWorldConfiguration.java

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -256,6 +256,8 @@ public void loadConfiguration() {
256256

257257
disableCreatureTurtleEggTrampling = getBoolean("turtle-egg.disable-creature-trampling", false);
258258
disablePlayerTurtleEggTrampling = getBoolean("turtle-egg.disable-player-trampling", false);
259+
disableCreatureSnifferEggTrampling = getBoolean("sniffer-egg.disable-creature-trampling", false);
260+
disablePlayerSnifferEggTrampling = getBoolean("sniffer-egg.disable-player-trampling", false);
259261

260262
disallowedLightningBlocks = new HashSet<>(convertLegacyBlocks(getStringList("weather.prevent-lightning-strike-blocks", null)));
261263
preventLightningFire = getBoolean("weather.disable-lightning-strike-fire", false);

worldguard-bukkit/src/main/java/com/sk89q/worldguard/bukkit/listener/EventAbstractionListener.java

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -454,7 +454,9 @@ public void onPlayerInteract(PlayerInteractEvent event) {
454454
switch (event.getAction()) {
455455
case PHYSICAL:
456456
if (event.useInteractedBlock() != Result.DENY) {
457-
if (clicked.getType() == Material.FARMLAND || clicked.getType() == Material.TURTLE_EGG) {
457+
if (clicked.getType() == Material.FARMLAND ||
458+
clicked.getType() == Material.TURTLE_EGG ||
459+
clicked.getType() == Material.SNIFFER_EGG) {
458460
BreakBlockEvent breakDelagate = new BreakBlockEvent(event, cause, clicked);
459461
breakDelagate.setSilent(true);
460462
breakDelagate.getRelevantFlags().add(Flags.TRAMPLE_BLOCKS);
@@ -600,9 +602,7 @@ public void onBlockIgnite(BlockIgniteEvent event) {
600602

601603
@EventHandler(ignoreCancelled = true)
602604
public void onSignChange(SignChangeEvent event) {
603-
Events.fireToCancel(event, new UseBlockEvent(event, create(event.getPlayer()), event.getBlock()));
604-
605-
if (event.isCancelled()) {
605+
if (Events.fireToCancel(event, new PlaceBlockEvent(event, create(event.getPlayer()), event.getBlock()))) {
606606
playDenyEffect(event.getPlayer(), event.getBlock().getLocation().add(0.5, 0.5, 0.5));
607607
}
608608
}

worldguard-bukkit/src/main/java/com/sk89q/worldguard/bukkit/listener/WorldGuardEntityListener.java

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -120,6 +120,10 @@ public void onEntityInteract(EntityInteractEvent event) {
120120
event.setCancelled(true);
121121
return;
122122
}
123+
if (block.getType() == Material.SNIFFER_EGG && wcfg.disableCreatureSnifferEggTrampling) {
124+
event.setCancelled(true);
125+
return;
126+
}
123127
}
124128

125129
@EventHandler(priority = EventPriority.HIGH)

worldguard-bukkit/src/main/java/com/sk89q/worldguard/bukkit/listener/WorldGuardPlayerListener.java

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -307,6 +307,10 @@ private void handlePhysicalInteract(PlayerInteractEvent event) {
307307
event.setCancelled(true);
308308
return;
309309
}
310+
if (type == Material.SNIFFER_EGG && wcfg.disablePlayerSnifferEggTrampling) {
311+
event.setCancelled(true);
312+
return;
313+
}
310314
}
311315

312316
@EventHandler(priority = EventPriority.HIGHEST)

worldguard-bukkit/src/main/java/com/sk89q/worldguard/bukkit/util/Materials.java

Lines changed: 31 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -820,15 +820,30 @@ private static void putMaterialTag(Tag<Material> tag, Integer value) {
820820
MATERIAL_FLAGS.put(Material.ECHO_SHARD, 0);
821821
MATERIAL_FLAGS.put(Material.REINFORCED_DEEPSLATE, 0);
822822

823-
// 1.19.3: Try to register those things
823+
// 1.20
824824
try {
825825
SIGNS_TAG = Tag.ALL_SIGNS;
826826

827827
MATERIAL_FLAGS.put(Material.BAMBOO_MOSAIC, 0);
828828
MATERIAL_FLAGS.put(Material.BAMBOO_BLOCK, 0);
829829
MATERIAL_FLAGS.put(Material.STRIPPED_BAMBOO_BLOCK, 0);
830+
MATERIAL_FLAGS.put(Material.SUSPICIOUS_SAND, 0);
831+
MATERIAL_FLAGS.put(Material.SUSPICIOUS_GRAVEL, 0);
832+
MATERIAL_FLAGS.put(Material.PITCHER_PLANT, 0);
833+
MATERIAL_FLAGS.put(Material.CHISELED_BOOKSHELF, MODIFIED_ON_RIGHT);
834+
MATERIAL_FLAGS.put(Material.DECORATED_POT, MODIFIED_ON_RIGHT);
835+
MATERIAL_FLAGS.put(Material.BRUSH, 0);
836+
MATERIAL_FLAGS.put(Material.SNIFFER_EGG, 0);
837+
MATERIAL_FLAGS.put(Material.CALIBRATED_SCULK_SENSOR, 0);
838+
MATERIAL_FLAGS.put(Material.PIGLIN_HEAD, 0);
839+
MATERIAL_FLAGS.put(Material.PIGLIN_WALL_HEAD, 0);
840+
MATERIAL_FLAGS.put(Material.TORCHFLOWER_SEEDS, 0);
841+
MATERIAL_FLAGS.put(Material.TORCHFLOWER_CROP, 0);
842+
MATERIAL_FLAGS.put(Material.PITCHER_CROP, 0);
843+
MATERIAL_FLAGS.put(Material.PINK_PETALS, 0);
844+
MATERIAL_FLAGS.put(Material.PITCHER_POD, 0);
845+
MATERIAL_FLAGS.put(Material.NETHERITE_UPGRADE_SMITHING_TEMPLATE, 0);
830846
} catch (NoSuchFieldError ignored) {
831-
SIGNS_TAG = Tag.SIGNS;
832847
}
833848

834849
// Generated via tag
@@ -868,6 +883,12 @@ private static void putMaterialTag(Tag<Material> tag, Integer value) {
868883
putMaterialTag(Tag.CANDLES, MODIFIED_ON_RIGHT);
869884
putMaterialTag(Tag.CANDLE_CAKES, MODIFIED_ON_RIGHT);
870885
putMaterialTag(Tag.CAULDRONS, MODIFIED_ON_RIGHT);
886+
try {
887+
// 1.20
888+
putMaterialTag(Tag.ITEMS_TRIM_TEMPLATES, 0);
889+
putMaterialTag(Tag.ITEMS_DECORATED_POT_SHERDS, 0);
890+
} catch (NoSuchFieldError ignored) {
891+
}
871892

872893
Stream.concat(Stream.concat(
873894
Tag.CORAL_BLOCKS.getValues().stream(),
@@ -882,7 +903,6 @@ private static void putMaterialTag(Tag<Material> tag, Integer value) {
882903

883904
// Check for missing items/blocks
884905
for (Material material : Material.values()) {
885-
//noinspection deprecation
886906
if (material.isLegacy()) continue;
887907
// Add spawn eggs
888908
if (isSpawnEgg(material)) {
@@ -1113,6 +1133,7 @@ public static boolean isInventoryBlock(Material material) {
11131133
|| material == Material.BARREL
11141134
|| material == Material.BLAST_FURNACE
11151135
|| material == Material.SMOKER
1136+
|| material == Material.CHISELED_BOOKSHELF
11161137
|| Tag.ITEMS_CHEST_BOATS.isTagged(material)
11171138
|| Tag.SHULKER_BOXES.isTagged(material);
11181139
}
@@ -1176,6 +1197,7 @@ public static EntityType getEntitySpawnEgg(Material material) {
11761197
case SKELETON_HORSE_SPAWN_EGG -> EntityType.SKELETON_HORSE;
11771198
case SKELETON_SPAWN_EGG -> EntityType.SKELETON;
11781199
case SLIME_SPAWN_EGG -> EntityType.SLIME;
1200+
case SNIFFER_SPAWN_EGG -> EntityType.SNIFFER;
11791201
case SNOW_GOLEM_SPAWN_EGG -> EntityType.SNOWMAN;
11801202
case SQUID_SPAWN_EGG -> EntityType.SQUID;
11811203
case STRAY_SPAWN_EGG -> EntityType.STRAY;
@@ -1435,7 +1457,12 @@ public static boolean isToolApplicable(Material toolMaterial, Material targetMat
14351457
case INK_SAC:
14361458
return SIGNS_TAG.isTagged(targetMaterial);
14371459
case HONEYCOMB:
1438-
return isUnwaxedCopper(targetMaterial);
1460+
return isUnwaxedCopper(targetMaterial) || SIGNS_TAG.isTagged(targetMaterial);
1461+
case BRUSH:
1462+
return switch (targetMaterial) {
1463+
case SUSPICIOUS_GRAVEL, SUSPICIOUS_SAND -> true;
1464+
default -> false;
1465+
};
14391466
default:
14401467
return false;
14411468
}

worldguard-core/src/main/java/com/sk89q/worldguard/config/WorldConfiguration.java

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -139,6 +139,8 @@ public abstract class WorldConfiguration {
139139
public boolean disablePlayerCropTrampling;
140140
public boolean disableCreatureTurtleEggTrampling;
141141
public boolean disablePlayerTurtleEggTrampling;
142+
public boolean disableCreatureSnifferEggTrampling;
143+
public boolean disablePlayerSnifferEggTrampling;
142144
public boolean preventLightningFire;
143145
public Set<String> disallowedLightningBlocks;
144146
public boolean disableThunder;

0 commit comments

Comments
 (0)