Apply build trust for entity containers.

This commit is contained in:
Len 2022-08-28 17:49:58 +02:00
parent 20b341e46a
commit a2954e8795

View File

@ -89,6 +89,7 @@ import org.bukkit.event.hanging.HangingBreakEvent;
import org.bukkit.event.hanging.HangingBreakEvent.RemoveCause;
import org.bukkit.event.hanging.HangingPlaceEvent;
import org.bukkit.event.vehicle.VehicleDamageEvent;
import org.bukkit.inventory.InventoryHolder;
import org.bukkit.inventory.ItemStack;
import org.bukkit.metadata.FixedMetadataValue;
import org.bukkit.metadata.MetadataValue;
@ -1354,13 +1355,26 @@ public class EntityEventHandler implements Listener
message += " " + GriefPrevention.instance.dataStore.getMessage(Messages.IgnoreClaimsAdvertisement);
return message;
};
Supplier<String> noContainersReason = claim.checkPermission(attacker, ClaimPermission.Inventory, event, override);
if (noContainersReason != null)
//for storage entities, apply container rules (this is a potential theft)
if (event.getVehicle() instanceof InventoryHolder)
{
event.setCancelled(true);
GriefPrevention.sendMessage(attacker, TextMode.Err, noContainersReason.get());
Supplier<String> noContainersReason = claim.checkPermission(attacker, ClaimPermission.Build, event);
if (noContainersReason != null)
{
GriefPrevention.sendMessage(attacker, TextMode.Err, noContainersReason.get());
event.setCancelled(true);
return;
}
}
else
{
Supplier<String> noContainersReason = claim.checkPermission(attacker, ClaimPermission.Inventory, event, override);
if (noContainersReason != null)
{
event.setCancelled(true);
GriefPrevention.sendMessage(attacker, TextMode.Err, noContainersReason.get());
}
}
//cache claim for later
if (playerData != null)
{