Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- package me.JPG.SkyboundCore;
- import java.util.ArrayList;
- import java.util.List;
- import org.bukkit.ChatColor;
- import org.bukkit.Location;
- import org.bukkit.command.Command;
- import org.bukkit.command.CommandExecutor;
- import org.bukkit.command.CommandSender;
- import org.bukkit.entity.Arrow;
- import org.bukkit.entity.Egg;
- import org.bukkit.entity.LivingEntity;
- import org.bukkit.entity.Player;
- import org.bukkit.entity.Projectile;
- import org.bukkit.event.EventHandler;
- import org.bukkit.event.Listener;
- import org.bukkit.event.entity.ProjectileHitEvent;
- import org.bukkit.event.entity.ProjectileLaunchEvent;
- import org.bukkit.event.player.PlayerMoveEvent;
- import org.bukkit.inventory.PlayerInventory;
- import org.bukkit.metadata.FixedMetadataValue;
- public class ExplosiveProjectiles implements CommandExecutor, Listener {
- private static final List<String> players = new ArrayList<String>();
- @Override
- public boolean onCommand(CommandSender commandSender, Command cmd, String alias, String[] args) {
- if (commandSender instanceof Player) {
- Player player = (Player) commandSender;
- PlayerInventory inv = player.getInventory();
- if (player.hasPermission("skybound.explosivebow") || player.isOp()) {
- if (players.contains(player.getName())) {
- // They have explosive bow
- player.sendMessage(ChatColor.GRAY + "Your arrows will no longer be " + ChatColor.AQUA + "explosive " + ChatColor.GRAY + ".");
- players.remove(player.getName());
- } else {
- player.sendMessage(ChatColor.GRAY + "Your arrows will now be" + ChatColor.AQUA + " explosive " + ChatColor.GRAY + "!");
- players.add(player.getName());
- }
- } else {
- commandSender.sendMessage(ChatColor.RED + "You do not have permission to this command!");
- }
- } else {
- commandSender.sendMessage(ChatColor.RED + "This can only be used by in-game players");
- }
- return true;
- }
- @EventHandler
- public void onProjectileShoot(ProjectileLaunchEvent event) {
- Projectile projectile = event.getEntity();
- LivingEntity shooter = projectile.getShooter();
- if (shooter instanceof Player && (projectile instanceof Arrow || projectile instanceof Egg) && players.contains(((Player) shooter).getName())) {
- projectile.setMetadata("Explosive", new FixedMetadataValue(Main.getPlugin(), true));
- }
- }
- @EventHandler
- public void onProjectileHit(ProjectileHitEvent event){
- Projectile entity = event.getEntity();
- LivingEntity shooter = entity.getShooter();
- if (entity.hasMetadata("Explosive")) {
- Location loc = entity.getLocation();
- entity.getWorld().createExplosion(loc.getX(), loc.getY(), loc.getZ(),10F, false, false);
- entity.remove();
- }
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement