.getShooter() instanceof GlowPlayer) { GlowPlayer damager = (GlowPlayer) (source instanceof GlowPlayer ? source : ((Arrow) source).getShooter()); if (damager.getGameMode() == GameMode.ADVENTURE) { return;
launchedArrow.spigot().setDamage(damage); launchedArrow .setKnockbackStrength(bow .getEnchantmentLevel(Enchantment.ARROW_KNOCKBACK)); launchedArrow.setCritical(true);
@Override public Arrow spawnArrow(Location location, Vector velocity, float speed, float spread) { // Transformative magic Vector randVec = new Vector(ThreadLocalRandom.current().nextGaussian(), ThreadLocalRandom .current().nextGaussian(), ThreadLocalRandom.current().nextGaussian()); randVec.multiply(0.0075 * spread); velocity.normalize(); velocity.add(randVec); velocity.multiply(speed); // yaw = Math.atan2(x, z) * 180.0D / 3.1415927410125732D; // pitch = Math.atan2(y, Math.sqrt(x * x + z * z)) * 180.0D / 3.1415927410125732D Arrow arrow = spawn(location, Arrow.class); arrow.setVelocity(velocity); return arrow; }
private void handleGrapplingHook(Arrow arrow) { if (arrow != null) { if (arrow.getShooter() instanceof Player && Variables.jump.containsKey(((Player) arrow.getShooter()).getUniqueId())) { final Player p = (Player) arrow.getShooter(); if (p.getGameMode() != GameMode.CREATIVE && Variables.jump.get(p.getUniqueId())) arrow.getWorld().dropItem(arrow.getLocation(), SlimefunItem.getItem("GRAPPLING_HOOK")); if (p.getLocation().distance(arrow.getLocation()) < 3.0D) { if (arrow.getLocation().getY() > p.getLocation().getY()) { p.setVelocity(new Vector(0.0D, 0.25D, 0.0D)); else p.setVelocity(arrow.getLocation().toVector().subtract(p.getLocation().toVector())); for (Entity n: Variables.remove.get(p.getUniqueId())) { n.remove(); double d = arrow.getLocation().distance(l); double t = d; double v_x = (1.0D + 0.08000000000000001D * t) * (arrow.getLocation().getX() - l.getX()) / t; double v_y = (1.0D + 0.04D * t) * (arrow.getLocation().getY() - l.getY()) / t - 0.5D * g * t; double v_z = (1.0D + 0.08000000000000001D * t) * (arrow.getLocation().getZ() - l.getZ()) / t;
@Override public void run() { Arrow shot = player.launchProjectile(Arrow.class); shot.setVelocity(shot.getVelocity().multiply(2.0)); } }
@Override public void setCritical(boolean critical) { this.arrow.setCritical(critical); } }
@Override public void setKnockbackStrength(int strength) { this.arrow.setKnockbackStrength(strength); }
@EventHandler public void onEntityShootBow(EntityShootBowEvent ev) { if (ev.getProjectile() instanceof Arrow) { Arrow a = (Arrow) ev.getProjectile(); if (a.getShooter() instanceof Player) { System.out.println("Launching LightningShot..."); new LightningShot(a); } } }
@EventHandler public void onEntityShootBow(EntityShootBowEvent ev) { if (ev.getProjectile() instanceof Arrow) { Arrow a = (Arrow) ev.getProjectile(); if (a.getShooter() instanceof Player) { ItemStack bow = ev.getBow(); if (bow.hasItemMeta() && bow.getItemMeta().getDisplayName().equals(ChatColor.AQUA + "Magic" + ChatColor.RED + "Bow")) { System.out.println("Launching LightningShot..."); new LightningShot(arrow).runTaskTimer(this, 0, 1); } } } }
@EventHandler(ignoreCancelled = true) private void paintingBreak(HangingBreakByEntityEvent event){ Player ply = null; if(event.getRemover() instanceof Player){ ply = (Player) event.getRemover(); } else if(event.getRemover() instanceof Arrow){ if(((Arrow)event.getRemover()).getShooter() instanceof Player){ ply = (Player)((Arrow)event.getRemover()).getShooter(); } } if(ply != null){ if(pdata.getMinigamePlayer(ply).isInMinigame()){ event.setCancelled(true); } } }
@EventHandler(priority = EventPriority.HIGHEST) public void onProjectileHit(EntityDamageByEntityEvent e){ if(!(e.getEntity() instanceof Player)){ return; } Player player = (Player) e.getEntity(); if(!isEnabled(player.getWorld())){ return; } if(!(e.getDamager() instanceof Arrow)){ return; } Arrow arrow = (Arrow) e.getDamager(); ProjectileSource shooter = arrow.getShooter(); if(shooter instanceof Player){ Player shootingPlayer = (Player) shooter; if(player.getUniqueId().equals(shootingPlayer.getUniqueId())){ e.setCancelled(true); debug("We cancelled your bow boost", player); } } } }
@EventHandler(ignoreCancelled = true) private void animalHurt(EntityDamageByEntityEvent event){ if(event.getEntity() instanceof Animals){ Animals animal = (Animals) event.getEntity(); if(animal.getHealth() <= event.getDamage()){ MinigamePlayer ply = null; if(event.getDamager() instanceof Player){ ply = pdata.getMinigamePlayer((Player) event.getDamager()); } else if(event.getDamager() instanceof Arrow){ Arrow arr = (Arrow) event.getDamager(); if(arr.getShooter() instanceof Player){ ply = pdata.getMinigamePlayer((Player) arr.getShooter()); } } if(ply != null){ if(ply.isInMinigame()){ ply.getMinigame().getBlockRecorder().addEntity(animal, ply, false); } } } } }
Player player=null; if(damage.getDamager() instanceof Player) player=(Player) damage.getDamager(); if(damage.getDamager() instanceof Arrow && ((Arrow)damage.getDamager()).getShooter() instanceof Player) player=(Player)((Arrow)damage.getDamager()).getShooter(); if (player!=null) {
EntityDamageByEntityEvent damageEvent = (EntityDamageByEntityEvent) event; Entity damager = damageEvent.getDamager(); if (damager instanceof Player || (damager instanceof Arrow && ((Arrow) damager).getShooter() instanceof Player)) { player = (Player) arrow.getShooter(); } else { player = (Player) damager;
} else if (edbee.getDamager().getType().equals(EntityType.ARROW)) { Arrow arrow = (Arrow) edbee.getDamager(); if (arrow.getShooter() instanceof Player) { Player shooter = (Player) arrow.getShooter(); if (g.isSpectator(shooter)) { ede.setCancelled(true); g.setPlayerDamager(p, (Player) arrow.getShooter());
} else if (edbee.getDamager().getType().equals(EntityType.ARROW)) { Arrow arrow = (Arrow) edbee.getDamager(); if (arrow.getShooter() instanceof Player) { Player shooter = (Player) arrow.getShooter(); if (g.isSpectator(shooter)) { ede.setCancelled(true); g.setPlayerDamager(p, (Player) arrow.getShooter());
if (arrow.getShooter() instanceof Player) { Player ply = (Player) arrow.getShooter(); MinigamePlayer mgpl = pdata.getMinigamePlayer(ply); if (mgpl == null) return;
if (arrow.getShooter() instanceof Player) attacker = (Player) arrow.getShooter();
if (arrow.getShooter() instanceof Player) attacker = (Player) arrow.getShooter(); victim = (Player) sub.getEntity();
Arrow arrow = (Arrow) event.getCombuster(); if (arrow.getShooter() instanceof Player) { attacker = (Player) arrow.getShooter();