package me.EnderPilot105.youtube;
import java.io.File;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.InputStream;
import java.io.OutputStream;
import java.net.URL;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.HashMap;
import java.util.List;
import java.util.logging.Logger;
import org.bukkit.Bukkit;
import org.bukkit.ChatColor;
import org.bukkit.Color;
import org.bukkit.Effect;
import org.bukkit.FireworkEffect;
import org.bukkit.FireworkEffect.Type;
import org.bukkit.GameMode;
import org.bukkit.Location;
import org.bukkit.Material;
import org.bukkit.Sound;
import org.bukkit.World;
import org.bukkit.block.Block;
import org.bukkit.block.BlockState;
import org.bukkit.command.Command;
import org.bukkit.command.CommandSender;
import org.bukkit.enchantments.Enchantment;
import org.bukkit.entity.EntityType;
import org.bukkit.entity.FallingBlock;
import org.bukkit.entity.Firework;
import org.bukkit.entity.Player;
import org.bukkit.event.EventHandler;
import org.bukkit.event.EventPriority;
import org.bukkit.event.Listener;
import org.bukkit.event.entity.EntityExplodeEvent;
import org.bukkit.event.entity.PlayerDeathEvent;
import org.bukkit.event.inventory.InventoryClickEvent;
import org.bukkit.event.player.AsyncPlayerChatEvent;
import org.bukkit.inventory.Inventory;
import org.bukkit.inventory.ItemStack;
import org.bukkit.inventory.meta.FireworkMeta;
import org.bukkit.inventory.meta.ItemMeta;
import org.bukkit.inventory.meta.LeatherArmorMeta;
import org.bukkit.plugin.java.JavaPlugin;
import org.bukkit.potion.PotionEffect;
import org.bukkit.potion.PotionEffectType;
import org.bukkit.scheduler.BukkitRunnable;
import org.bukkit.scoreboard.DisplaySlot;
import org.bukkit.scoreboard.Objective;
import org.bukkit.scoreboard.Score;
import org.bukkit.scoreboard.Scoreboard;
import org.bukkit.scoreboard.ScoreboardManager;
import org.bukkit.scoreboard.Team;
import org.bukkit.util.Vector;
public class Youtube extends JavaPlugin implements Listener {
ArrayList<String> redlist = new ArrayList<String>();
ArrayList<String> bluelist = new ArrayList<String>();
ArrayList<String> list = new ArrayList<String>();
ArrayList<String> isset = new ArrayList<String>();
ArrayList<String> s = new ArrayList<String>();
List<Location> circleblocks = new ArrayList<Location>();
public HashMap<Player, ItemStack[]> armor = new HashMap<Player, ItemStack[]>();
public final Logger logger = Logger.getLogger("Minecraft");
public static Youtube plugin;
public int number = 0;
public int numbe = 15;
public int numb = 10;
public int num = 400;
public int f = 50;
Location loc;
Team red;
Team blue;
Team spec;
Objective objective;
Scoreboard board;
ItemStack item1;
ItemStack item2;
ItemStack item3;
ItemStack item4;
ItemStack item5;
ItemStack item6;
ItemStack item7;
ItemStack item8;
ItemStack item9;
Inventory options;
Inventory inv;
Firework fw;
Player p;
@Override
public void onDisable() {
this.logger.info("Battle dome plugin has been disabled!");
this.logger
.info("If you dont see any errors the BarApi.jar at location /plugins/BarApi.jar has been deleted!");
this.getServer().getScheduler().cancelAllTasks();
File file = new File("/plugins/", "BarApi" + ".jar");
file.delete();
}
@Override
public void onEnable() {
this.logger.info("Battle dome plugin has been enabled!");
try {
downloadFile(
"http://dev.bukkit.org/media/files/769/204/BarAPI.jar",
"plugins/BarApi.JAR");
} catch (IOException e) {
e.printStackTrace();
}
this.logger
.info("If you dont see any errors BarApi library has been downloaded to /plugin/BarApi.jar");
getServer().getPluginManager().registerEvents(this, this);
Inventory options = Bukkit.createInventory(null, 9, ""
+ ChatColor.GREEN + ChatColor.BOLD
+ "Battle Dome control panel");
this.options = options;
ItemStack item6 = setMeta(new ItemStack(Material.WORKBENCH), ""
+ ChatColor.GREEN + ChatColor.BOLD
+ "Remove 5 minutes from timer!",
Arrays.asList(ChatColor.RED + "Only in build phase!"));
ItemStack item7 = setMeta(new ItemStack(Material.WORKBENCH), ""
+ ChatColor.GREEN + ChatColor.BOLD
+ "Remove 1 minute from timer!",
Arrays.asList(ChatColor.RED + "Only in build phase!"));
ItemStack item1 = setMeta(new ItemStack(Material.WORKBENCH), ""
+ ChatColor.GREEN + ChatColor.BOLD + "Add 5 minutes to timer!",
Arrays.asList(ChatColor.RED + "Only in build phase!"));
ItemStack item2 = setMeta(new ItemStack(Material.WORKBENCH), ""
+ ChatColor.GREEN + ChatColor.BOLD + "Add 1 minute to timer!",
Arrays.asList(ChatColor.RED + "Only in build phase!"));
ItemStack item3 = setMeta(new ItemStack(Material.WORKBENCH), ""
+ ChatColor.GREEN + ChatColor.BOLD + "Stop all timers!",
Arrays.asList(ChatColor.RED + "Stops all timers!"));
ItemStack item4 = setMeta(new ItemStack(Material.WORKBENCH), ""
+ ChatColor.GREEN + ChatColor.BOLD + "Reset all scoreboards!",
Arrays.asList(ChatColor.RED + "Only in battle phase!"));
ItemStack item5 = setMeta(new ItemStack(Material.ENCHANTED_BOOK), ""
+ ChatColor.GREEN + ChatColor.BOLD + "Start ghost Battle Dome",
Arrays.asList(ChatColor.RED + "Test version"));
ItemStack item8 = setMeta(new ItemStack(Material.ENCHANTED_BOOK), ""
+ ChatColor.GREEN + ChatColor.BOLD
+ "Start tornados on all alive player locations!",
Arrays.asList(ChatColor.RED + "Code by LucasEmanuel"));
ItemStack item9 = setMeta(new ItemStack(Material.ENCHANTED_BOOK), ""
+ ChatColor.GREEN + ChatColor.BOLD
+ "Spanw firework circle above every alive player!",
Arrays.asList(ChatColor.RED + "Auto set-night!"));
options.setItem(0, item1);
options.setItem(1, item2);
options.setItem(2, item6);
options.setItem(3, item7);
options.setItem(4, item3);
options.setItem(5, item4);
options.setItem(6, item5);
options.setItem(7, item8);
options.setItem(8, item9);
this.item1 = item1;
this.item2 = item2;
this.item3 = item3;
this.item4 = item4;
this.item5 = item5;
this.item6 = item6;
this.item7 = item7;
this.item8 = item8;
this.item9 = item9;
}
public static void downloadFile(String link, String directory)
throws IOException {
URL url = new URL(link);
InputStream is = url.openStream();
OutputStream os = new FileOutputStream(directory);
byte[] b = new byte[2048];
int length;
while ((length = is.read(b)) != -1) {
os.write(b, 0, length);
}
is.close();
os.close();
}
public void regen(final List<BlockState> blocks, final boolean effect,
final int speed) {
new BukkitRunnable() {
int i = -1;
@SuppressWarnings("deprecation")
public void run() {
if (i != blocks.size() - 1) {
i++;
BlockState bs = blocks.get(i);
bs.getBlock().setType(bs.getType());
bs.getBlock().setData(bs.getBlock().getData());
if (effect)
bs.getBlock()
.getWorld()
.playEffect(bs.getLocation(),
Effect.STEP_SOUND,
bs.getBlock().getType());
} else {
for (BlockState bs : blocks) {
bs.getBlock().setType(bs.getType());
bs.getBlock().setData(bs.getBlock().getData());
}
blocks.clear();
this.cancel();
}
}
}.runTaskTimer(this, speed, speed);
}
@SuppressWarnings("deprecation")
@EventHandler
public void explode(EntityExplodeEvent e) {
if (!e.blockList().isEmpty()) {
final List<BlockState> blocks = new ArrayList<BlockState>();
for (Block b : e.blockList()) {
if (b.getType() != Material.AIR) {
if (!blocks.contains(b.getState())) {
blocks.add(b.getState());
FallingBlock fb = b.getWorld().spawnFallingBlock(
b.getLocation(), b.getType(), b.getData());
fb.setDropItem(false);
b.setType(Material.AIR);
}
}
}
new BukkitRunnable() {
int i = 17;
public void run() {
if (i > 0) {
i--;
} else {
regen(blocks, true, 1);
this.cancel();
}
}
}.runTaskTimer(this, 15, 15);
e.blockList().clear();
}
}
private List<Location> circle(Location loc, Integer r, Integer h,
Boolean hollow, Boolean sphere, int plus_y) {
int cx = loc.getBlockX();
int cy = loc.getBlockY();
int cz = loc.getBlockZ();
int i = 0;
for (int x = cx - r; x <= cx + r; x++)
for (int z = cz - r; z <= cz + r; z++)
for (int y = (sphere ? cy - r : cy); y < (sphere ? cy + r : cy
+ h); y++) {
double dist = (cx - x) * (cx - x) + (cz - z) * (cz - z)
+ (sphere ? (cy - y) * (cy - y) : 0);
if (dist < r * r && !(hollow && dist < (r - 1) * (r - 1))) {
if (i++ < 2) {
continue;
} else {
i = 0;
}
Location l = new Location(loc.getWorld(), x,
y + plus_y, z);
circleblocks.add(l);
}
}
return circleblocks;
}
public void Launch() {
for (Player s : Bukkit.getOnlinePlayers()) {
s.playSound(s.getLocation(), Sound.AMBIENCE_CAVE, 10, 0);
Tornado.spawnTornado(this, s.getLocation(), Material.PACKED_ICE,
(byte) 0, new Vector(2, 0, 2), 0.1d, 100, (long) 10 * 80,
true, true);
s.sendMessage("" + ChatColor.DARK_RED + ChatColor.BOLD
+ "<Broken Battle Dome>" + ChatColor.RESET + ChatColor.BOLD
+ ChatColor.AQUA + "The wind starts blowing faster...");
}
}
@EventHandler
public void chatFormat(AsyncPlayerChatEvent event) {
Player player = event.getPlayer();
String p = player.getName();
if (redlist.contains(p)) {
event.setFormat("" + ChatColor.DARK_RED + ChatColor.BOLD + "[RED]"
+ ChatColor.RESET + ChatColor.YELLOW + ChatColor.BOLD + p
+ ": " + ChatColor.RESET + ChatColor.YELLOW
+ event.getMessage());
} else if (bluelist.contains(p)) {
event.setFormat("" + ChatColor.DARK_BLUE + ChatColor.BOLD
+ "[BLUE]" + ChatColor.RESET + ChatColor.YELLOW
+ ChatColor.BOLD + p + ": " + ChatColor.RESET
+ ChatColor.YELLOW + event.getMessage());
} else if (s.contains(p)) {
event.setFormat("" + ChatColor.DARK_GRAY + ChatColor.BOLD
+ "[SPECTATOR]" + ChatColor.RESET + ChatColor.YELLOW
+ ChatColor.BOLD + p + ": " + ChatColor.RESET
+ ChatColor.YELLOW + event.getMessage());
} else {
event.setFormat("" + ChatColor.DARK_GREEN + ChatColor.BOLD
+ "[GUEST]" + ChatColor.RESET + ChatColor.YELLOW
+ ChatColor.BOLD + p + ": " + ChatColor.RESET
+ ChatColor.YELLOW + event.getMessage());
}
}
@EventHandler(priority = EventPriority.HIGHEST)
public void onPlayerDeath(PlayerDeathEvent event) {
event.setDeathMessage(null);
Player player = event.getEntity();
Player killer = player.getKiller();
player.teleport(killer);
if (bluelist.contains(player.getName())) {
blue.removePlayer(player);
s.add(player.getName());
spec.addPlayer(player);
for (Player players : Bukkit.getOnlinePlayers()) {
players.hidePlayer(player);
}
player.setCanPickupItems(false);
player.setGameMode(GameMode.CREATIVE);
String target = player.getName();
Bukkit.broadcastMessage("" + ChatColor.GREEN + "<Battle Dome>"
+ ChatColor.YELLOW + ChatColor.BOLD + target
+ ChatColor.GREEN + ChatColor.BOLD + " has died!");
player.sendMessage(ChatColor.GREEN + "<Battle Dome>"
+ ChatColor.BOLD + ChatColor.GREEN
+ "You are now spectating");
player.sendMessage(ChatColor.GREEN + "<Battle Dome>"
+ ChatColor.BOLD + ChatColor.GREEN
+ "You are now hidden from other players");
if(bluelist.isEmpty()) {
Bukkit.broadcastMessage("" + ChatColor.DARK_RED + ChatColor.BOLD + "Red team won! Congrats!");
for( Player abc : Bukkit.getOnlinePlayers()) {
abc.kickPlayer("" + ChatColor.DARK_RED + ChatColor.BOLD + "Red team won! Congrats");
Bukkit.getServer().reload();
}
}
}
if (redlist.contains(player.getName())) {
red.removePlayer(player);
s.add(player.getName());
spec.addPlayer(player);
for (Player players : Bukkit.getOnlinePlayers()) {
players.hidePlayer(player);
}
player.setGameMode(GameMode.CREATIVE);
String target = player.getName();
Bukkit.broadcastMessage("" + ChatColor.GREEN + "<Battle Dome>"
+ ChatColor.YELLOW + ChatColor.BOLD + target
+ ChatColor.GREEN + ChatColor.BOLD + " has died!");
player.sendMessage(ChatColor.GREEN + "<Battle Dome>"
+ ChatColor.BOLD + ChatColor.GREEN
+ "You are now spectating");
if(redlist.isEmpty()) {
Bukkit.broadcastMessage("" + ChatColor.DARK_BLUE + ChatColor.BOLD + "Blue team won! Congrats!");
for( Player abc : Bukkit.getOnlinePlayers()) {
abc.kickPlayer("" + ChatColor.DARK_BLUE + ChatColor.BOLD + "Blue team won! Congrats");
Bukkit.getServer().reload();
}
}
} else {
}
}
public void ScoreboardSetup() {
ScoreboardManager manager = Bukkit.getScoreboardManager();
org.bukkit.scoreboard.Scoreboard board = manager.getNewScoreboard();
this.board = board;
Objective obj = board.registerNewObjective("test1", "health");
obj.setDisplaySlot(DisplaySlot.SIDEBAR);
obj.setDisplayName("" + ChatColor.DARK_RED + ChatColor.BOLD + "Health");
for (Player player : Bukkit.getOnlinePlayers()) {
Score health = obj.getScore(player);
health.setScore(20);
player.setScoreboard(board);
}
Objective objective = board.registerNewObjective("test2", "deathCount");
objective.setDisplaySlot(DisplaySlot.PLAYER_LIST);
objective.setDisplayName("" + ChatColor.DARK_RED + "Deaths");
this.objective = objective;
}
public void Startup() {
for (Player p : Bukkit.getOnlinePlayers()) {
p.playSound(p.getLocation(), Sound.ANVIL_USE, 1, 0);
p.addPotionEffect(new PotionEffect(
PotionEffectType.DAMAGE_RESISTANCE, 18000, 3));
p.addPotionEffect(new PotionEffect(PotionEffectType.NIGHT_VISION,
18000, 0));
p.addPotionEffect(new PotionEffect(PotionEffectType.REGENERATION,
18000, 3));
}
TeamSetup();
isset.add("on");
Bukkit.broadcastMessage("" + ChatColor.GREEN + "<Battle Dome>" + ""
+ ChatColor.DARK_RED + ChatColor.BOLD
+ "A 15 minute countdown has been started!");
this.getServer().getScheduler()
.scheduleSyncRepeatingTask(this, new BukkitRunnable() {
public void run() {
if (numbe != -1) {
if (numbe != 1) {
Bukkit.broadcastMessage("" + ChatColor.GREEN
+ "<Battle Dome>" + ChatColor.BOLD
+ ChatColor.DARK_RED + numbe
+ ChatColor.BOLD + ChatColor.GREEN
+ " minutes remaining...");
for (Player p : Bukkit.getOnlinePlayers()) {
p.playSound(p.getLocation(), Sound.CLICK,
1, 0);
}
numbe--;
} else {
MinuteSetup();
numbe--;
Bukkit.getServer().getScheduler()
.cancelTask(getTaskId());
}
if (numbe != 14) {
Bukkit.broadcastMessage("");
} else {
Bukkit.broadcastMessage(""
+ ChatColor.GREEN
+ "<Battle Dome>"
+ ChatColor.BOLD
+ ChatColor.GREEN
+ "You can now select your team by doing:");
Bukkit.broadcastMessage("" + ChatColor.GREEN
+ "<Battle Dome>" + ChatColor.BOLD
+ ChatColor.GREEN
+ "/team red - join red team");
Bukkit.broadcastMessage("" + ChatColor.GREEN
+ "<Battle Dome>" + ChatColor.BOLD
+ ChatColor.GREEN
+ "/team blue - join blue team");
Bukkit.broadcastMessage("" + ChatColor.GREEN
+ "<Battle Dome>" + ChatColor.BOLD
+ ChatColor.GREEN
+ "/team leave - leave your team");
}
}
}
}, 0L, 1200L);
}
public void TeamSetup() {
ScoreboardManager manager = Bukkit.getScoreboardManager();
org.bukkit.scoreboard.Scoreboard boar = manager.getNewScoreboard();
Team red = boar.registerNewTeam("red");
red.setAllowFriendlyFire(false);
red.setPrefix("" + ChatColor.DARK_RED + ChatColor.BOLD + "[RED]" + "");
red.setDisplayName("Red team");
Team blue = boar.registerNewTeam("blue");
blue.setAllowFriendlyFire(false);
blue.setPrefix("" + ChatColor.DARK_BLUE + ChatColor.BOLD + "[BLUE]"
+ "");
blue.setDisplayName("Blue team");
Team spec = boar.registerNewTeam("spectators");
spec.setAllowFriendlyFire(false);
spec.setPrefix("" + ChatColor.DARK_GRAY + ChatColor.BOLD + "[SPEC]"
+ "");
spec.setDisplayName("Spectators team");
spec.setCanSeeFriendlyInvisibles(true);
this.spec = spec;
this.red = red;
this.blue = blue;
}
public void MinuteSetup() {
number = 59;
for (Player p : Bukkit.getOnlinePlayers()) {
p.playSound(p.getLocation(), Sound.ENDERDRAGON_GROWL, 1, 0);
}
Bukkit.broadcastMessage("" + ChatColor.GREEN + "<Battle Dome>" + ""
+ ChatColor.DARK_RED + ChatColor.BOLD + "1 Minute left!");
this.getServer().getScheduler()
.scheduleSyncRepeatingTask(this, new BukkitRunnable() {
public void run() {
if (number != -1) {
if (number != 0) {
Bukkit.broadcastMessage("" + ChatColor.GREEN
+ "<Battle Dome>" + ChatColor.BOLD
+ ChatColor.DARK_RED + number
+ ChatColor.GREEN + ChatColor.BOLD
+ " seconds remaining...");
number--;
} else {
for (Player p : Bukkit.getOnlinePlayers()) {
p.playSound(p.getLocation(),
Sound.PORTAL_TRAVEL, 1, 0);
}
Bukkit.broadcastMessage("" + ChatColor.GREEN
+ "<Battle Dome>" + ""
+ ChatColor.DARK_RED + ChatColor.BOLD
+ "Time is up!");
list.add("1");
ScoreboardSetup();
Bukkit.broadcastMessage("" + ChatColor.GREEN
+ "<Battle Dome>" + ChatColor.DARK_RED
+ "Build phase has started!");
number--;
Bukkit.getServer().getScheduler()
.cancelTask(getTaskId());
}
}
}
}, 0L, 20L);
}
@EventHandler
public void onInventoryClick(InventoryClickEvent event) throws Exception {
Player player = (Player) event.getWhoClicked();
ItemStack clicked = event.getCurrentItem();
Inventory inventory = event.getInventory();
if (inventory.getName().equals(options.getName())) {
if (clicked.equals(item1)) {
numbe++;
numbe++;
numbe++;
numbe++;
numbe++;
event.setCancelled(true);
Bukkit.broadcastMessage("" + ChatColor.GREEN + "<Battle Dome>"
+ ChatColor.DARK_RED + ChatColor.BOLD
+ "5 minutes added to timer!");
player.closeInventory();
}
if (clicked.equals(item2)) {
numbe++;
event.setCancelled(true);
Bukkit.broadcastMessage("" + ChatColor.GREEN + "<Battle Dome>"
+ ChatColor.DARK_RED + ChatColor.BOLD
+ "1 minute added to timer!");
}
if (clicked.equals(item3)) {
Bukkit.reload();
event.setCancelled(true);
Bukkit.broadcastMessage("" + ChatColor.GREEN + "<Battle Dome>"
+ ChatColor.BOLD + ChatColor.DARK_RED
+ "Battle Dome has been stopped");
player.closeInventory();
}
if (clicked.equals(item4)) {
if (list.contains("1")) {
for (Player target : Bukkit.getOnlinePlayers()) {
Score deaths = objective.getScore(player);
deaths.setScore(0);
target.setScoreboard(board);
}
event.setCancelled(true);
Bukkit.broadcastMessage("" + ChatColor.GREEN
+ "<Battle Dome>" + ChatColor.DARK_RED
+ ChatColor.BOLD + "Scoreboard has been reseted!");
player.closeInventory();
} else {
player.sendMessage(""
+ ChatColor.GREEN
+ "<Battle Dome>"
+ ChatColor.BOLD
+ ChatColor.DARK_RED
+ "Scoreboard not set - only active at battle phase");
player.closeInventory();
}
}
if (clicked.equals(item5)) {
event.setCancelled(true);
player.closeInventory();
Bukkit.broadcastMessage("" + ChatColor.DARK_PURPLE
+ ChatColor.BOLD + "<Ghost Battle Dome>"
+ ChatColor.RESET + ChatColor.MAGIC
+ "BajanCanadian BajanCanadian BajanCanadian");
Bukkit.broadcastMessage(ChatColor.GREEN + "<Battle Dome>");
Bukkit.broadcastMessage("" + ChatColor.AQUA + ChatColor.BOLD
+ ChatColor.ITALIC
+ "Tip: Ghost Battle Dome is 2 minutes long...");
Bukkit.broadcastMessage(""
+ ChatColor.AQUA
+ ChatColor.BOLD
+ ChatColor.ITALIC
+ "Tip: When Ghost Battle Dome is over you get your items back...");
for (final Player bluep : getServer().getOnlinePlayers()) {
armor.put(bluep.getPlayer(), bluep.getEquipment()
.getArmorContents());
bluep.getPlayer().getInventory().clear();
ItemStack a = new ItemStack(Material.SKULL_ITEM);
ItemStack b = new ItemStack(Material.LEATHER_CHESTPLATE);
LeatherArmorMeta bmeta = (LeatherArmorMeta) b.getItemMeta();
bmeta.setColor(Color.BLACK);
b.setItemMeta(bmeta);
ItemStack c = new ItemStack(Material.GHAST_TEAR);
ItemStack d = new ItemStack(Material.GHAST_TEAR);
PotionEffect e = new PotionEffect(
PotionEffectType.INVISIBILITY, Integer.MAX_VALUE,
Integer.MAX_VALUE);
PotionEffect f = new PotionEffect(PotionEffectType.JUMP,
Integer.MAX_VALUE, 1);
bluep.getWorld().setTime(18000);
bluep.getInventory().setHelmet(a);
bluep.getInventory().setChestplate(b);
bluep.getInventory().setLeggings(c);
bluep.getInventory().setBoots(d);
bluep.addPotionEffect(e);
bluep.addPotionEffect(f);
Bukkit.getServer()
.getScheduler()
.scheduleSyncRepeatingTask(this,
new BukkitRunnable() {
@SuppressWarnings("deprecation")
public void run() {
if (num != -1) {
if (num != 0) {
bluep.getPlayer()
.playEffect(
bluep.getLocation(),
Effect.MOBSPAWNER_FLAMES,
1);
num--;
} else {
bluep.getWorld().setTime(
1000);
bluep.getInventory()
.clear();
bluep.getEquipment()
.setArmorContents(
armor.get(bluep
.getPlayer()));
armor.remove(bluep
.getPlayer());
Bukkit.getServer()
.getScheduler()
.cancelTask(
this.getTaskId());
num--;
}
}
}
}, 0L, 10L);
}
}
}
if (clicked.equals(item6)) {
numbe--;
numbe--;
numbe--;
numbe--;
numbe--;
event.setCancelled(true);
player.closeInventory();
}
if (clicked.equals(item7)) {
numbe--;
event.setCancelled(true);
}
if (clicked.equals(item8)) {
event.setCancelled(true);
player.closeInventory();
for (Player players : Bukkit.getOnlinePlayers()) {
players.sendMessage("" + ChatColor.DARK_RED + ChatColor.BOLD
+ "<Broken Battle Dome>" + ChatColor.RESET
+ ChatColor.AQUA + ChatColor.BOLD
+ "The wind starts blowing faster...");
Launch();
}
}
if (clicked.equals(item9)) {
event.setCancelled(true);
for (final Player p : Bukkit.getOnlinePlayers()) {
World world = p.getWorld();
world.setTime(15000);
this.p = p;
final List<Location> blocks = circle(p.getLocation(), 30, 1,
true, false, 10);
new BukkitRunnable() {
int maxIterations = 2;
int iterations = 0;
@Override
public void run() {
iterations = 0;
while (!blocks.isEmpty()
&& iterations++ < maxIterations) {
final Firework fw = (Firework) p.getWorld()
.spawnEntity(blocks.get(0),
EntityType.FIREWORK);
FireworkMeta meta = fw.getFireworkMeta();
meta.addEffect(FireworkEffect.builder()
.with(Type.BALL_LARGE).withColor(Color.RED)
.withColor(Color.GREEN)
.withFade(Color.ORANGE).build());
fw.setFireworkMeta(meta);
fw.detonate();
fw.detonate();
blocks.remove(0);
}
if (blocks.isEmpty()) {
this.cancel();
}
}
}.runTaskTimer(this, 5, 3);
}
player.closeInventory();
}
}
public ItemStack setMeta(ItemStack material, String name, List<String> lore) {
if (((material == null) || material.getType() == Material.AIR)
|| (name == null) && lore == null)
return null;
ItemMeta ph = material.getItemMeta();
ph.addEnchant(Enchantment.DURABILITY, 1, false);
if (name != null)
ph.setDisplayName(name);
if (lore != null)
ph.setLore(lore);
material.setItemMeta(ph);
return material;
}
public boolean onCommand(CommandSender sender, Command cmd,
String commandLabel, String args[]) {
if (commandLabel.equalsIgnoreCase("start")) {
for (Player player : Bukkit.getOnlinePlayers()) {
player.addPotionEffect(new PotionEffect(PotionEffectType.SLOW,
Integer.MAX_VALUE, Integer.MAX_VALUE));
}
Bukkit.getServer().getScheduler()
.scheduleSyncRepeatingTask(this, new BukkitRunnable() {
public void run() {
if (numb != -1) {
if (numb != 0) {
Bukkit.broadcastMessage(""
+ ChatColor.GREEN + "<Battle Dome>"
+ ChatColor.BOLD + ChatColor.GREEN
+ "Starting in "
+ ChatColor.DARK_RED
+ ChatColor.BOLD + numb
+ ChatColor.GREEN + " seconds...");
for (Player p : Bukkit.getOnlinePlayers()) {
p.playSound(p.getLocation(),
Sound.CLICK, 1, 0);
}
numb--;
} else {
numb--;
for (Player player : Bukkit
.getOnlinePlayers()) {
player.removePotionEffect(PotionEffectType.SLOW);
}
Startup();
Bukkit.getServer().getScheduler()
.cancelTask(getTaskId());
}
}
}
}, 0L, 20L);
} else if (commandLabel.equalsIgnoreCase("control")) {
Player player = (Player) sender;
player.openInventory(options);
} else if (commandLabel.equalsIgnoreCase("team")) {
if (isset.contains("on")) {
if (args.length == 0) {
Player a = (Player) sender;
a.sendMessage("" + ChatColor.GREEN + "<Battle Dome> "
+ ChatColor.RESET + ChatColor.DARK_GREEN
+ ChatColor.BOLD + "/team red - join red team...");
a.sendMessage("" + ChatColor.GREEN + "<Battle Dome> "
+ ChatColor.RESET + ChatColor.DARK_GREEN
+ ChatColor.BOLD + "/team blue - join blue team...");
a.sendMessage("" + ChatColor.GREEN + "<Battle Dome> "
+ ChatColor.RESET + ChatColor.DARK_GREEN
+ ChatColor.BOLD + "/team leave - leave your team!");
}
else if (args[0].equalsIgnoreCase("red")) {
Player player = (Player) sender;
String name = player.getName();
if (redlist.contains(name)) {
p.sendMessage(ChatColor.GREEN
+ "<Battle Dome>"
+ ChatColor.RESET
+ ChatColor.DARK_RED
+ ChatColor.BOLD
+ "You are already in a team to leave type /team leave");
return true;
} else {
redlist.add(name);
red.addPlayer(player);
Bukkit.broadcastMessage(ChatColor.GREEN
+ "<Battle Dome>" + ChatColor.BOLD
+ ChatColor.YELLOW + name + ChatColor.BOLD
+ ChatColor.GREEN + " has joined "
+ ChatColor.BOLD + ChatColor.DARK_RED
+ "red team");
return true;
}
} else if (args[0].equalsIgnoreCase("blue")) {
Player player = (Player) sender;
String name = player.getName();
if (bluelist.contains(name)) {
p.sendMessage(ChatColor.GREEN
+ "<Battle Dome>"
+ ChatColor.RESET
+ ChatColor.DARK_RED
+ ChatColor.BOLD
+ "You are already in a team to leave type /team leave");
return true;
} else {
bluelist.add(name);
blue.addPlayer(player);
Bukkit.broadcastMessage(ChatColor.GREEN
+ "<Battle Dome>" + ChatColor.BOLD
+ ChatColor.YELLOW + name + ChatColor.BOLD
+ ChatColor.GREEN + " has joined "
+ ChatColor.BOLD + ChatColor.DARK_BLUE
+ "blue team");
return true;
}
} else if (args[0].equalsIgnoreCase("leave")) {
Player player = (Player) sender;
String name = player.getName();
if (redlist.contains(name)) {
Bukkit.broadcastMessage(ChatColor.GREEN
+ "<Battle Dome>" + ChatColor.BOLD
+ ChatColor.YELLOW + name + ChatColor.BOLD
+ ChatColor.GREEN + " has left "
+ ChatColor.BOLD + ChatColor.DARK_RED
+ "red team");
redlist.remove(name);
return true;
}
if (bluelist.contains(name)) {
Bukkit.broadcastMessage(ChatColor.GREEN
+ "<Battle Dome>" + ChatColor.BOLD
+ ChatColor.YELLOW + name + ChatColor.BOLD
+ ChatColor.GREEN + " has left "
+ ChatColor.BOLD + ChatColor.DARK_BLUE
+ "blue team");
bluelist.remove(name);
return true;
} else {
player.sendMessage("" + ChatColor.GREEN
+ ChatColor.BOLD + "<Battle Dome>"
+ ChatColor.RESET + ChatColor.DARK_RED
+ ChatColor.BOLD
+ "You have not joined a team!");
return true;
}
}
} else {
Player pl = (Player) sender;
pl.sendMessage(ChatColor.GREEN + "<Battle Dome>"
+ ChatColor.RESET + ChatColor.DARK_RED + ChatColor.BOLD
+ "Battle dome hasn't been started!");
}
}
return true;
}
}