From 01d303d4844e84be02ef012a503f257aff98ab07 Mon Sep 17 00:00:00 2001 From: destro174 <40720638+destro174@users.noreply.github.com> Date: Mon, 14 Feb 2022 09:46:51 +0100 Subject: [PATCH] Allow Villagers to be named public to bypass claim checks --- .../GriefPrevention/PlayerEventHandler.java | 12 ++++++++++++ 1 file changed, 12 insertions(+) diff --git a/src/main/java/me/ryanhamshire/GriefPrevention/PlayerEventHandler.java b/src/main/java/me/ryanhamshire/GriefPrevention/PlayerEventHandler.java index d294a40..3c9f5ff 100644 --- a/src/main/java/me/ryanhamshire/GriefPrevention/PlayerEventHandler.java +++ b/src/main/java/me/ryanhamshire/GriefPrevention/PlayerEventHandler.java @@ -52,6 +52,7 @@ import org.bukkit.entity.Mule; import org.bukkit.entity.Player; import org.bukkit.entity.Tameable; import org.bukkit.entity.Vehicle; +import org.bukkit.entity.Villager; import org.bukkit.entity.minecart.PoweredMinecart; import org.bukkit.entity.minecart.StorageMinecart; import org.bukkit.event.EventHandler; @@ -860,6 +861,17 @@ class PlayerEventHandler implements Listener //if the entity is an animal, apply container rules if ((instance.config_claims_preventTheft && (entity instanceof Animals || entity instanceof Fish)) || (entity.getType() == EntityType.VILLAGER && instance.config_claims_villagerTradingRequiresTrust)) { + if (entity.getType() == EntityType.VILLAGER) { + // early check for custom name to not waste time on getting the claim if not needed? + Villager villager = (Villager) entity; + if (villager.getCustomName() != null) + { + if (ChatColor.stripColor(villager.getCustomName()).equalsIgnoreCase("public")) + { + return; + } + } + } //if the entity is in a claim Claim claim = this.dataStore.getClaimAt(entity.getLocation(), false, null); if (claim != null)