Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- package me.timlampen.onevsone;
- import java.util.ArrayList;
- import java.util.HashMap;
- import java.util.Map;
- import java.util.Random;
- import java.util.UUID;
- import org.bukkit.Bukkit;
- import org.bukkit.ChatColor;
- import org.bukkit.Location;
- import org.bukkit.Material;
- import org.bukkit.World;
- import org.bukkit.enchantments.Enchantment;
- import org.bukkit.entity.Player;
- import org.bukkit.event.player.PlayerTeleportEvent.TeleportCause;
- import org.bukkit.inventory.Inventory;
- import org.bukkit.inventory.ItemStack;
- import org.bukkit.inventory.PlayerInventory;
- import org.bukkit.potion.PotionEffect;
- public class Arena {
- boolean cancelled;
- boolean isRunning = false;
- ConfigMaker config;
- HashMap<UUID, String> playerperms = new HashMap<UUID, String>();
- HashMap<UUID, Location> origloc = new HashMap<UUID, Location>();
- HashMap<Enchantment, Integer> enchs = new HashMap<Enchantment, Integer>();
- HashMap<UUID, ItemStack[]> playerarmor = new HashMap<UUID, ItemStack[]>();
- HashMap<UUID, ItemStack[]> playerinvs = new HashMap<UUID, ItemStack[]>();
- Location spawn1;
- Location spawn2;
- Main p;
- Player p1;
- Player p2;
- //start arena
- public Arena(String filename, Main p){
- this.p = p;
- config = new ConfigMaker(p, filename);
- enchs.put(Enchantment.PROTECTION_ENVIRONMENTAL, 25);
- enchs.put(Enchantment.DURABILITY, 15);
- load();
- }
- public void start(final Player inviter, final Player invitee){
- p1 = inviter;
- p2 = invitee;
- isRunning = true;
- p.activearenas.remove(this);
- addPlayer(inviter);
- addPlayer(invitee);
- invitee.teleport(spawn1, TeleportCause.PLUGIN);
- inviter.teleport(spawn2, TeleportCause.PLUGIN);
- Bukkit.getScheduler().runTaskLater(p, new Runnable(){
- @Override
- public void run(){
- if(isRunning){
- removePlayers(new Player[]{inviter, invitee});
- inviter.sendMessage(p.prefix + ChatColor.RED + "Error: The 1v1 lasted more than ten minutes, it has been disbanded");
- invitee.sendMessage(p.prefix + ChatColor.RED + "Error: The 1v1 lasted more than ten minutes, it has been disbanded");
- }
- }}, 20*600);
- }
- public void addPlayer(Player player){
- Bukkit.dispatchCommand(Bukkit.getConsoleSender(), "fly " + player.getName() + " off");
- Bukkit.dispatchCommand(Bukkit.getConsoleSender(), "sudo " + player.getName() + " highjump off");
- origloc.put(player.getUniqueId(), player.getLocation());
- p.backup.put(player.getUniqueId(), player.getInventory());
- playerarmor.put(player.getUniqueId(), player.getInventory().getArmorContents());
- playerinvs.put(player.getUniqueId(), player.getInventory().getContents());
- player.getInventory().clear();
- p.playertoarena.put(player.getUniqueId(), this);
- player.getInventory().addItem(new ItemStack(Material.GOLDEN_APPLE, 5, (short)1));
- ItemStack sword = new ItemStack(Material.DIAMOND_SWORD);
- sword.addUnsafeEnchantment(Enchantment.DAMAGE_ALL, 25);
- sword.addUnsafeEnchantment(Enchantment.DURABILITY, 10);
- sword.addUnsafeEnchantment(Enchantment.FIRE_ASPECT, 15);
- ItemStack helm = new ItemStack(Material.DIAMOND_HELMET);
- helm.addUnsafeEnchantments(enchs);
- ItemStack chest = new ItemStack(Material.DIAMOND_CHESTPLATE);
- chest.addUnsafeEnchantments(enchs);
- ItemStack pants = new ItemStack(Material.DIAMOND_LEGGINGS);
- pants.addUnsafeEnchantments(enchs);
- ItemStack boots = new ItemStack(Material.DIAMOND_BOOTS);
- boots.addUnsafeEnchantments(enchs);
- player.getInventory().setArmorContents(new ItemStack[]{boots, pants, chest, helm});
- player.getInventory().addItem(sword);
- player.getInventory().addItem(new ItemStack(Material.PUMPKIN_PIE, 10));
- player.sendMessage(p.prefix + ChatColor.GREEN + "The arena has started!");
- for(PotionEffect effect : player.getActivePotionEffects()){
- player.removePotionEffect(effect.getType());
- }
- }
- public void removePlayers(Player[] players){
- isRunning = false;
- for(Player player : players){
- player.getInventory().clear();
- p.playertoarena.remove(player.getUniqueId());
- if(playerarmor.get(player.getUniqueId())!=null){
- player.getInventory().setArmorContents(playerarmor.get(player.getUniqueId()));
- }
- if(playerinvs.get(player.getUniqueId())!=null){
- player.getInventory().setContents(playerinvs.get(player.getUniqueId()));
- }
- if(origloc.containsKey(player.getUniqueId())){
- Location loc = origloc.get(player.getUniqueId());
- player.teleport(new Location(loc.getWorld(), loc.getX(), loc.getY(), loc.getZ()), TeleportCause.PLUGIN);
- }
- else{
- player.teleport(new Location(Bukkit.getWorld("world"), 1929, 75, -575));
- }
- p.inarena.remove(player.getUniqueId());
- if(p.partner.containsKey(player.getUniqueId())){
- p.partner.remove(player.getUniqueId());
- }
- player.setFoodLevel(20);
- player.setFireTicks(0);
- player.setHealth(20);
- if(playerperms.containsKey(player.getUniqueId())){
- p.perms.playerAdd(player, playerperms.get(player.getUniqueId()));
- playerperms.remove(player.getUniqueId());
- }
- }
- p1 = null;
- p2 = null;
- playerarmor.clear();
- playerinvs.clear();
- origloc.clear();
- playerperms.clear();
- p.activearenas.add(this);
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement