packageme.delta242.BouncingBall;importjava.util.ArrayList;importjava.util.Random;importjava.util.logging.Logger;importorg.bukkit.Bukkit;importorg.bukkit.ChatColor;importorg.bukkit.GameMode;importorg.bukkit.Location;importorg.bukkit.Material;importorg.bukkit.World;importorg.bukkit.command.Command;importorg.bukkit.command.CommandSender;importorg.bukkit.entity.Entity;importorg.bukkit.entity.EntityType;importorg.bukkit.entity.Player;importorg.bukkit.entity.Snowball;importorg.bukkit.event.EventHandler;importorg.bukkit.event.Listener;importorg.bukkit.event.entity.EntityDamageByEntityEvent;importorg.bukkit.event.entity.ProjectileHitEvent;importorg.bukkit.event.player.PlayerInteractEvent;importorg.bukkit.inventory.ItemStack;importorg.bukkit.inventory.meta.ItemMeta;importorg.bukkit.plugin.java.JavaPlugin;importorg.bukkit.util.Vector;publicclassBouncingBallextendsJavaPluginimplementsListener{publicLoggerlog;publicStringdisplayname;publicStringlore;Randomr;intlifetime;@OverridepublicvoidonEnable(){log=super.getLogger();this.saveDefaultConfig();this.saveConfig();displayname=ChatColor.translateAlternateColorCodes('&',this.getConfig().getString("displayname"));lore=ChatColor.translateAlternateColorCodes('&',this.getConfig().getString("lore"));lifetime=this.getConfig().getInt("lifetime");r=newRandom();this.getServer().getPluginManager().registerEvents(this,this);log.info("Plugin enabled");}@OverridepublicbooleanonCommand(CommandSendersender,Commandcmd,Stringlabel,String[]args){if(cmd.getName().equalsIgnoreCase("bouncingball")){if(senderinstanceofPlayer){Playerp=(Player)sender;if(args.length==0){p.sendMessage(ChatColor.RED+"/bouncingball <get | remove [all|radius]>");}elseif(args[0].equalsIgnoreCase("get")){if(p.hasPermission("bouncingball.bouncingball")){if(args.length!=1){p.sendMessage(ChatColor.RED+"/bouncingball get");}else{ItemStackstack=newItemStack(Material.SNOW_BALL);ItemMetaim=stack.getItemMeta();im.setDisplayName(displayname);ArrayList<String>lore=newArrayList<>();lore.add(this.lore);im.setLore(lore);stack.setItemMeta(im);if(p.getInventory().contains(stack)){p.sendMessage(ChatColor.RED+"You already have a Bouncing Ball!");returntrue;}p.getInventory().addItem(stack);p.sendMessage(this.lore);}}else{p.sendMessage(ChatColor.RED+"You dont have permission.");}}elseif(args[0].equalsIgnoreCase("remove")){if(p.hasPermission("bouncingball.remove")){if(args.length!=2){p.sendMessage(ChatColor.RED+"/bouncingball remove <all | radius>");}else{if(args[1].equalsIgnoreCase("all")){for(Worldworld:Bukkit.getWorlds()){for(Snowballsb:world.getEntitiesByClass(Snowball.class)){sb.remove();}}p.sendMessage(ChatColor.GRAY+"Removed all Bouncing Balls!");}else{try{Integerradius=Integer.parseInt(args[1]);intcounter=0;for(Entitye:p.getNearbyEntities(radius,radius,radius)){if(einstanceofSnowball){e.remove();counter++;}}p.sendMessage(ChatColor.GRAY+"Removed "+counter+" Entitys in Radius "+radius);}catch(NumberFormatExceptione){p.sendMessage(ChatColor.RED+"/bouncingball remove <all | radius>");}}}}else{p.sendMessage(ChatColor.RED+"You dont have permission.");}}else{p.sendMessage(ChatColor.RED+"/bouncingball <get | remove [all|radius]>");}}else{sender.sendMessage("Only Players");}}returntrue;}@EventHandlerpublicvoidonPlayerInteract(PlayerInteractEventevent){if(event.getAction().toString().toLowerCase().startsWith("right_click")){try{if(event.getItem().getType()==Material.SNOW_BALL){Playerp=event.getPlayer();ItemStackstack=p.getInventory().getItemInHand();if((stack.getItemMeta().getDisplayName().equalsIgnoreCase(displayname))&&(stack.getItemMeta().getLore().get(0).equalsIgnoreCase(lore))){if(p.hasPermission("bouncingball.spawn")){event.setCancelled(true);if(p.getGameMode()!=GameMode.CREATIVE)p.setItemInHand(null);Locationloc=p.getLocation();loc.setY(loc.getY()+2.5);Snowballball=(Snowball)p.getWorld().spawnEntity(loc,EntityType.SNOWBALL);Vectorvel=p.getLocation().getDirection().multiply(1.1D);ball.setVelocity(vel);ball.setShooter(null);}else{event.setCancelled(true);p.sendMessage(ChatColor.RED+"You dont have permission.");}}}}catch(NullPointerExceptione){}}}@EventHandlerpublicvoidonProjectileHit(ProjectileHitEventevent){if(event.getEntity()instanceofSnowball){Snowballsb=(Snowball)event.getEntity();if(sb.getShooter()==null){if((lifetime==0)||(sb.getTicksLived()<lifetime*20)){Snowballball=(Snowball)sb.getWorld().spawnEntity(sb.getLocation(),EntityType.SNOWBALL);Vectorvel=newVector(r.nextFloat()*2.0D-1.0D,r.nextFloat()*2.0D-0.5D,r.nextFloat()*2.0D-1.0D);vel.multiply(r.nextFloat());ball.setTicksLived(sb.getTicksLived());ball.setVelocity(vel);}}}}@EventHandlerpublicvoidonDamage(EntityDamageByEntityEventevent){if((event.getEntity()instanceofPlayer)&&(event.getDamager()instanceofSnowball)){Playerp=(Player)event.getEntity();if(p.hasPermission("bouncingball.nodamage")){event.setCancelled(true);}}}}
Comments
To post a comment, please login or register a new account.
Comments