Advertisement
Guest User

Untitled

a guest
May 15th, 2015
279
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 5.10 KB | None | 0 0
  1. package me.timlampen.onevsone;
  2.  
  3. import java.util.ArrayList;
  4. import java.util.HashMap;
  5. import java.util.Map;
  6. import java.util.Random;
  7. import java.util.UUID;
  8.  
  9. import org.bukkit.Bukkit;
  10. import org.bukkit.ChatColor;
  11. import org.bukkit.Location;
  12. import org.bukkit.Material;
  13. import org.bukkit.World;
  14. import org.bukkit.enchantments.Enchantment;
  15. import org.bukkit.entity.Player;
  16. import org.bukkit.event.player.PlayerTeleportEvent.TeleportCause;
  17. import org.bukkit.inventory.Inventory;
  18. import org.bukkit.inventory.ItemStack;
  19. import org.bukkit.inventory.PlayerInventory;
  20. import org.bukkit.potion.PotionEffect;
  21.  
  22. public class Arena {
  23. boolean cancelled;
  24. boolean isRunning = false;
  25. ConfigMaker config;
  26. HashMap<UUID, String> playerperms = new HashMap<UUID, String>();
  27. HashMap<UUID, Location> origloc = new HashMap<UUID, Location>();
  28. HashMap<Enchantment, Integer> enchs = new HashMap<Enchantment, Integer>();
  29. HashMap<UUID, ItemStack[]> playerarmor = new HashMap<UUID, ItemStack[]>();
  30. HashMap<UUID, ItemStack[]> playerinvs = new HashMap<UUID, ItemStack[]>();
  31. Location spawn1;
  32. Location spawn2;
  33. Main p;
  34. Player p1;
  35. Player p2;
  36. //start arena
  37. public Arena(String filename, Main p){
  38. this.p = p;
  39. config = new ConfigMaker(p, filename);
  40. enchs.put(Enchantment.PROTECTION_ENVIRONMENTAL, 25);
  41. enchs.put(Enchantment.DURABILITY, 15);
  42. load();
  43. }
  44.  
  45.  
  46. public void start(final Player inviter, final Player invitee){
  47. p1 = inviter;
  48. p2 = invitee;
  49. isRunning = true;
  50. p.activearenas.remove(this);
  51. addPlayer(inviter);
  52. addPlayer(invitee);
  53. invitee.teleport(spawn1, TeleportCause.PLUGIN);
  54. inviter.teleport(spawn2, TeleportCause.PLUGIN);
  55. Bukkit.getScheduler().runTaskLater(p, new Runnable(){
  56.  
  57. @Override
  58. public void run(){
  59. if(isRunning){
  60. removePlayers(new Player[]{inviter, invitee});
  61. inviter.sendMessage(p.prefix + ChatColor.RED + "Error: The 1v1 lasted more than ten minutes, it has been disbanded");
  62. invitee.sendMessage(p.prefix + ChatColor.RED + "Error: The 1v1 lasted more than ten minutes, it has been disbanded");
  63. }
  64.  
  65. }}, 20*600);
  66. }
  67.  
  68. public void addPlayer(Player player){
  69. Bukkit.dispatchCommand(Bukkit.getConsoleSender(), "fly " + player.getName() + " off");
  70. Bukkit.dispatchCommand(Bukkit.getConsoleSender(), "sudo " + player.getName() + " highjump off");
  71. origloc.put(player.getUniqueId(), player.getLocation());
  72. p.backup.put(player.getUniqueId(), player.getInventory());
  73. playerarmor.put(player.getUniqueId(), player.getInventory().getArmorContents());
  74. playerinvs.put(player.getUniqueId(), player.getInventory().getContents());
  75. player.getInventory().clear();
  76. p.playertoarena.put(player.getUniqueId(), this);
  77. player.getInventory().addItem(new ItemStack(Material.GOLDEN_APPLE, 5, (short)1));
  78. ItemStack sword = new ItemStack(Material.DIAMOND_SWORD);
  79. sword.addUnsafeEnchantment(Enchantment.DAMAGE_ALL, 25);
  80. sword.addUnsafeEnchantment(Enchantment.DURABILITY, 10);
  81. sword.addUnsafeEnchantment(Enchantment.FIRE_ASPECT, 15);
  82. ItemStack helm = new ItemStack(Material.DIAMOND_HELMET);
  83. helm.addUnsafeEnchantments(enchs);
  84. ItemStack chest = new ItemStack(Material.DIAMOND_CHESTPLATE);
  85. chest.addUnsafeEnchantments(enchs);
  86. ItemStack pants = new ItemStack(Material.DIAMOND_LEGGINGS);
  87. pants.addUnsafeEnchantments(enchs);
  88. ItemStack boots = new ItemStack(Material.DIAMOND_BOOTS);
  89. boots.addUnsafeEnchantments(enchs);
  90. player.getInventory().setArmorContents(new ItemStack[]{boots, pants, chest, helm});
  91. player.getInventory().addItem(sword);
  92. player.getInventory().addItem(new ItemStack(Material.PUMPKIN_PIE, 10));
  93. player.sendMessage(p.prefix + ChatColor.GREEN + "The arena has started!");
  94. for(PotionEffect effect : player.getActivePotionEffects()){
  95. player.removePotionEffect(effect.getType());
  96. }
  97.  
  98. }
  99.  
  100. public void removePlayers(Player[] players){
  101. isRunning = false;
  102. for(Player player : players){
  103. player.getInventory().clear();
  104. p.playertoarena.remove(player.getUniqueId());
  105. if(playerarmor.get(player.getUniqueId())!=null){
  106. player.getInventory().setArmorContents(playerarmor.get(player.getUniqueId()));
  107. }
  108. if(playerinvs.get(player.getUniqueId())!=null){
  109. player.getInventory().setContents(playerinvs.get(player.getUniqueId()));
  110. }
  111. if(origloc.containsKey(player.getUniqueId())){
  112. Location loc = origloc.get(player.getUniqueId());
  113. player.teleport(new Location(loc.getWorld(), loc.getX(), loc.getY(), loc.getZ()), TeleportCause.PLUGIN);
  114. }
  115. else{
  116. player.teleport(new Location(Bukkit.getWorld("world"), 1929, 75, -575));
  117. }
  118. p.inarena.remove(player.getUniqueId());
  119. if(p.partner.containsKey(player.getUniqueId())){
  120. p.partner.remove(player.getUniqueId());
  121. }
  122. player.setFoodLevel(20);
  123. player.setFireTicks(0);
  124. player.setHealth(20);
  125. if(playerperms.containsKey(player.getUniqueId())){
  126. p.perms.playerAdd(player, playerperms.get(player.getUniqueId()));
  127. playerperms.remove(player.getUniqueId());
  128. }
  129. }
  130. p1 = null;
  131. p2 = null;
  132. playerarmor.clear();
  133. playerinvs.clear();
  134. origloc.clear();
  135. playerperms.clear();
  136. p.activearenas.add(this);
  137. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement