Require container trust to let pets sit down

This commit is contained in:
Len 2022-06-09 11:05:13 +02:00
parent 3155c65320
commit 9fe7f8258d

View File

@ -50,6 +50,7 @@ import org.bukkit.entity.Item;
import org.bukkit.entity.Llama;
import org.bukkit.entity.Mule;
import org.bukkit.entity.Player;
import org.bukkit.entity.Sittable;
import org.bukkit.entity.Tameable;
import org.bukkit.entity.Vehicle;
import org.bukkit.entity.Villager;
@ -532,6 +533,23 @@ class PlayerEventHandler implements Listener
{
this.onPlayerInteractEntity((PlayerInteractEntityEvent) event);
}
Player player = event.getPlayer();
Entity entity = event.getRightClicked();
if (entity instanceof Sittable sittable)
{
PlayerData playerData = this.dataStore.getPlayerData(player.getUniqueId());
Claim claim = this.dataStore.getClaimAt(entity.getLocation(), false, playerData.lastClaim);
if (claim != null)
{
final Supplier<String> noContainersReason = claim.checkPermission(player, ClaimPermission.Inventory, event);
if (noContainersReason != null)
{
GriefPrevention.sendMessage(player, TextMode.Err, noContainersReason.get());
event.setCancelled(true);
sittable.setSitting(false);
}
}
}
}
//when a player interacts with an entity...