Stop boats from breaking item frames in claims (#1029)
This commit is contained in:
parent
9622eea434
commit
6e055c90c3
|
|
@ -57,6 +57,7 @@ import org.bukkit.event.block.BlockPlaceEvent;
|
|||
import org.bukkit.event.block.BlockSpreadEvent;
|
||||
import org.bukkit.event.block.SignChangeEvent;
|
||||
import org.bukkit.event.entity.ProjectileHitEvent;
|
||||
import org.bukkit.event.hanging.HangingBreakEvent;
|
||||
import org.bukkit.event.inventory.InventoryPickupItemEvent;
|
||||
import org.bukkit.event.world.StructureGrowEvent;
|
||||
import org.bukkit.inventory.InventoryHolder;
|
||||
|
|
@ -1015,4 +1016,21 @@ public class BlockEventHandler implements Listener
|
|||
}
|
||||
}
|
||||
}
|
||||
|
||||
@EventHandler(ignoreCancelled = true)
|
||||
public void onItemFrameBrokenByBoat(final HangingBreakEvent event)
|
||||
{
|
||||
// Checks if the event is caused by physics - 90% of cases caused by a boat (other 10% would be block,
|
||||
// however since it's in a claim, unless you use a TNT block we don't need to worry about it).
|
||||
if (event.getCause() != HangingBreakEvent.RemoveCause.PHYSICS)
|
||||
{
|
||||
return;
|
||||
}
|
||||
|
||||
// Cancels the event if in a claim, as we can not efficiently retrieve the person/entity who broke the Item Frame/Hangable Item.
|
||||
if (this.dataStore.getClaimAt(event.getEntity().getLocation(), false, null) != null)
|
||||
{
|
||||
event.setCancelled(true);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
|||
Loading…
Reference in New Issue
Block a user