Java 类org.bukkit.entity.Snowball 实例源码

项目:WC    文件:Weapon.java   
public void shoot(Player player){
    setAttackTimer(getAttackTimer() + System.currentTimeMillis() - getLastAttackTimer());
    setLastAttackTimer(System.currentTimeMillis());
    if(getAttackTimer() < getShootCooldown()) return;

    /*if (hasBullets()) {
        System.out.println("Tiene balas: " + Integer.parseInt(lore.get(lore.size() - 1).split(" ")[1]));
        youShotM8();
    }*/

    Snowball snowball = player.getWorld().spawn(player.getEyeLocation(), Snowball.class);
    snowball.setVelocity(player.getLocation().getDirection().multiply(distance()));
    snowball.setShooter(player);
    snowball.setMetadata("twd", new FixedMetadataValue(WCTWD.getInstance(), "weapon_" + getId()));

    //
    player.playSound(player.getLocation(), sound, 1, 1);
    particle.display(particleData, 0, 0, 0, 1, 3, player.getLocation(), 20);
}
项目:SuperiorCraft    文件:LongRangeWeapon.java   
@EventHandler
public void onEntityDamage(EntityDamageByEntityEvent e) {
    if ((e.getDamager() instanceof Arrow) && (((Arrow) e.getDamager()).getShooter() instanceof Player) && e.getDamager().getCustomName() == name) {
        e.setDamage(e.getDamage() + damage);
        if (effect != null) {

            ((LivingEntity) e.getEntity()).addPotionEffect(effect);
        }
    }
    if ((e.getDamager() instanceof Fireball) && (((Fireball) e.getDamager()).getShooter() instanceof Player) && e.getDamager().getCustomName() == name) {
        e.setDamage(e.getDamage() + damage);
    }
    if ((e.getDamager() instanceof Snowball) && (((Snowball) e.getDamager()).getShooter() instanceof Player) && e.getDamager().getCustomName() == name) {
        e.setDamage(e.getDamage() + damage);
    }

}
项目:SuperiorCraft    文件:LongRangeWeapon.java   
@EventHandler
public void onEntityDamage(EntityDamageByEntityEvent e) {
    if ((e.getDamager() instanceof Arrow) && (((Arrow) e.getDamager()).getShooter() instanceof Player) && e.getDamager().getCustomName() == name) {
        e.setDamage(e.getDamage() + damage);
        if (effect != null) {

            ((LivingEntity) e.getEntity()).addPotionEffect(effect);
        }
    }
    if ((e.getDamager() instanceof Fireball) && (((Fireball) e.getDamager()).getShooter() instanceof Player) && e.getDamager().getCustomName() == name) {
        e.setDamage(e.getDamage() + damage);
    }
    if ((e.getDamager() instanceof Snowball) && (((Snowball) e.getDamager()).getShooter() instanceof Player) && e.getDamager().getCustomName() == name) {
        e.setDamage(e.getDamage() + damage);
    }

}
项目:Skript    文件:ClassesTest.java   
@Test
public void test() {
    final Object[] random = {
            // Java
            (byte) 127, (short) 2000, -1600000, 1L << 40, -1.5f, 13.37,
            "String",

            // Skript
            Color.BLACK, StructureType.RED_MUSHROOM, WeatherType.THUNDER,
            new Date(System.currentTimeMillis()), new Timespan(1337), new Time(12000), new Timeperiod(1000, 23000),
            new Experience(15), new Direction(0, Math.PI, 10), new Direction(new double[] {0, 1, 0}),
            new EntityType(new SimpleEntityData(HumanEntity.class), 300), new CreeperData(), new SimpleEntityData(Snowball.class), new HorseData(Variant.SKELETON_HORSE), new WolfData(), new XpOrbData(50),

            // Bukkit - simple classes only
            GameMode.ADVENTURE, Biome.EXTREME_HILLS, DamageCause.FALL,

            // there is also at least one variable for each class on my test server which are tested whenever the server shuts down.
    };

    for (final Object o : random) {
        Classes.serialize(o); // includes a deserialisation test
    }
}
项目:ExilePearl    文件:CoreDamageLoggerTest.java   
@SuppressWarnings("deprecation")
@Test
public void testSnowballDamage() {
    dut.start();

    List<Player> damagers = dut.getSortedDamagers(player);
    assertEquals(0, damagers.size());

    Snowball snowball = mock(Snowball.class);

    EntityDamageByEntityEvent damageEvent = new EntityDamageByEntityEvent(snowball, player, null, 5);
    dut.onEntityDamageByEntity(damageEvent);
    damagers = dut.getSortedDamagers(player);
    assertEquals(0, damagers.size());

    when(snowball.getShooter()).thenReturn(d1);
    dut.onEntityDamageByEntity(damageEvent);
    damagers = dut.getSortedDamagers(player);
    assertEquals(1, damagers.size());
    assertEquals(d1, damagers.get(0));
}
项目:AdvancedAchievements    文件:AchieveSnowballEggListener.java   
@EventHandler(priority = EventPriority.MONITOR, ignoreCancelled = true)
public void onProjectileLaunch(ProjectileLaunchEvent event) {
    if (!(event.getEntity().getShooter() instanceof Player)) {
        return;
    }

    Player player = (Player) event.getEntity().getShooter();
    NormalAchievements category;
    if (event.getEntity() instanceof Snowball) {
        category = NormalAchievements.SNOWBALLS;
    } else if (event.getEntity() instanceof Egg) {
        category = NormalAchievements.EGGS;
    } else {
        return;
    }

    if (plugin.getDisabledCategorySet().contains(category.toString())) {
        return;
    }

    if (!shouldIncreaseBeTakenIntoAccount(player, category)) {
        return;
    }

    updateStatisticAndAwardAchievementsIfAvailable(player, category, 1);
}
项目:AceOfSpadesMiniGame    文件:PlayerEventInteractGun.java   
@EventHandler(priority = EventPriority.HIGHEST)
void onInteract(PlayerInteractEvent e){
    Player p = e.getPlayer();
    if(p.getItemInHand().getType() == Material.BLAZE_ROD){
        if(p.hasPermission("aos.usegun")){
            if(Game.CheckArenaState()==ArenaMode.INGAME){
                int AmountOfBullet=PlayersStatsboard.IleNaboi(p);
                if(AmountOfBullet>0){
                    if(e.getAction()== Action.RIGHT_CLICK_AIR||e.getAction()==Action.RIGHT_CLICK_BLOCK){
                        StoringData.snowballsID.put(p.launchProjectile(Snowball.class).getEntityId(),p);
                        PlayersStatsboard.odejmijNaboje(p);
                    }
                }
            }
            else{
                p.sendMessage(PluginPrefixes.getPrefix()+ChatColor.RED+"Nie mozesz tego teraz uzywac!");
            }
        }

    }
}
项目:Dexoria-Hub    文件:SnowGun.java   
@EventHandler
public void onShovelClick(PlayerInteractEvent e){
    if(e.getAction() == Action.RIGHT_CLICK_AIR){
        if(e.getPlayer().getItemInHand().getType() == Material.IRON_BARDING){
            if(GadgetManager.isImmune(e.getPlayer().getName())){
                e.getPlayer().sendMessage(ChatColor.BLUE + "Hub > " + ChatColor.GRAY
                        + "You are not playing hub games.");
                return;
            }

            if(DexCore.getCurrencySystem().hasEnoughGC(e.getPlayer().getUniqueId().toString(), 2)){
                DexCore.getCurrencySystem().removeGC(e.getPlayer().getUniqueId().toString(), 2);
                e.getPlayer().launchProjectile(Snowball.class, e.getPlayer().getLocation().getDirection().multiply(2));
            }
        }
    }
}
项目:Dexoria-Hub    文件:SnowGun.java   
@EventHandler
public void projectilehit(EntityDamageByEntityEvent e){
    if((e.getEntity() instanceof Player) && (e.getDamager() instanceof Snowball)){
        Player hitp = (Player) e.getEntity();

        if(GadgetManager.isImmune(hitp.getName())){
            Snowball s = (Snowball) e.getDamager();
            Player shooter = (Player) s.getShooter();

            shooter.sendMessage(ChatColor.BLUE + "Hub > " 
            + ChatColor.GRAY + "Player " + ChatColor.RED + hitp.getName() + ChatColor.GRAY
            + " is not playing hub games!");
            return;
        }
        if(hit.contains(hitp.getName()))
                return;

        doSnowBallHit(hitp);
    }
}
项目:Let-It-Rain    文件:Events.java   
@SuppressWarnings("deprecation")
@EventHandler(priority = EventPriority.LOW)
   public void interact(PlayerInteractEvent event) {

    if (event.getPlayer().getItemInHand().getTypeId() == LetItRain.item && event.getPlayer().hasPermission("LetItRain.launcher")){

        Entity snow = event.getPlayer().launchProjectile(Snowball.class);
        snow.setFireTicks(1000);
        snows.add(snow);

    }else if(event.getPlayer().getItemInHand().getTypeId() == LetItRain.itemZeus && event.getPlayer().hasPermission("LetItRain.zeus")){

        Player player = event.getPlayer();
        Location location = player.getTargetBlock((HashSet<Byte>)null, 800).getLocation();  

        World world = player.getWorld();
        world.createExplosion(location, LetItRain.dLightningPower);
        world.strikeLightning(location);

    }
   }
项目:PvZ    文件:Events.java   
@EventHandler
private void onEntityDamageByEntityEvent(
        final EntityDamageByEntityEvent event) {
    if (!(event.getEntity() instanceof Player))
        return;
    Player player = (Player) event.getEntity();
    if (!api.getGameManager().isPlayerInGame(player))
        return;
    Game game = api.getGameManager().getGame(player);
    if (event.getDamager() instanceof Snowball) {
        if (game.getZombies().getMembers().containsKey(player.getUniqueId())) {
            player.damage(1.0);
            if (game.getZombies().getMembers().get(player.getUniqueId()) != ZombieType.GARGANTUAR)
                player.setVelocity(((Snowball) event.getDamager()).getLocation().getDirection().multiply(0.5));
            return;
        }
        checkCancel(event, player, null, (Projectile) event.getDamager());
    } else if (event.getDamager() instanceof Player) {
        if (!(event.getDamager() instanceof Player))
            return;
        checkCancel(event, player, (Player) event.getDamager(), null);
    } else if (event.getDamager() instanceof Projectile) {
        checkCancel(event, player, null, (Projectile) event.getDamager());
    }
}
项目:PvZ    文件:Events.java   
@SuppressWarnings("deprecation")
@EventHandler
private void onProjectileHitEvent(final ProjectileHitEvent event) {
    Projectile projectile = event.getEntity();
    if (!(projectile instanceof Snowball))
        return;
    if (projectile.getShooter() instanceof Player) {
        Player player = (Player) projectile.getShooter();
        Game game = api.getGameManager().getGame(player);
        if (game == null)
            return;
        if (game.getState() != GameState.PLAYING)
            return;
        PlantType type = game.getPlants().getMembers().get(player.getUniqueId());
        if (type == null)
            return;
        if (type == PlantType.WINTER_MELON) {
            freeze(getZombies(projectile, game), game);
        }
    }
}
项目:bukkit_ESB    文件:SBListener.java   
@EventHandler
public void onProjectileHit(ProjectileHitEvent event) {

    Entity entity = event.getEntity();

    // Config
    float size = plugin.getConfig().getInt("Size of Explosion");
    boolean damage = plugin.getConfig().getBoolean("Block Damage");
    boolean fire = plugin.getConfig().getBoolean("Set Fire");

    if (entity instanceof Snowball) {
        Snowball snowball = (Snowball) entity;
        Entity shooter = snowball.getShooter();

        if (shooter instanceof Player) {
            Player player = (Player) shooter;
            Location sb = snowball.getLocation();

            if (plugin.players.contains(player.getName())) {
                player.getWorld().createExplosion(sb.getX(), sb.getY(),
                        sb.getZ(), size, fire, damage);
            }
        }
    }
}
项目:Let-It-Rain    文件:Events.java   
@SuppressWarnings("deprecation")
@EventHandler(priority = EventPriority.LOW)
   public void interact(PlayerInteractEvent event) {

    if (event.getPlayer().getItemInHand().getTypeId() == LetItRain.item && event.getPlayer().hasPermission("LetItRain.launcher")){

        Entity snow = event.getPlayer().launchProjectile(Snowball.class);
        snow.setFireTicks(1000);
        snows.add(snow);

    }else if(event.getPlayer().getItemInHand().getTypeId() == LetItRain.itemZeus && event.getPlayer().hasPermission("LetItRain.zeus")){

        Player player = event.getPlayer();
        Location location = player.getTargetBlock((HashSet<Byte>)null, 800).getLocation();  

        World world = player.getWorld();
        world.createExplosion(location, LetItRain.dLightningPower);
        world.strikeLightning(location);

    }
   }
项目:Arcadia-Spigot    文件:SpleefGame.java   
@EventHandler
public void onSnowballHit(ProjectileHitEvent event) {
    if(event.getEntity() instanceof Snowball) {
        if(event.getHitBlock() != null && event.getHitBlock().getType() == Material.SNOW_BLOCK) {
            event.getHitBlock().breakNaturally(new ItemStack(Material.AIR));
        }
    }
}
项目:Hub    文件:PaintballDisplayer.java   
@Override
public void display()
{
    new BukkitRunnable()
    {
        private int times = 0;

        @Override
        public void run()
        {
            Snowball snowball = PaintballDisplayer.this.player.launchProjectile(Snowball.class);
            snowball.setVelocity(snowball.getVelocity().multiply(1.5));
            snowball.setMetadata("paintball-ball", new FixedMetadataValue(PaintballDisplayer.this.hub, PaintballDisplayer.this.uuid.toString()));

            this.times++;

            if (this.times == 30)
            {
                PaintballDisplayer.this.restore();
                PaintballDisplayer.this.end();

                HandlerList.unregisterAll(PaintballDisplayer.this);

                this.cancel();
            }
        }
    }.runTaskTimer(this.hub, 5L, 5L);
}
项目:SkyWarsReloaded    文件:ProjectileListener.java   
@EventHandler
public void projectileLaunch(ProjectileLaunchEvent e) {
     Projectile projectile = e.getEntity();
     if (projectile instanceof Snowball || projectile instanceof Egg || projectile instanceof Arrow) {
         if (projectile.getShooter() instanceof Player) {
             GamePlayer shooter = SkyWarsReloaded.getPC().getPlayer(((Player) projectile.getShooter()).getUniqueId());
             String effect = shooter.getProjEffect();
             if (effect != null) {
                 if (!effect.equalsIgnoreCase("normal") && shooter.inGame()) {
                     SkyWarsReloaded.getProjC().addProjectile(projectile, shooter.getProjEffect());
                 }
             }
         }
     }
}
项目:scp    文件:PlayerInteractListener.java   
@EventHandler(priority = EventPriority.LOWEST)
public void onInteract(PlayerInteractEvent event) {
    // 玩家交互物品进行射击处理
    if(event.getAction() == Action.RIGHT_CLICK_AIR) {
        // 右键空气方块时才能射击
        Player player = event.getPlayer();
        ItemStack handItem = player.getInventory().getItemInMainHand();
        String displayName = handItem.getItemMeta().getDisplayName();

        if(displayName != null && displayName.equalsIgnoreCase("AK47")) {
            fireGun(player, Snowball.class, 3);
        }
    }
}
项目:scp    文件:PlayerInteractListener.java   
@EventHandler(priority = EventPriority.LOWEST)
public void onDamage(EntityDamageByEntityEvent event) {
    // 处理实体受伤是实体所为事件
    Entity entity = event.getEntity();
    Entity damager = event.getDamager();

    if(damager instanceof Snowball) {
        Snowball snowball = (Snowball) damager;
        if(snowball.getShooter() instanceof Player) {
            event.setDamage(10d);
        }
    }
}
项目:CubeKrowd-Icerunner    文件:Game.java   
@EventHandler
public void onProjectileThrownEvent(ProjectileLaunchEvent e) {
      if((e.getEntity() instanceof Snowball)){
          Snowball snowball = (Snowball) e.getEntity();
          if(!(snowball.getShooter() instanceof Player)) return;
          snowballs.get(snowball.getShooter()).addSnowball(snowball);
      }
      else if (e.getEntity() instanceof Arrow) {
        Arrow a = (Arrow) e.getEntity();
        if(!(a.getShooter() instanceof Player)) return;
        arrows.add(a);
    }
      return;

}
项目:CubeKrowd-Icerunner    文件:Game.java   
@EventHandler 
public void onProjectileHit(ProjectileHitEvent e){
    if(e.getEntity() instanceof Snowball){
        snowballs.remove(e.getEntity());
    }
    else if(e.getEntity() instanceof Arrow){
        breakBlocks(e.getEntity().getLocation());
        e.getEntity().remove();
    }
}
项目:PaintWarPlugin    文件:PaintWarPlugin.java   
@EventHandler
public void onSnowballThrow(PlayerInteractEvent e) {
    // Get the Player from the event
    Player player = e.getPlayer();

    // If they're in a game...
    if (player.hasMetadata("team")) {
        // If they're holding the "gun"...
        if (e.getMaterial().name().equals("IRON_BARDING")) {
            // SHOOT!
            player.launchProjectile(Snowball.class);
        }
    }
}
项目:RageMode    文件:EventListener.java   
@EventHandler
public void onCombatAxeThrow(PlayerInteractEvent event) {
    if (PlayerList.isPlayerPlaying(event.getPlayer().getUniqueId().toString())) {
        Player thrower = event.getPlayer();
        if (waitingGames.containsKey(PlayerList.getPlayersGame(thrower))) {
            if (waitingGames.get(PlayerList.getPlayersGame(thrower))) {
                return;
            }
        }
        if (thrower.getItemInHand() != null && thrower.getItemInHand().getItemMeta() != null
                && thrower.getItemInHand().getItemMeta().getDisplayName() != null) {
            if (thrower.getItemInHand().getItemMeta().getDisplayName().equals(ChatColor.GOLD + "CombatAxe")) {
                Snowball sb = thrower.launchProjectile(Snowball.class);
                thrower.getInventory().setItemInHand(null);
            }
        }
    }

    if (event.getClickedBlock() != null && event.getClickedBlock().getState() != null) {
        if (event.getClickedBlock().getState() instanceof Sign) {
            if (event.getAction() == Action.RIGHT_CLICK_BLOCK) {
                Sign sign = (Sign) event.getClickedBlock().getState();
                if (SignCreator.isJoinSign(sign)) {
                    Player player = event.getPlayer();
                    if (player.hasPermission("ragemode.rm.join")) {
                        String[] args = new String[2];
                        args[0] = "join";
                        args[1] = SignCreator.getGameFromSign(sign);
                        new PlayerJoin(player, args[0], args, PluginLoader.getInstance().getConfig());
                    } else {
                        player.sendMessage(ChatColor.translateAlternateColorCodes('�',
                                PluginLoader.getMessages().PERMISSION_MESSAGE));
                    }
                }
            }
        }
    }
}
项目:Zephyr    文件:BallProjectile.java   
@Override
public void launch(User user) {     
    this.snowball = user.<Player>getPlayer().launchProjectile(Snowball.class);
    PacketEntityDestroy packet = new PacketEntityDestroy(snowball.getEntityId());
    packet.send(user.<Player>getPlayer());
    for (Player p : user.<Player>getPlayer().getWorld().getPlayers()) {
        packet.send(p);
    }
    Zephyr.getProjectileManager().trackProjectile(this);
}
项目:PretparkCore    文件:GadgetTriggers.java   
@EventHandler
public void onRightClickItem(PlayerInteractEvent event){
    Player p = event.getPlayer();
    if(event.getItem() != null){
        if(event.getAction() == Action.RIGHT_CLICK_AIR || event.getAction() == Action.RIGHT_CLICK_BLOCK) {
            if (event.getItem().hasItemMeta()) {
                switch (event.getItem().getType()) {
                    default:
                        break;
                    case FIREWORK_CHARGE:
                        event.setCancelled(true);
                        shootFirework(p);
                        break;
                    case FIREWORK:
                        if(event.getItem().getItemMeta().hasDisplayName()){
                            if(ChatColor.stripColor(event.getItem().getItemMeta().getDisplayName()).contains("Gadget")){
                                event.setCancelled(true);
                                shootFireworkRide(p);
                            }
                        }
                        break;
                    case WOOD_HOE:
                        Snowball sb = p.launchProjectile(Snowball.class);
                        sb.setShooter(p);
                        sb.setVelocity(p.getLocation().getDirection().multiply(1.7));
                        p.playSound(p.getLocation(), Sound.IRONGOLEM_THROW, 100, 1);
                        break;
                    case RECORD_11:
                        event.setCancelled(true);
                        playMusic(p);
                        break;
                }
            }
        }
    }
}
项目:mcAssault    文件:Weapons.java   
/**
 * This is the shooting mechanic
 * @param player the player that the projectile should be spawned at
 * @param accuracy the accuracy of the projectile, 0 is 100% accurate
 * @param speed the speed the projectile will have
 */
public static void spawnProjectile(Player player, double accuracy, double speed, ItemList weapon){

    double randX, randY, randZ;
    randX = Math.random()*accuracy;
    randY = Math.random()*accuracy;
    randZ = Math.random()*accuracy;

    Snowball bullet = player.getWorld().spawn(player.getEyeLocation(), Snowball.class);
    Vector velocity = new Vector().setX(randX).setY(randY).setZ(randZ);
    velocity.add(player.getLocation().getDirection().multiply(speed));
    bullet.setVelocity(velocity); 
    bullet.setShooter(player);
    bullets.put(bullet.getEntityId(), new BulletInfo(bullet, player, weapon));
}
项目:Zephyrus-II    文件:DamagingBeamProjectile.java   
@Override
public void launchProjectile(Player player) {
    snowball = player.launchProjectile(Snowball.class);
    PacketEntityDestroy packet = new PacketEntityDestroy(snowball.getEntityId());
    packet.send(player);
    for (Player p : player.getWorld().getPlayers()) {
        packet.send(p);
    }
    ProjectileHandler.getInstance().launchProjectile(this);
}
项目:Zephyrus-II    文件:StateBallProjectile.java   
@Override
public void launchProjectile(Player player) {
    snowball = player.launchProjectile(Snowball.class);
    PacketEntityDestroy packet = new PacketEntityDestroy(snowball.getEntityId());
    packet.send(player);
    for (Player p : player.getWorld().getPlayers()) {
        packet.send(p);
    }
    ProjectileHandler.getInstance().launchProjectile(this);
}
项目:Zephyrus-II    文件:DamagingBallProjectile.java   
@Override
public void launchProjectile(Player player) {
    snowball = player.launchProjectile(Snowball.class);
    PacketEntityDestroy packet = new PacketEntityDestroy(snowball.getEntityId());
    packet.send(player);
    for (Player p : player.getWorld().getPlayers()) {
        packet.send(p);
    }
    ProjectileHandler.getInstance().launchProjectile(this);
}
项目:SnowballTeleporter    文件:SnowballTeleporterMain.java   
@EventHandler
public void onTP(ProjectileHitEvent e){
    Projectile proj = e.getEntity();

if(this.getConfig().getBoolean("teleporting-snowballs") == true){   
    if(proj instanceof Snowball){
        Snowball sb = (Snowball) proj;
        if(sb.getShooter() instanceof Player){
            LivingEntity p = (Player) sb.getShooter();
            p.teleport(sb);
            }
    }
        }
    }
项目:Pore    文件:PoreLivingEntity.java   
@SuppressWarnings("deprecation")
@Override
public Snowball throwSnowball() {
    if (getHandle() instanceof ProjectileSource) {
        return PoreSnowball.of(
                ((ProjectileSource) getHandle()).launchProjectile(
                        org.spongepowered.api.entity.projectile.Snowball.class
                ).orElse(null)
        );
    }
    throw new UnsupportedOperationException("Not a ProjectileSource");
}
项目:Wayward    文件:FreezeSpell.java   
private void scheduleLaunches(final Plugin plugin, final Player player, long... delays) {
    for (long delay : delays) {
        plugin.getServer().getScheduler().scheduleSyncDelayedTask(plugin, new Runnable() {

            @Override
            public void run() {
                Snowball snowball = player.launchProjectile(Snowball.class);
                snowball.setMetadata("isFreeze", new FixedMetadataValue(plugin, true));
            }

        }, delay);
    }
}
项目:Wayward    文件:MagicMissileSpell.java   
@Override
public boolean use(Player player) {
    Plugin plugin = Bukkit.getServer().getServicesManager().getRegistration(SkillsPlugin.class).getProvider();
    Snowball snowball = player.launchProjectile(Snowball.class);
    snowball.setMetadata("isMagicMissile", new FixedMetadataValue(plugin, true));
    return true;
}
项目:Wayward    文件:IceboltSpell.java   
private void scheduleLaunches(final Plugin plugin, final Player player, long... delays) {
    for (long delay : delays) {
        plugin.getServer().getScheduler().scheduleSyncDelayedTask(plugin, new Runnable() {

            @Override
            public void run() {
                Snowball snowball = player.launchProjectile(Snowball.class);
                snowball.setMetadata("isIcebolt", new FixedMetadataValue(plugin, true));
            }

        }, delay);
    }
}
项目:Wayward    文件:FireBreathSpell.java   
@Override
public boolean use(Fight fight, Character attacking, Character defending, ItemStack weapon) {
    if (attacking.getMana() >= getManaCost()) {
        if (attacking.getPlayer().isOnline()) {
            Player player = attacking.getPlayer().getPlayer();
            player.launchProjectile(Snowball.class);
            fight.setStatusTurns(attacking, StatusEffect.BURNED, 5);
            fight.sendMessage(ChatColor.YELLOW + (attacking.isNameHidden() ? ChatColor.MAGIC + attacking.getName() + ChatColor.RESET : attacking.getName()) + ChatColor.YELLOW + " scorched " + (defending.isNameHidden() ? ChatColor.MAGIC + defending.getName() + ChatColor.RESET : defending.getName()) + ChatColor.YELLOW + " with burning hot breath.");
        }
        return true;
    } else {
        fight.sendMessage(ChatColor.YELLOW + (attacking.isNameHidden() ? ChatColor.MAGIC + attacking.getName() + ChatColor.RESET : attacking.getName()) + ChatColor.YELLOW + " breathed a burning hot wind, but nothing happened.");
    }
    return false;
}
项目:Wayward    文件:IceBreathSpell.java   
@Override
public boolean use(Fight fight, Character attacking, Character defending, ItemStack weapon) {
    if (attacking.getMana() >= getManaCost()) {
        if (attacking.getPlayer().isOnline()) {
            Player player = attacking.getPlayer().getPlayer();
            player.launchProjectile(Snowball.class);
            fight.setStatusTurns(attacking, StatusEffect.FROZEN, 5);
            fight.sendMessage(ChatColor.YELLOW + (attacking.isNameHidden() ? ChatColor.MAGIC + attacking.getName() + ChatColor.RESET : attacking.getName()) + ChatColor.YELLOW + " breathed an ice cold wind at " + (defending.isNameHidden() ? ChatColor.MAGIC + defending.getName() + ChatColor.RESET : defending.getName()) + ChatColor.YELLOW + ", freezing them.");
        }
        return true;
    } else {
        fight.sendMessage(ChatColor.YELLOW + (attacking.isNameHidden() ? ChatColor.MAGIC + attacking.getName() + ChatColor.RESET : attacking.getName()) + ChatColor.YELLOW + " breathed an ice cold wind, but nothing happened.");
    }
    return false;
}
项目:SnowballMadness    文件:TNTSnowballLogic.java   
@Override
public void hit(Snowball snowball, SnowballInfo info) {
    super.hit(snowball, info);
    snowball.getWorld().createExplosion(snowball.getLocation(), snowballSize);
    //boom!
    Entity[] entList = snowball.getWorld().getChunkAt(snowball.getLocation()).getEntities();
    for (Entity drop : entList) {
        if (drop instanceof Item) {
            //on explosion, nuke drops (and item frames?) in the chunk hit.
            //with massive multiplier TNT balls, we don't want to check the whole world
            //every single time. That's super wasteful. We reserve it for the high power explosives.
            drop.remove();
        }
    }
}
项目:RodsTwo    文件:Minigun.java   
@EventHandler(priority=EventPriority.LOW)
public void onSnowballHit(EntityDamageByEntityEvent event) {
    if (event.getDamager() instanceof org.bukkit.entity.Snowball && event.getEntity() instanceof Player) {
        Snowball ball = (Snowball) event.getDamager();
        if (ball.getShooter() instanceof Player) {
            Player player = (Player) ball.getShooter();
            if (isFiring.contains(player.getName()))
                event.setDamage(RodsTwo.getInstance().rodConfig.getInt(getPath("options.damage_per_shot")));
        }
    }
}
项目:Romball    文件:SnowballListener.java   
@EventHandler
public void onPlayerInteract(PlayerInteractEvent e) {
    if (!(e.getAction() == Action.RIGHT_CLICK_AIR) && !(e.getAction() == Action.RIGHT_CLICK_BLOCK)) return;
    if (ArenaManager.getInstance().getArena(e.getPlayer()) == null) return;
    if (e.getItem().getType() == Material.SNOW_BALL) {
        e.setCancelled(true);
        e.setUseItemInHand(Result.DENY);
        e.getPlayer().launchProjectile(Snowball.class);
    }
}
项目:Romball    文件:SnowballListener.java   
@EventHandler
public void onEntityDamage(EntityDamageByEntityEvent e) {
    if (e.getEntity() instanceof Player && e.getDamager() instanceof Snowball) {
        Player p = (Player) e.getEntity();
        Snowball s = (Snowball) e.getDamager();

        if (!(s.getShooter() instanceof Player)) return;
        Player shooter = (Player) s.getShooter();

           if (ArenaManager.getInstance().getArena(p) == null && ArenaManager.getInstance().getArena(shooter) == null) return;
           Arena a = ArenaManager.getInstance().getArena(p);
        if (a.getTeam(p) == a.getTeam(shooter)) return;
        p.damage(5.0);
    }
}