@EventHandler(ignoreCancelled = true, priority = EventPriority.LOWEST)
  void onVehicleDamage(VehicleDamageEvent event) {
    Player attacker = getAttackingPlayer(event.getAttacker());
    ChunkData chunk = dataStore.getChunkAt(event.getVehicle().getLocation());

    revokeIfNotPermitted(attacker, chunk, event, "break vehicles");
  }
  @EventHandler(ignoreCancelled = true, priority = EventPriority.HIGHEST)
  void onEntityDamage(EntityDamageEvent event) {
    Entity damagedEntity = event.getEntity();
    if (!(event instanceof EntityDamageByEntityEvent) || (damagedEntity instanceof Monster)) {
      return;
    }

    Player attacker = getAttackingPlayer(((EntityDamageByEntityEvent) event).getDamager());
    ChunkData chunk = dataStore.getChunkAt(event.getEntity().getLocation());

    revokeIfNotPermitted(attacker, chunk, event, "hurt creatures");
  }
  @Before
  public void setupTestCase() {
    mockVehicle = mock(Vehicle.class);
    mockCreature = mock(Creature.class);
    DataManager mockDataManager = mock(DataManager.class);
    Location mockLocation = mock(Location.class);
    mockChunk = mock(ChunkData.class);
    systemUnderTest = new EntityEventHandler(mockDataManager);

    when(mockVehicle.getLocation()).thenReturn(mockLocation);
    when(mockCreature.getLocation()).thenReturn(mockLocation);
    when(mockDataManager.getChunkAt(mockLocation)).thenReturn(mockChunk);
    when(mockChunk.getOwnerName()).thenReturn("APlayer");
  }