Java 类org.bukkit.event.vehicle.VehicleDamageEvent 实例源码

项目:bskyblock    文件:IslandGuard.java   
@EventHandler(priority = EventPriority.LOW, ignoreCancelled=true)
public void onVehicleDamageEvent(VehicleDamageEvent e) {
    if (DEBUG) {
        plugin.getLogger().info(e.getEventName());
        plugin.getLogger().info(e.getAttacker().getType().toString());
    }
    if (Util.inWorld(e.getVehicle())) {
        if (!(e.getAttacker() instanceof Player)) {
            return;
        }
        Player p = (Player) e.getAttacker();
        if (actionAllowed(p, e.getVehicle().getLocation(), SettingsFlag.BREAK_BLOCKS)) {
            return;
        }
        // Not allowed
        Util.sendMessage(p, plugin.getLocale(p.getUniqueId()).get("island.protected"));
        e.setCancelled(true);
    }
}
项目:Skript    文件:ExprAttackerAlt.java   
private static Object getAttacker(final Event e) {
    if (e instanceof EntityDamageByEntityEvent) {
        if (((EntityDamageByEntityEvent) e).getDamager() instanceof Projectile) {
            return ((Projectile) ((EntityDamageByEntityEvent) e).getDamager()).getShooter();
        }
        return ((EntityDamageByEntityEvent) e).getDamager();
    } else if (e instanceof EntityDamageByBlockEvent) {
        return ((EntityDamageByBlockEvent) e).getDamager();
    } else if (e instanceof EntityDeathEvent) {
        return getAttacker(((EntityDeathEvent) e).getEntity().getLastDamageCause());
    } else if (e instanceof VehicleDamageEvent) {
        return ((VehicleDamageEvent) e).getAttacker();
    } else if (e instanceof VehicleDestroyEvent) {
        return ((VehicleDestroyEvent) e).getAttacker();
    }
    return null;
}
项目:Skript    文件:ExprAttacker.java   
@Nullable
    private static Entity getAttacker(final @Nullable Event e) {
        if (e == null)
            return null;
        if (e instanceof EntityDamageByEntityEvent) {
            if (((EntityDamageByEntityEvent) e).getDamager() instanceof Projectile) {
                final Object o = ProjectileUtils.getShooter((Projectile) ((EntityDamageByEntityEvent) e).getDamager());
                if (o instanceof Entity)
                    return (Entity) o;
                return null;
            }
            return ((EntityDamageByEntityEvent) e).getDamager();
//      } else if (e instanceof EntityDamageByBlockEvent) {
//          return ((EntityDamageByBlockEvent) e).getDamager();
        } else if (e instanceof EntityDeathEvent) {
            return getAttacker(((EntityDeathEvent) e).getEntity().getLastDamageCause());
        } else if (e instanceof VehicleDamageEvent) {
            return ((VehicleDamageEvent) e).getAttacker();
        } else if (e instanceof VehicleDestroyEvent) {
            return ((VehicleDestroyEvent) e).getAttacker();
        }
        return null;
    }
项目:Peacecraft    文件:ProtectListener.java   
@EventHandler
public void onVehicleDamage(VehicleDamageEvent event) {
    EntityProtection entityProtection = this.module.getProtectManager().getEntityProtection(event.getVehicle().getType(), event.getVehicle().getUniqueId());
    if(entityProtection.exists()) {
        if(event.getAttacker() instanceof Player) {
            Player player = (Player) event.getAttacker();

            if(entityProtection.getOwner().equals(player.getUniqueId()) || player.hasPermission(ProtectPermissions.MODIFY_ALL)) {
                return;
            }

            sendMessage(player, "protect.entity-protected-by", getDisplayName(this.module.getManager().getUsername(entityProtection.getOwner()), event.getVehicle().getWorld().getName()));
        }

        event.setCancelled(true);
    }
}
项目:acidisland    文件:IslandGuard.java   
@EventHandler(priority = EventPriority.LOW, ignoreCancelled=true)
public void onVehicleDamageEvent(VehicleDamageEvent e) {
    if (DEBUG) {
        plugin.getLogger().info(e.getEventName());
        plugin.getLogger().info(e.getAttacker().getType().toString());
    }
    if (inWorld(e.getVehicle())) {
        if (!(e.getAttacker() instanceof Player)) {
            return;
        }
        Player p = (Player) e.getAttacker();
        if (actionAllowed(p, e.getVehicle().getLocation(), SettingsFlag.BREAK_BLOCKS)) {
            return;
        }
        // Not allowed
        Util.sendMessage(p, ChatColor.RED + plugin.myLocale(p.getUniqueId()).islandProtected);
        e.setCancelled(true);
    }
}
项目:askyblock    文件:IslandGuard.java   
@EventHandler(priority = EventPriority.LOW, ignoreCancelled=true)
public void onVehicleDamageEvent(VehicleDamageEvent e) {
    if (DEBUG) {
        plugin.getLogger().info(e.getEventName());
        plugin.getLogger().info(e.getAttacker().getType().toString());
    }
    if (inWorld(e.getVehicle())) {
        if (!(e.getAttacker() instanceof Player)) {
            return;
        }
        Player p = (Player) e.getAttacker();
        if (actionAllowed(p, e.getVehicle().getLocation(), SettingsFlag.BREAK_BLOCKS)) {
            return;
        }
        // Not allowed
        Util.sendMessage(p, ChatColor.RED + plugin.myLocale(p.getUniqueId()).islandProtected);
        e.setCancelled(true);
    }
}
项目:CraftoPlugin    文件:EntityProtectionBreakListener.java   
@EventHandler
public void onVehicleDamage(final VehicleDamageEvent event) {
    debug("VehicleDamageEvent triggered!");

    if (event.getAttacker() == null) {
        // If the attacker is unknown atleast check if the damaged entity is protected and cancel event
        Optional<EntityProtection> prot = this.module.cache.getByUniqueId(event.getVehicle().getUniqueId());
        if (prot.isPresent()) {
            event.setCancelled(true);
            debug("onVehicleDamage("+event.getVehicle().getType()+")",
                    "Cancelled event because entity is protected and damager unknown!");
        }

        return;
    }

    final Entity damager = Utility.getRealDamager(event.getAttacker());
    if (!(damager instanceof Player)) { return; }
    debug("Determined real damager: " + damager.getName());

    if (!this.canInteract(event.getVehicle(), (Player)damager)) { event.setCancelled(true); }
}
项目:Warzone    文件:SpectatorModule.java   
@EventHandler
public void onVehicleDamage(VehicleDamageEvent event) {
    if (event.getAttacker() != null && event.getAttacker() instanceof Player) {
        if (isSpectating((Player) event.getAttacker())) {
            event.setCancelled(true);
        }
    }
}
项目:ProjectAres    文件:DamageMatchModule.java   
@EventHandler(ignoreCancelled = true)
public void onDamageVehicle(VehicleDamageEvent event) {
    MatchPlayer victim = getVictim(event.getVehicle());
    if(victim == null) return;
    processDamageEvent(event, victim.getParticipantState(),
                       damageResolver.resolveDamage(EntityDamageEvent.DamageCause.CUSTOM, event.getVehicle(), event.getAttacker()));
}
项目:AthenaGM    文件:SpectatorModule.java   
@EventHandler
public void onVehicleDamage(VehicleDamageEvent event) {
    if (event.getAttacker() instanceof Player) {
        Player player = (Player) event.getAttacker();
        if (isPlayerSpectator(player)) {
            event.setCancelled(true);
        }
    }
}
项目:Skript    文件:ExprAttacker.java   
@SuppressWarnings("unchecked")
@Override
public boolean init(final Expression<?>[] vars, final int matchedPattern, final Kleenean isDelayed, final ParseResult parser) {
    if (!ScriptLoader.isCurrentEvent(EntityDamageByEntityEvent.class, EntityDeathEvent.class, VehicleDamageEvent.class, VehicleDestroyEvent.class)) {
        Skript.error("Cannot use 'attacker' outside of a damage/death/destroy event", ErrorQuality.SEMANTIC_ERROR);
        return false;
    }
    return true;
}
项目:Cardinal    文件:InteractModule.java   
/**
 * Prevents a player that can't interact from damaging vehicles.
 *
 * @param event The event.
 */
@EventHandler(ignoreCancelled = true)
public void onVehicleDamage(VehicleDamageEvent event) {
  if (event.getActor() instanceof Player && !canInteract((Player) event.getActor())) {
    event.setCancelled(true);
  }
}
项目:beaconz    文件:PlayerMovementListener.java   
/**
 * Prevents damaging vehicles outside of the game area
 * @param event
 */
@EventHandler(priority = EventPriority.LOW, ignoreCancelled=true)
public void onVehicleDamage(final VehicleDamageEvent event) {
    if (!(event.getAttacker() instanceof Player)) {
        return;
    }
    Player player = (Player)event.getAttacker();
    if (player.getWorld().equals(getBeaconzWorld())) {
        if (getGameMgr().getGame(event.getVehicle().getLocation()) == null) {
            event.setCancelled(true);
            player.sendMessage(ChatColor.RED + Lang.errorYouCannotDoThat);
        }
    }
}
项目:uSkyBlock    文件:ExploitEvents.java   
@EventHandler
public void on(VehicleDamageEvent e) {
    if (breakVehicleEnabled || !(e.getAttacker() instanceof Player)) {
        return;
    }
    Player player = (Player) e.getAttacker();
    if (hasPermission(player, "usb.mod.bypassprotection") || plugin.playerIsOnIsland(player)) {
        return;
    }
    e.setCancelled(true);
    player.sendMessage(tr("\u00a7eYou cannot break vehicles while being a visitor!"));
}
项目:acidisland    文件:SafeBoat.java   
/**
 * @param e
 *            This event check throws the boat at a player when they hit it
 *            unless someone is in it
 */
@EventHandler(priority = EventPriority.NORMAL, ignoreCancelled = true)
public void onClick(VehicleDamageEvent e) {
    // plugin.getLogger().info("Damage event " + e.getDamage());
    // Find out what block is being clicked
    Vehicle boat = e.getVehicle();
    if (!(boat instanceof Boat)) {
        return;
    }
    if (!boat.isEmpty()) {
        return;
    }
    final World playerWorld = boat.getWorld();
    if (!playerWorld.getName().equalsIgnoreCase(Settings.worldName)) {
        // Not the right world
        return;
    }
    // plugin.getLogger().info("Boat ");
    // Find out who is doing the clicking
    if (!(e.getAttacker() instanceof Player)) {
        // If a creeper blows up the boat, tough cookies!
        return;
    }
    Player p = (Player) e.getAttacker();
    if (p == null) {
        return;
    }
    // Try to remove the boat and throw it at the player
    Location boatSpot = new Location(boat.getWorld(), boat.getLocation().getX(), boat.getLocation().getY() + 2, boat.getLocation().getZ());
    Location throwTo = new Location(boat.getWorld(), p.getLocation().getX(), p.getLocation().getY() + 1, p.getLocation().getZ());
    ItemStack newBoat = new ItemStack(Material.BOAT, 1);
    // Find the direction the boat should move in
    Vector dir = throwTo.toVector().subtract(boatSpot.toVector()).normalize();
    dir = dir.multiply(0.5);
    Entity newB = boat.getWorld().dropItem(boatSpot, newBoat);
    newB.setVelocity(dir);
    boat.remove();
    e.setCancelled(true);
}
项目:askyblock    文件:SafeBoat.java   
/**
 * @param e
 *            This event check throws the boat at a player when they hit it
 *            unless someone is in it
 */
@EventHandler(priority = EventPriority.NORMAL, ignoreCancelled = true)
public void onClick(VehicleDamageEvent e) {
    // plugin.getLogger().info("Damage event " + e.getDamage());
    // Find out what block is being clicked
    Vehicle boat = e.getVehicle();
    if (!(boat instanceof Boat)) {
        return;
    }
    if (!boat.isEmpty()) {
        return;
    }
    final World playerWorld = boat.getWorld();
    if (!playerWorld.getName().equalsIgnoreCase(Settings.worldName)) {
        // Not the right world
        return;
    }
    // plugin.getLogger().info("Boat ");
    // Find out who is doing the clicking
    if (!(e.getAttacker() instanceof Player)) {
        // If a creeper blows up the boat, tough cookies!
        return;
    }
    Player p = (Player) e.getAttacker();
    if (p == null) {
        return;
    }
    // Try to remove the boat and throw it at the player
    Location boatSpot = new Location(boat.getWorld(), boat.getLocation().getX(), boat.getLocation().getY() + 2, boat.getLocation().getZ());
    Location throwTo = new Location(boat.getWorld(), p.getLocation().getX(), p.getLocation().getY() + 1, p.getLocation().getZ());
    ItemStack newBoat = new ItemStack(Material.BOAT, 1);
    // Find the direction the boat should move in
    Vector dir = throwTo.toVector().subtract(boatSpot.toVector()).normalize();
    dir = dir.multiply(0.5);
    Entity newB = boat.getWorld().dropItem(boatSpot, newBoat);
    newB.setVelocity(dir);
    boat.remove();
    e.setCancelled(true);
}
项目:Necessities    文件:Listeners.java   
@EventHandler
public void onVehicleDamage(VehicleDamageEvent e) {
    if (e.getAttacker() instanceof Player) {
        Player player = (Player) e.getAttacker();
        User u = Necessities.getUM().getUser(player.getUniqueId());
        YamlConfiguration config = Necessities.getInstance().getConfig();
        if (config.contains("Necessities.Guilds") && config.getBoolean("Necessities.Guilds") && !player.hasPermission("Necessities.guilds.admin")) {
            Guild g = Necessities.getGM().chunkOwner(e.getVehicle().getLocation().getChunk());
            if (g != null && u.getGuild() != g)
                e.setCancelled(true);
        }
    }
}
项目:CrazyLogin    文件:DynamicVehicleListener.java   
@EventHandler
public void VehicleDamage(final VehicleDamageEvent event)
{
    if (!(event.getAttacker() instanceof Player))
        return;
    final Player player = (Player) event.getAttacker();
    if (plugin.isLoggedIn(player))
        return;
    event.setCancelled(true);
    plugin.sendAuthReminderMessage(player);
}
项目:SpectatorPlus    文件:SpectatorsInteractionsListener.java   
/**
 * Stops players trying to break entities such as Minecarts, Boats, etc.
 */
@EventHandler (priority = EventPriority.HIGHEST)
public void onVehicleDamage(final VehicleDamageEvent e)
{
    if (e.getAttacker() instanceof Player && p.getPlayerData((Player) e.getAttacker()).isSpectating())
    {
        e.setCancelled(true);
    }
}
项目:ProjectAres    文件:EventFilterMatchModule.java   
@EventHandler(priority = EventPriority.LOWEST, ignoreCancelled = true)
public void onVehicleDamage(final VehicleDamageEvent event) {
    cancelUnlessInteracting(event, event.getAttacker());
}
项目:ProjectAres    文件:FreezeListener.java   
@EventHandler(priority = EventPriority.LOW, ignoreCancelled = true)
public void onVehicleDamage(final VehicleDamageEvent event) {
    if(freeze.isFrozen(event.getAttacker())) {
        event.setCancelled(true);
    }
}
项目:FactionsXL    文件:EntityProtectionListener.java   
@EventHandler
public void onVehicleDamage(VehicleDamageEvent event) {
    forbidIfInProtectedTerritory(getDamageSource(event.getAttacker()), event.getVehicle(), event, ATTACK);
}
项目:GamePlate    文件:ObserverModule.java   
@EventHandler
public void onVehicleDamage(VehicleDamageEvent event) {
    if (event.getAttacker() instanceof Player && isObserver((Player) event.getAttacker())) {
        event.setCancelled(true);
    }
}
项目:AbilityAPI    文件:SequenceListener.java   
@EventHandler
public void onVehicleDamage(VehicleDamageEvent event) {
    if (event.getAttacker() instanceof Player) {
        this.manager.invoke((Player) event.getAttacker(), event);
    }
}
项目:Arcade2    文件:ObserverListeners.java   
@EventHandler(priority = EventPriority.LOW, ignoreCancelled = true)
public void onVehicleDamage(VehicleDamageEvent event) {
    if (this.isObserving(event.getAttacker())) {
        event.setCancelled(true);
    }
}
项目:Cardinal-Plus    文件:ObserverModule.java   
@EventHandler
public void onVehicleDamage(VehicleDamageEvent event) {
    if (!match.isRunning() || event.getAttacker() instanceof Player && TeamUtils.getTeamByPlayer((Player) event.getAttacker()).isObserver()) {
        event.setCancelled(true);
    }
}
项目:GriefPreventionPlus    文件:EntityEventHandler.java   
@EventHandler(ignoreCancelled = true, priority = EventPriority.LOWEST)
public void onVehicleDamage (VehicleDamageEvent event)
{
    //all of this is anti theft code
    if(!GriefPrevention.instance.config_claims_preventTheft) return;    

    //don't track in worlds where claims are not enabled
       if(!GriefPrevention.instance.claimsEnabledForWorld(event.getVehicle().getWorld())) return;

    //determine which player is attacking, if any
    Player attacker = null;
    Entity damageSource = event.getAttacker();
    if(damageSource.getType() == EntityType.PLAYER)
    {
        attacker = (Player)damageSource;
    }
    else if(damageSource instanceof Projectile)
    {
        Projectile arrow = (Projectile)damageSource;
        if(arrow.getShooter() instanceof Player)
        {
            attacker = (Player)arrow.getShooter();
        }
    }

    //if not a player and not an explosion, always allow
       if(attacker == null && !(damageSource instanceof Explosive))
       {
           return;
       }

    //NOTE: vehicles can be pushed around.
    //so unless precautions are taken by the owner, a resourceful thief might find ways to steal anyway
    Claim cachedClaim = null;
    PlayerData playerData = null;

    if(attacker != null)
    {
        playerData = this.dataStore.getPlayerData(attacker.getUniqueId());
        cachedClaim = playerData.lastClaim;
    }

    Claim claim = this.dataStore.getClaimAt(event.getVehicle().getLocation(), false, cachedClaim);

    //if it's claimed
    if(claim != null)
    {
        //if damaged by anything other than a player, cancel the event
        if(attacker == null)
        {
            event.setCancelled(true);
        }

        //otherwise the player damaging the entity must have permission
        else
        {       
            String noContainersReason = claim.allowContainers(attacker);
            if(noContainersReason != null)
            {
                event.setCancelled(true);
                String message = GriefPrevention.instance.dataStore.getMessage(Messages.NoDamageClaimedEntity, claim.getOwnerName());
                   if(attacker.hasPermission("griefprevention.ignoreclaims"))
                       message += "  " + GriefPrevention.instance.dataStore.getMessage(Messages.IgnoreClaimsAdvertisement);
                   GriefPrevention.sendMessage(attacker, TextMode.Err, message);
                   event.setCancelled(true);
            }

            //cache claim for later
            if(playerData != null)
            {
                playerData.lastClaim = claim;
            }                       
        }
    }
}
项目:CraftBukkit    文件:EntityMinecartAbstract.java   
public boolean damageEntity(DamageSource damagesource, float f) {
    if (!this.world.isStatic && !this.dead) {
        if (this.isInvulnerable()) {
            return false;
        } else {
            // CraftBukkit start - fire VehicleDamageEvent
            Vehicle vehicle = (Vehicle) this.getBukkitEntity();
            org.bukkit.entity.Entity passenger = (damagesource.getEntity() == null) ? null : damagesource.getEntity().getBukkitEntity();

            VehicleDamageEvent event = new VehicleDamageEvent(vehicle, passenger, f);
            this.world.getServer().getPluginManager().callEvent(event);

            if (event.isCancelled()) {
                return true;
            }

            f = (float) event.getDamage();
            // CraftBukkit end

            this.j(-this.l());
            this.c(10);
            this.Q();
            this.setDamage(this.getDamage() + f * 10.0F);
            boolean flag = damagesource.getEntity() instanceof EntityHuman && ((EntityHuman) damagesource.getEntity()).abilities.canInstantlyBuild;

            if (flag || this.getDamage() > 40.0F) {
                if (this.passenger != null) {
                    this.passenger.mount(this);
                }

                // CraftBukkit start
                VehicleDestroyEvent destroyEvent = new VehicleDestroyEvent(vehicle, passenger);
                this.world.getServer().getPluginManager().callEvent(destroyEvent);

                if (destroyEvent.isCancelled()) {
                    this.setDamage(40); // Maximize damage so this doesn't get triggered again right away
                    return true;
                }
                // CraftBukkit end

                if (flag && !this.k_()) {
                    this.die();
                } else {
                    this.a(damagesource);
                }
            }

            return true;
        }
    } else {
        return true;
    }
}
项目:CraftBukkit    文件:EntityBoat.java   
public boolean damageEntity(DamageSource damagesource, float f) {
    if (this.isInvulnerable()) {
        return false;
    } else if (!this.world.isStatic && !this.dead) {
        // CraftBukkit start
        Vehicle vehicle = (Vehicle) this.getBukkitEntity();
        org.bukkit.entity.Entity attacker = (damagesource.getEntity() == null) ? null : damagesource.getEntity().getBukkitEntity();

        VehicleDamageEvent event = new VehicleDamageEvent(vehicle, attacker, (double) f);
        this.world.getServer().getPluginManager().callEvent(event);

        if (event.isCancelled()) {
            return true;
        }
        // f = event.getDamage(); // TODO Why don't we do this?
        // CraftBukkit end

        this.c(-this.i());
        this.a(10);
        this.setDamage(this.getDamage() + f * 10.0F);
        this.Q();
        boolean flag = damagesource.getEntity() instanceof EntityHuman && ((EntityHuman) damagesource.getEntity()).abilities.canInstantlyBuild;

        if (flag || this.getDamage() > 40.0F) {
            // CraftBukkit start
            VehicleDestroyEvent destroyEvent = new VehicleDestroyEvent(vehicle, attacker);
            this.world.getServer().getPluginManager().callEvent(destroyEvent);

            if (destroyEvent.isCancelled()) {
                this.setDamage(40F); // Maximize damage so this doesn't get triggered again right away
                return true;
            }
            // CraftBukkit end

            if (this.passenger != null) {
                this.passenger.mount(this);
            }

            if (!flag) {
                this.a(Items.BOAT, 1, 0.0F);
            }

            this.die();
        }

        return true;
    } else {
        return true;
    }
}
项目:Almura-Server    文件:EntityMinecartAbstract.java   
public boolean damageEntity(DamageSource damagesource, float f) {
    if (!this.world.isStatic && !this.dead) {
        if (this.isInvulnerable()) {
            return false;
        } else {
            // CraftBukkit start
            Vehicle vehicle = (Vehicle) this.getBukkitEntity();
            org.bukkit.entity.Entity passenger = (damagesource.getEntity() == null) ? null : damagesource.getEntity().getBukkitEntity();

            VehicleDamageEvent event = new VehicleDamageEvent(vehicle, passenger, f);
            this.world.getServer().getPluginManager().callEvent(event);

            if (event.isCancelled()) {
                return true;
            }

            f = (float) event.getDamage();
            // CraftBukkit end

            this.h(-this.k());
            this.c(10);
            this.K();
            this.setDamage(this.getDamage() + f * 10.0F);
            boolean flag = damagesource.getEntity() instanceof EntityHuman && ((EntityHuman) damagesource.getEntity()).abilities.canInstantlyBuild;

            if (flag || this.getDamage() > 40.0F) {
                if (this.passenger != null) {
                    this.passenger.mount(this);
                }

                // CraftBukkit start
                VehicleDestroyEvent destroyEvent = new VehicleDestroyEvent(vehicle, passenger);
                this.world.getServer().getPluginManager().callEvent(destroyEvent);

                if (destroyEvent.isCancelled()) {
                    this.setDamage(40); // Maximize damage so this doesn't get triggered again right away
                    return true;
                }
                // CraftBukkit end

                if (flag && !this.c()) {
                    this.die();
                } else {
                    this.a(damagesource);
                }
            }

            return true;
        }
    } else {
        return true;
    }
}
项目:Almura-Server    文件:EntityBoat.java   
public boolean damageEntity(DamageSource damagesource, float f) {
    if (this.isInvulnerable()) {
        return false;
    } else if (!this.world.isStatic && !this.dead) {
        // CraftBukkit start
        Vehicle vehicle = (Vehicle) this.getBukkitEntity();
        org.bukkit.entity.Entity attacker = (damagesource.getEntity() == null) ? null : damagesource.getEntity().getBukkitEntity();

        VehicleDamageEvent event = new VehicleDamageEvent(vehicle, attacker, (double) f);
        this.world.getServer().getPluginManager().callEvent(event);

        if (event.isCancelled()) {
            return true;
        }
        // i = event.getDamage(); // TODO Why don't we do this?
        // CraftBukkit end

        this.c(-this.h());
        this.a(10);
        this.setDamage(this.getDamage() + f * 10.0F);
        this.K();
        boolean flag = damagesource.getEntity() instanceof EntityHuman && ((EntityHuman) damagesource.getEntity()).abilities.canInstantlyBuild;

        if (flag || this.getDamage() > 40.0F) {
            // CraftBukkit start
            VehicleDestroyEvent destroyEvent = new VehicleDestroyEvent(vehicle, attacker);
            this.world.getServer().getPluginManager().callEvent(destroyEvent);

            if (destroyEvent.isCancelled()) {
                this.setDamage(40F); // Maximize damage so this doesn't get triggered again right away
                return true;
            }
            // CraftBukkit end

            if (this.passenger != null) {
                this.passenger.mount(this);
            }

            if (!flag) {
                this.a(Item.BOAT.id, 1, 0.0F);
            }

            this.die();
        }

        return true;
    } else {
        return true;
    }
}
项目:Tweakkit-Server    文件:EntityMinecartAbstract.java   
public boolean damageEntity(DamageSource damagesource, float f) {
    if (!this.world.isStatic && !this.dead) {
        if (this.isInvulnerable()) {
            return false;
        } else {
            // CraftBukkit start - fire VehicleDamageEvent
            Vehicle vehicle = (Vehicle) this.getBukkitEntity();
            org.bukkit.entity.Entity passenger = (damagesource.getEntity() == null) ? null : damagesource.getEntity().getBukkitEntity();

            VehicleDamageEvent event = new VehicleDamageEvent(vehicle, passenger, f);
            this.world.getServer().getPluginManager().callEvent(event);

            if (event.isCancelled()) {
                return true;
            }

            f = (float) event.getDamage();
            // CraftBukkit end

            this.j(-this.l());
            this.c(10);
            this.Q();
            this.setDamage(this.getDamage() + f * 10.0F);
            boolean flag = damagesource.getEntity() instanceof EntityHuman && ((EntityHuman) damagesource.getEntity()).abilities.canInstantlyBuild;

            if (flag || this.getDamage() > 40.0F) {
                if (this.passenger != null) {
                    this.passenger.mount(this);
                }

                // CraftBukkit start
                VehicleDestroyEvent destroyEvent = new VehicleDestroyEvent(vehicle, passenger);
                this.world.getServer().getPluginManager().callEvent(destroyEvent);

                if (destroyEvent.isCancelled()) {
                    this.setDamage(40); // Maximize damage so this doesn't get triggered again right away
                    return true;
                }
                // CraftBukkit end

                if (flag && !this.k_()) {
                    this.die();
                } else {
                    this.a(damagesource);
                }
            }

            return true;
        }
    } else {
        return true;
    }
}
项目:Tweakkit-Server    文件:EntityBoat.java   
public boolean damageEntity(DamageSource damagesource, float f) {
    if (this.isInvulnerable()) {
        return false;
    } else if (!this.world.isStatic && !this.dead) {
        // CraftBukkit start
        Vehicle vehicle = (Vehicle) this.getBukkitEntity();
        org.bukkit.entity.Entity attacker = (damagesource.getEntity() == null) ? null : damagesource.getEntity().getBukkitEntity();

        VehicleDamageEvent event = new VehicleDamageEvent(vehicle, attacker, (double) f);
        this.world.getServer().getPluginManager().callEvent(event);

        if (event.isCancelled()) {
            return true;
        }
        // f = event.getDamage(); // TODO Why don't we do this?
        // CraftBukkit end

        this.c(-this.i());
        this.a(10);
        this.setDamage(this.getDamage() + f * 10.0F);
        this.Q();
        boolean flag = damagesource.getEntity() instanceof EntityHuman && ((EntityHuman) damagesource.getEntity()).abilities.canInstantlyBuild;

        if (flag || this.getDamage() > 40.0F) {
            // CraftBukkit start
            VehicleDestroyEvent destroyEvent = new VehicleDestroyEvent(vehicle, attacker);
            this.world.getServer().getPluginManager().callEvent(destroyEvent);

            if (destroyEvent.isCancelled()) {
                this.setDamage(40F); // Maximize damage so this doesn't get triggered again right away
                return true;
            }
            // CraftBukkit end

            if (this.passenger != null) {
                this.passenger.mount(this);
            }

            if (!flag) {
                this.a(Items.BOAT, 1, 0.0F);
            }

            this.die();
        }

        return true;
    } else {
        return true;
    }
}
项目:Cauldron    文件:EntityMinecart.java   
public boolean attackEntityFrom(DamageSource p_70097_1_, float p_70097_2_)
{
    if (!this.worldObj.isRemote && !this.isDead)
    {
        if (this.isEntityInvulnerable())
        {
            return false;
        }
        else
        {
            // CraftBukkit start
            Vehicle vehicle = (Vehicle) this.getBukkitEntity();
            org.bukkit.entity.Entity passenger = (p_70097_1_.getEntity() == null) ? null : p_70097_1_.getEntity().getBukkitEntity();
            VehicleDamageEvent event = new VehicleDamageEvent(vehicle, passenger, p_70097_2_);
            this.worldObj.getServer().getPluginManager().callEvent(event);

            if (event.isCancelled())
            {
                return true;
            }

            p_70097_2_ = (float) event.getDamage();
            // CraftBukkit end
            this.setRollingDirection(-this.getRollingDirection());
            this.setRollingAmplitude(10);
            this.setBeenAttacked();
            this.setDamage(this.getDamage() + p_70097_2_ * 10.0F);
            boolean flag = p_70097_1_.getEntity() instanceof EntityPlayer && ((EntityPlayer)p_70097_1_.getEntity()).capabilities.isCreativeMode;

            if (flag || this.getDamage() > 40.0F)
            {
                if (this.riddenByEntity != null)
                {
                    this.riddenByEntity.mountEntity(this);
                }

                // CraftBukkit start
                VehicleDestroyEvent destroyEvent = new VehicleDestroyEvent(vehicle, passenger);
                this.worldObj.getServer().getPluginManager().callEvent(destroyEvent);

                if (destroyEvent.isCancelled())
                {
                    this.setDamage(40); // Maximize damage so this doesn't get triggered again right away
                    return true;
                }

                // CraftBukkit end

                if (flag && !this.hasCustomInventoryName())
                {
                    this.setDead();
                }
                else
                {
                    this.killMinecart(p_70097_1_);
                }
            }

            return true;
        }
    }
    else
    {
        return true;
    }
}
项目:Cauldron    文件:EntityBoat.java   
public boolean attackEntityFrom(DamageSource p_70097_1_, float p_70097_2_)
{
    if (this.isEntityInvulnerable())
    {
        return false;
    }
    else if (!this.worldObj.isRemote && !this.isDead)
    {
        // CraftBukkit start
        Vehicle vehicle = (Vehicle) this.getBukkitEntity();
        org.bukkit.entity.Entity attacker = (p_70097_1_.getEntity() == null) ? null : p_70097_1_.getEntity().getBukkitEntity();
        VehicleDamageEvent event = new VehicleDamageEvent(vehicle, attacker, (double) p_70097_2_);
        this.worldObj.getServer().getPluginManager().callEvent(event);

        if (event.isCancelled())
        {
            return true;
        }

        // f = event.getDamage(); // TODO Why don't we do this?
        // CraftBukkit end
        this.setForwardDirection(-this.getForwardDirection());
        this.setTimeSinceHit(10);
        this.setDamageTaken(this.getDamageTaken() + p_70097_2_ * 10.0F);
        this.setBeenAttacked();
        boolean flag = p_70097_1_.getEntity() instanceof EntityPlayer && ((EntityPlayer)p_70097_1_.getEntity()).capabilities.isCreativeMode;

        if (flag || this.getDamageTaken() > 40.0F)
        {
            // CraftBukkit start
            VehicleDestroyEvent destroyEvent = new VehicleDestroyEvent(vehicle, attacker);
            this.worldObj.getServer().getPluginManager().callEvent(destroyEvent);

            if (destroyEvent.isCancelled())
            {
                this.setDamageTaken(40F); // Maximize damage so this doesn't get triggered again right away
                return true;
            }

            // CraftBukkit end

            if (this.riddenByEntity != null)
            {
                this.riddenByEntity.mountEntity(this);
            }

            if (!flag)
            {
                this.func_145778_a(Items.boat, 1, 0.0F);
            }

            this.setDead();
        }

        return true;
    }
    else
    {
        return true;
    }
}
项目:CardinalPGM    文件:ObserverModule.java   
@EventHandler
public void onVehicleDamage(VehicleDamageEvent event) {
    if (event.getAttacker() instanceof Player && testObserverOrDead((Player) event.getAttacker())) {
        event.setCancelled(true);
    }
}
项目:SpigotSource    文件:EntityMinecartAbstract.java   
public boolean damageEntity(DamageSource damagesource, float f) {
    if (!this.world.isClientSide && !this.dead) {
        if (this.isInvulnerable(damagesource)) {
            return false;
        } else {
            // CraftBukkit start - fire VehicleDamageEvent
            Vehicle vehicle = (Vehicle) this.getBukkitEntity();
            org.bukkit.entity.Entity passenger = (damagesource.getEntity() == null) ? null : damagesource.getEntity().getBukkitEntity();

            VehicleDamageEvent event = new VehicleDamageEvent(vehicle, passenger, f);
            this.world.getServer().getPluginManager().callEvent(event);

            if (event.isCancelled()) {
                return true;
            }

            f = (float) event.getDamage();
            // CraftBukkit end
            this.e(-this.u());
            this.d(10);
            this.ao();
            this.setDamage(this.getDamage() + f * 10.0F);
            boolean flag = damagesource.getEntity() instanceof EntityHuman && ((EntityHuman) damagesource.getEntity()).abilities.canInstantlyBuild;

            if (flag || this.getDamage() > 40.0F) {
                // CraftBukkit start
                VehicleDestroyEvent destroyEvent = new VehicleDestroyEvent(vehicle, passenger);
                this.world.getServer().getPluginManager().callEvent(destroyEvent);

                if (destroyEvent.isCancelled()) {
                    this.setDamage(40); // Maximize damage so this doesn't get triggered again right away
                    return true;
                }
                // CraftBukkit end
                this.az();
                if (flag && !this.hasCustomName()) {
                    this.die();
                } else {
                    this.a(damagesource);
                }
            }

            return true;
        }
    } else {
        return true;
    }
}
项目:SpigotSource    文件:EntityBoat.java   
public boolean damageEntity(DamageSource damagesource, float f) {
    if (this.isInvulnerable(damagesource)) {
        return false;
    } else if (!this.world.isClientSide && !this.dead) {
        if (damagesource instanceof EntityDamageSourceIndirect && damagesource.getEntity() != null && this.w(damagesource.getEntity())) {
            return false;
        } else {
            // CraftBukkit start
            Vehicle vehicle = (Vehicle) this.getBukkitEntity();
            org.bukkit.entity.Entity attacker = (damagesource.getEntity() == null) ? null : damagesource.getEntity().getBukkitEntity();

            VehicleDamageEvent event = new VehicleDamageEvent(vehicle, attacker, (double) f);
            this.world.getServer().getPluginManager().callEvent(event);

            if (event.isCancelled()) {
                return true;
            }
            // f = event.getDamage(); // TODO Why don't we do this?
            // CraftBukkit end

            this.d(-this.q());
            this.b(10);
            this.setDamage(this.n() + f * 10.0F);
            this.ao();
            boolean flag = damagesource.getEntity() instanceof EntityHuman && ((EntityHuman) damagesource.getEntity()).abilities.canInstantlyBuild;

            if (flag || this.n() > 40.0F) {
                // CraftBukkit start
                VehicleDestroyEvent destroyEvent = new VehicleDestroyEvent(vehicle, attacker);
                this.world.getServer().getPluginManager().callEvent(destroyEvent);

                if (destroyEvent.isCancelled()) {
                    this.setDamage(40F); // Maximize damage so this doesn't get triggered again right away
                    return true;
                }
                // CraftBukkit end
                if (!flag && this.world.getGameRules().getBoolean("doEntityDrops")) {
                    this.a(this.j(), 1, 0.0F);
                }

                this.die();
            }

            return true;
        }
    } else {
        return true;
    }
}
项目:Craft-city    文件:EntityMinecartAbstract.java   
public boolean damageEntity(DamageSource damagesource, int i) {
    if (!this.world.isStatic && !this.dead) {
        if (this.isInvulnerable()) {
            return false;
        } else {
            // CraftBukkit start
            Vehicle vehicle = (Vehicle) this.getBukkitEntity();
            org.bukkit.entity.Entity passenger = (damagesource.getEntity() == null) ? null : damagesource.getEntity().getBukkitEntity();

            VehicleDamageEvent event = new VehicleDamageEvent(vehicle, passenger, i);
            this.world.getServer().getPluginManager().callEvent(event);

            if (event.isCancelled()) {
                return true;
            }

            i = event.getDamage();
            // CraftBukkit end

            this.j(-this.k());
            this.i(10);
            this.J();
            this.setDamage(this.getDamage() + i * 10);
            boolean flag = damagesource.getEntity() instanceof EntityHuman && ((EntityHuman) damagesource.getEntity()).abilities.canInstantlyBuild;

            if (flag || this.getDamage() > 40) {
                if (this.passenger != null) {
                    this.passenger.mount(this);
                }

                // CraftBukkit start
                VehicleDestroyEvent destroyEvent = new VehicleDestroyEvent(vehicle, passenger);
                this.world.getServer().getPluginManager().callEvent(destroyEvent);

                if (destroyEvent.isCancelled()) {
                    this.setDamage(40); // Maximize damage so this doesn't get triggered again right away
                    return true;
                }
                // CraftBukkit end

                if (flag && !this.c()) {
                    this.die();
                } else {
                    this.a(damagesource);
                }
            }

            return true;
        }
    } else {
        return true;
    }
}
项目:Craft-city    文件:EntityBoat.java   
public boolean damageEntity(DamageSource damagesource, int i) {
    if (this.isInvulnerable()) {
        return false;
    } else if (!this.world.isStatic && !this.dead) {
        // CraftBukkit start
        Vehicle vehicle = (Vehicle) this.getBukkitEntity();
        org.bukkit.entity.Entity attacker = (damagesource.getEntity() == null) ? null : damagesource.getEntity().getBukkitEntity();

        VehicleDamageEvent event = new VehicleDamageEvent(vehicle, attacker, i);
        this.world.getServer().getPluginManager().callEvent(event);

        if (event.isCancelled()) {
            return true;
        }
        // i = event.getDamage(); // TODO Why don't we do this?
        // CraftBukkit end

        this.h(-this.h());
        this.b(10);
        this.setDamage(this.getDamage() + i * 10);
        this.J();
        boolean flag = damagesource.getEntity() instanceof EntityHuman && ((EntityHuman) damagesource.getEntity()).abilities.canInstantlyBuild;

        if (flag || this.getDamage() > 40) {
            // CraftBukkit start
            VehicleDestroyEvent destroyEvent = new VehicleDestroyEvent(vehicle, attacker);
            this.world.getServer().getPluginManager().callEvent(destroyEvent);

            if (destroyEvent.isCancelled()) {
                this.setDamage(40); // Maximize damage so this doesn't get triggered again right away
                return true;
            }
            // CraftBukkit end

            if (this.passenger != null) {
                this.passenger.mount(this);
            }

            if (!flag) {
                this.a(Item.BOAT.id, 1, 0.0F);
            }

            this.die();
        }

        return true;
    } else {
        return true;
    }
}