Adding block whitelist/blacklist
This commit is contained in:
		@@ -10,6 +10,7 @@ import org.bukkit.entity.Entity;
 | 
			
		||||
import org.bukkit.entity.EntityType;
 | 
			
		||||
import org.bukkit.entity.Player;
 | 
			
		||||
import org.bukkit.event.EventHandler;
 | 
			
		||||
import org.bukkit.event.EventPriority;
 | 
			
		||||
import org.bukkit.event.Listener;
 | 
			
		||||
import org.bukkit.event.block.BlockBreakEvent;
 | 
			
		||||
import org.bukkit.event.block.BlockBurnEvent;
 | 
			
		||||
@@ -24,127 +25,96 @@ public class BlockStorage implements Listener {
 | 
			
		||||
	public BlockStorage(Main m) {
 | 
			
		||||
		this.plugin = m;
 | 
			
		||||
	}
 | 
			
		||||
	@EventHandler
 | 
			
		||||
	@EventHandler(priority = EventPriority.MONITOR)
 | 
			
		||||
	public void BlockBreak(BlockBreakEvent event){
 | 
			
		||||
		Block b = event.getBlock();
 | 
			
		||||
		Player p = event.getPlayer();
 | 
			
		||||
		String pname = p.getName();
 | 
			
		||||
		if(plugin.Playing.contains(pname)){
 | 
			
		||||
			if(plugin.config.getString("Protected_Arena").equalsIgnoreCase("True")){
 | 
			
		||||
				event.setCancelled(true);
 | 
			
		||||
				p.sendMessage(ChatColor.RED + "You can't break blocks when you're playing!");
 | 
			
		||||
			}
 | 
			
		||||
			if(plugin.canjoin){
 | 
			
		||||
				if(plugin.config.getStringList("worlds").isEmpty() || (!plugin.config.getStringList("worlds").isEmpty() && plugin.config.getStringList("worlds").contains(p.getWorld().getName()))){
 | 
			
		||||
					String w = b.getWorld().getName();
 | 
			
		||||
					int x = b.getX();
 | 
			
		||||
					int y = b.getY();
 | 
			
		||||
					int z = b.getZ();
 | 
			
		||||
					int d = b.getTypeId();
 | 
			
		||||
					byte m = b.getData();
 | 
			
		||||
					String coords = w + "," + x + "," + y + "," + z + "," + d + "," + m;
 | 
			
		||||
					List<String> blocks = plugin.data.getStringList("Blocks_Destroyed");
 | 
			
		||||
					if(!plugin.data.getStringList("Blocks_Placed").contains(w + "," + x + "," + y + "," + z)){
 | 
			
		||||
						blocks.add(coords);
 | 
			
		||||
						plugin.data.set("Blocks_Destroyed", blocks);
 | 
			
		||||
						plugin.saveData();
 | 
			
		||||
					}
 | 
			
		||||
				}
 | 
			
		||||
			}
 | 
			
		||||
		}
 | 
			
		||||
	}
 | 
			
		||||
	@EventHandler
 | 
			
		||||
	public void Explosion(EntityExplodeEvent event){
 | 
			
		||||
		List<Block> blocksd = event.blockList();
 | 
			
		||||
		Entity e = event.getEntity();
 | 
			
		||||
		if(plugin.canjoin){
 | 
			
		||||
			if(plugin.config.getStringList("worlds").isEmpty() || (!plugin.config.getStringList("worlds").isEmpty() && plugin.config.getStringList("worlds").contains(event.getEntity().getWorld().getName()))){
 | 
			
		||||
				if(e.getType()== EntityType.PRIMED_TNT){
 | 
			
		||||
					if(!plugin.data.getStringList("Blocks_Placed").contains(e.getLocation().getWorld() + "," + e.getLocation().getX() + "," + e.getLocation().getY() + "," + e.getLocation().getZ()) /*|| !plugin.data.getStringList("Blocks_Destroyed").contains(e.getLocation().getWorld() + "," + e.getLocation().getX() + "," + e.getLocation().getY() + "," + e.getLocation().getZ())*/){
 | 
			
		||||
						List<String> blocks = plugin.data.getStringList("Blocks_Destroyed");
 | 
			
		||||
						blocks.add(e.getLocation().getWorld().getName() + "," + e.getLocation().getX() + "," + e.getLocation().getY() + "," + e.getLocation().getZ() + ",46" + ",0");
 | 
			
		||||
						plugin.data.set("Blocks_Destroyed", blocks);
 | 
			
		||||
						plugin.saveData();
 | 
			
		||||
						plugin.getServer().broadcastMessage("TNT blew up!");
 | 
			
		||||
					}
 | 
			
		||||
				}
 | 
			
		||||
				for(Block b:blocksd){
 | 
			
		||||
					String w = event.getEntity().getWorld().getName();
 | 
			
		||||
					int x = b.getX();
 | 
			
		||||
					int y = b.getY();
 | 
			
		||||
					int z = b.getZ();
 | 
			
		||||
					int d = b.getTypeId();
 | 
			
		||||
					byte m = b.getData();
 | 
			
		||||
					String coords = w + "," + x + "," + y + "," + z + "," + d + "," + m;
 | 
			
		||||
					List<String> blocks = plugin.data.getStringList("Blocks_Destroyed");
 | 
			
		||||
					if(!plugin.data.getStringList("Blocks_Placed").contains(w + "," + x + "," + y + "," + z) || !plugin.data.getStringList("Blocks_Destroyed").contains(w + "," + x + "," + y + "," + z)){
 | 
			
		||||
						blocks.add(coords);
 | 
			
		||||
						plugin.data.set("Blocks_Destroyed", blocks);
 | 
			
		||||
						plugin.saveData();
 | 
			
		||||
					}
 | 
			
		||||
				}
 | 
			
		||||
			}
 | 
			
		||||
		}	
 | 
			
		||||
	}
 | 
			
		||||
	@EventHandler
 | 
			
		||||
	public void burningBlocks(BlockBurnEvent event){
 | 
			
		||||
		Block b = event.getBlock();
 | 
			
		||||
		if(plugin.canjoin== true){
 | 
			
		||||
			if(plugin.config.getStringList("worlds").isEmpty() || (!plugin.config.getStringList("worlds").isEmpty() && plugin.config.getStringList("worlds").contains(b.getWorld().getName()))){
 | 
			
		||||
				String w = b.getWorld().getName();
 | 
			
		||||
				int x = b.getX();
 | 
			
		||||
				int y = b.getY();
 | 
			
		||||
				int z = b.getZ();
 | 
			
		||||
				int d = b.getTypeId();
 | 
			
		||||
				byte m = b.getData();
 | 
			
		||||
				String coords = w + "," + x + "," + y + "," + z + "," + d + "," + m;
 | 
			
		||||
				List<String> blocks = plugin.data.getStringList("Blocks_Destroyed");
 | 
			
		||||
				if(!plugin.data.getStringList("Blocks_Placed").contains(w + "," + x + "," + y + "," + z)){
 | 
			
		||||
					blocks.add(coords);
 | 
			
		||||
					plugin.data.set("Blocks_Destroyed", blocks);
 | 
			
		||||
					plugin.saveData();
 | 
			
		||||
				}
 | 
			
		||||
			}
 | 
			
		||||
		}
 | 
			
		||||
	}
 | 
			
		||||
	@EventHandler
 | 
			
		||||
	public void blockPlace(BlockPlaceEvent event){
 | 
			
		||||
		Block b = event.getBlock();
 | 
			
		||||
		Player p = event.getPlayer();
 | 
			
		||||
		if(plugin.Playing.contains(p.getName())){
 | 
			
		||||
			if(plugin.canjoin){
 | 
			
		||||
				if(plugin.config.getStringList("worlds").isEmpty() || (!plugin.config.getStringList("worlds").isEmpty() && plugin.config.getStringList("worlds").contains(b.getWorld().getName()))){
 | 
			
		||||
					//TODO
 | 
			
		||||
					if((b.getType()== Material.SAND || b.getType()== Material.GRAVEL) && (b.getRelative(BlockFace.DOWN).getType()== Material.AIR || b.getRelative(BlockFace.DOWN).getType()== Material.WATER || b.getRelative(BlockFace.DOWN).getType()== Material.LAVA)){
 | 
			
		||||
						int n = b.getY() -1;
 | 
			
		||||
						while(b.getWorld().getBlockAt(b.getX(), n, b.getZ()).getType()== Material.AIR || b.getWorld().getBlockAt(b.getX(), n, b.getZ()).getType()== Material.WATER || b.getWorld().getBlockAt(b.getX(), n, b.getZ()).getType()== Material.LAVA){
 | 
			
		||||
							n = n -1;
 | 
			
		||||
							event.getPlayer().sendMessage(b.getWorld().getBlockAt(b.getX(), n, b.getZ()).getType().toString().toLowerCase());
 | 
			
		||||
							if(b.getWorld().getBlockAt(b.getX(), n, b.getZ()).getType()!= Material.AIR || b.getWorld().getBlockAt(b.getX(), n, b.getZ()).getType()!= Material.WATER || b.getWorld().getBlockAt(b.getX(), n, b.getZ()).getType()!= Material.LAVA){
 | 
			
		||||
								int l = n +1;
 | 
			
		||||
								Block br = b.getWorld().getBlockAt(b.getX(), l, b.getZ());
 | 
			
		||||
								String w = br.getWorld().getName();
 | 
			
		||||
								int x = br.getX();
 | 
			
		||||
								int y = br.getY();
 | 
			
		||||
								int z = br.getZ();
 | 
			
		||||
								String coords = w + "," + x + "," + y + "," + z;
 | 
			
		||||
								p.sendMessage(ChatColor.GREEN + "Sand/Gravel will land at " + coords);
 | 
			
		||||
								List<String> blocks = plugin.data.getStringList("Blocks_Placed");
 | 
			
		||||
								blocks.add(coords);
 | 
			
		||||
								plugin.data.set("Blocks_Placed", blocks);
 | 
			
		||||
								plugin.saveData();
 | 
			
		||||
							}
 | 
			
		||||
		if(!event.isCancelled()){
 | 
			
		||||
			if(plugin.Playing.contains(pname)){
 | 
			
		||||
				if(plugin.config.getString("Protected_Arena").equalsIgnoreCase("True")){
 | 
			
		||||
					if(!plugin.management.getStringList("blocks.blacklist").isEmpty() && plugin.management.getStringList("blocks.blacklist").contains(b.getData())){
 | 
			
		||||
						event.setCancelled(true);
 | 
			
		||||
						p.sendMessage(ChatColor.RED + "That is an illegal block!");
 | 
			
		||||
					}else if(!plugin.management.getStringList("blocks.whitelist").isEmpty() && !plugin.management.getStringList("blocks.whitelist").contains(b.getData())){
 | 
			
		||||
						if(!plugin.management.getStringList("blocks.blacklist").isEmpty() && !plugin.management.getStringList("blocks.blacklist").contains(b.getData())){
 | 
			
		||||
							event.setCancelled(true);
 | 
			
		||||
							p.sendMessage(ChatColor.RED + "That is an illegal block!");
 | 
			
		||||
						}
 | 
			
		||||
					}else if(!plugin.management.getStringList("blocks.blacklist").isEmpty() && !plugin.management.getStringList("blocks.blacklist").contains(b.getData())){
 | 
			
		||||
						if(!plugin.management.getStringList("blocks.whitelist").isEmpty() && !plugin.management.getStringList("blocks.whitelist").contains(b.getData())){
 | 
			
		||||
							event.setCancelled(true);
 | 
			
		||||
							p.sendMessage(ChatColor.RED + "That is an illegal block!");
 | 
			
		||||
						}
 | 
			
		||||
					}else{
 | 
			
		||||
						if(b.getType()!= Material.SAND || b.getType()!= Material.GRAVEL){
 | 
			
		||||
						event.setCancelled(true);
 | 
			
		||||
						p.sendMessage(ChatColor.RED + "That is an illegal block!");
 | 
			
		||||
					}
 | 
			
		||||
 | 
			
		||||
				}
 | 
			
		||||
				if(plugin.canjoin){
 | 
			
		||||
					if(plugin.config.getStringList("worlds").isEmpty() || (!plugin.config.getStringList("worlds").isEmpty() && plugin.config.getStringList("worlds").contains(p.getWorld().getName()))){
 | 
			
		||||
						if(!plugin.management.getStringList("blocks.blacklist").isEmpty() && plugin.management.getStringList("blocks.blacklist").contains(b.getData())){
 | 
			
		||||
							event.setCancelled(true);
 | 
			
		||||
							p.sendMessage(ChatColor.RED + "That is an illegal block!");
 | 
			
		||||
						}else if(!plugin.management.getStringList("blocks.whitelist").isEmpty() && !plugin.management.getStringList("blocks.whitelist").contains(b.getData())){
 | 
			
		||||
							if(!plugin.management.getStringList("blocks.blacklist").isEmpty() && !plugin.management.getStringList("blocks.blacklist").contains(b.getData())){
 | 
			
		||||
								event.setCancelled(true);
 | 
			
		||||
								p.sendMessage(ChatColor.RED + "That is an illegal block!");
 | 
			
		||||
							}
 | 
			
		||||
						}else if(!plugin.management.getStringList("blocks.blacklist").isEmpty() && !plugin.management.getStringList("blocks.blacklist").contains(b.getData())){
 | 
			
		||||
							if(!plugin.management.getStringList("blocks.whitelist").isEmpty() && !plugin.management.getStringList("blocks.whitelist").contains(b.getData())){
 | 
			
		||||
								event.setCancelled(true);
 | 
			
		||||
								p.sendMessage(ChatColor.RED + "That is an illegal block!");
 | 
			
		||||
							}
 | 
			
		||||
						}else{
 | 
			
		||||
							String w = b.getWorld().getName();
 | 
			
		||||
							int x = b.getX();
 | 
			
		||||
							int y = b.getY();
 | 
			
		||||
							int z = b.getZ();
 | 
			
		||||
							String coords = w + "," + x + "," + y + "," + z;
 | 
			
		||||
							List<String> blocks = plugin.data.getStringList("Blocks_Placed");
 | 
			
		||||
							int d = b.getTypeId();
 | 
			
		||||
							byte m = b.getData();
 | 
			
		||||
							String coords = w + "," + x + "," + y + "," + z + "," + d + "," + m;
 | 
			
		||||
							List<String> blocks = plugin.data.getStringList("Blocks_Destroyed");
 | 
			
		||||
							if(!plugin.data.getStringList("Blocks_Placed").contains(w + "," + x + "," + y + "," + z)){
 | 
			
		||||
								blocks.add(coords);
 | 
			
		||||
								plugin.data.set("Blocks_Destroyed", blocks);
 | 
			
		||||
								plugin.saveData();
 | 
			
		||||
							}
 | 
			
		||||
						}
 | 
			
		||||
					}
 | 
			
		||||
				}
 | 
			
		||||
			}
 | 
			
		||||
		}
 | 
			
		||||
	}
 | 
			
		||||
	@EventHandler(priority = EventPriority.MONITOR)
 | 
			
		||||
	public void Explosion(EntityExplodeEvent event){
 | 
			
		||||
		List<Block> blocksd = event.blockList();
 | 
			
		||||
		Entity e = event.getEntity();
 | 
			
		||||
		if(!event.isCancelled()){
 | 
			
		||||
			if(plugin.canjoin){
 | 
			
		||||
				if(plugin.config.getStringList("worlds").isEmpty() || (!plugin.config.getStringList("worlds").isEmpty() && plugin.config.getStringList("worlds").contains(event.getEntity().getWorld().getName()))){
 | 
			
		||||
					if(e.getType()== EntityType.PRIMED_TNT){
 | 
			
		||||
						if(!plugin.data.getStringList("Blocks_Placed").contains(e.getLocation().getWorld() + "," + e.getLocation().getX() + "," + e.getLocation().getY() + "," + e.getLocation().getZ()) /*|| !plugin.data.getStringList("Blocks_Destroyed").contains(e.getLocation().getWorld() + "," + e.getLocation().getX() + "," + e.getLocation().getY() + "," + e.getLocation().getZ())*/){
 | 
			
		||||
							List<String> blocks = plugin.data.getStringList("Blocks_Destroyed");
 | 
			
		||||
							blocks.add(e.getLocation().getWorld().getName() + "," + e.getLocation().getX() + "," + e.getLocation().getY() + "," + e.getLocation().getZ() + ",46" + ",0");
 | 
			
		||||
							plugin.data.set("Blocks_Destroyed", blocks);
 | 
			
		||||
							plugin.saveData();
 | 
			
		||||
							plugin.getServer().broadcastMessage("TNT blew up!");
 | 
			
		||||
						}
 | 
			
		||||
					}
 | 
			
		||||
					for(Block b:blocksd){
 | 
			
		||||
						String w = event.getEntity().getWorld().getName();
 | 
			
		||||
						int x = b.getX();
 | 
			
		||||
						int y = b.getY();
 | 
			
		||||
						int z = b.getZ();
 | 
			
		||||
						int d = b.getTypeId();
 | 
			
		||||
						byte m = b.getData();
 | 
			
		||||
						String coords = w + "," + x + "," + y + "," + z + "," + d + "," + m;
 | 
			
		||||
						List<String> blocks = plugin.data.getStringList("Blocks_Destroyed");
 | 
			
		||||
						if(!plugin.data.getStringList("Blocks_Placed").contains(w + "," + x + "," + y + "," + z) || !plugin.data.getStringList("Blocks_Destroyed").contains(w + "," + x + "," + y + "," + z)){
 | 
			
		||||
							blocks.add(coords);
 | 
			
		||||
							plugin.data.set("Blocks_Placed", blocks);
 | 
			
		||||
							plugin.data.set("Blocks_Destroyed", blocks);
 | 
			
		||||
							plugin.saveData();
 | 
			
		||||
						}
 | 
			
		||||
					}
 | 
			
		||||
@@ -152,31 +122,12 @@ public class BlockStorage implements Listener {
 | 
			
		||||
			}
 | 
			
		||||
		}
 | 
			
		||||
	}
 | 
			
		||||
	@EventHandler
 | 
			
		||||
	public void bucketEmpty(PlayerBucketEmptyEvent event){
 | 
			
		||||
		if(plugin.canjoin){
 | 
			
		||||
			if(plugin.Playing.contains(event.getPlayer().getName())){
 | 
			
		||||
				if(plugin.config.getStringList("worlds").isEmpty() || (!plugin.config.getStringList("worlds").isEmpty() && plugin.config.getStringList("worlds").contains(event.getPlayer().getWorld().getName()))){
 | 
			
		||||
					Block b = event.getBlockClicked().getRelative(event.getBlockFace());
 | 
			
		||||
					String w = b.getWorld().getName();
 | 
			
		||||
					int x = b.getX();
 | 
			
		||||
					int y = b.getY();
 | 
			
		||||
					int z = b.getZ();
 | 
			
		||||
					String coords = w + "," + x + "," + y + "," + z;
 | 
			
		||||
					List<String> blocks = plugin.data.getStringList("Blocks_Placed");
 | 
			
		||||
					blocks.add(coords);
 | 
			
		||||
					plugin.data.set("Blocks_Placed", blocks);
 | 
			
		||||
					plugin.saveData();
 | 
			
		||||
				}
 | 
			
		||||
			}
 | 
			
		||||
		}
 | 
			
		||||
	}
 | 
			
		||||
	@EventHandler
 | 
			
		||||
	public void bucketFill(PlayerBucketFillEvent event){
 | 
			
		||||
		if(plugin.canjoin){
 | 
			
		||||
			if(plugin.Playing.contains(event.getPlayer().getName())){
 | 
			
		||||
				if(plugin.config.getStringList("worlds").isEmpty() || (!plugin.config.getStringList("worlds").isEmpty() && plugin.config.getStringList("worlds").contains(event.getPlayer().getWorld().getName()))){
 | 
			
		||||
					Block b = event.getBlockClicked().getRelative(event.getBlockFace());
 | 
			
		||||
	@EventHandler(priority = EventPriority.MONITOR)
 | 
			
		||||
	public void burningBlocks(BlockBurnEvent event){
 | 
			
		||||
		Block b = event.getBlock();
 | 
			
		||||
		if(!event.isCancelled()){
 | 
			
		||||
			if(plugin.canjoin){
 | 
			
		||||
				if(plugin.config.getStringList("worlds").isEmpty() || (!plugin.config.getStringList("worlds").isEmpty() && plugin.config.getStringList("worlds").contains(b.getWorld().getName()))){
 | 
			
		||||
					String w = b.getWorld().getName();
 | 
			
		||||
					int x = b.getX();
 | 
			
		||||
					int y = b.getY();
 | 
			
		||||
@@ -194,23 +145,117 @@ public class BlockStorage implements Listener {
 | 
			
		||||
			}
 | 
			
		||||
		}
 | 
			
		||||
	}
 | 
			
		||||
	@EventHandler
 | 
			
		||||
	@EventHandler(priority = EventPriority.MONITOR)
 | 
			
		||||
	public void blockPlace(BlockPlaceEvent event){
 | 
			
		||||
		Block b = event.getBlock();
 | 
			
		||||
		Player p = event.getPlayer();
 | 
			
		||||
		if(!event.isCancelled()){
 | 
			
		||||
			if(plugin.Playing.contains(p.getName())){
 | 
			
		||||
				if(plugin.canjoin){
 | 
			
		||||
					if(plugin.config.getStringList("worlds").isEmpty() || (!plugin.config.getStringList("worlds").isEmpty() && plugin.config.getStringList("worlds").contains(b.getWorld().getName()))){
 | 
			
		||||
						if((b.getType()== Material.SAND || b.getType()== Material.GRAVEL) && (b.getRelative(BlockFace.DOWN).getType()== Material.AIR || b.getRelative(BlockFace.DOWN).getType()== Material.WATER || b.getRelative(BlockFace.DOWN).getType()== Material.LAVA)){
 | 
			
		||||
							int n = b.getY() -1;
 | 
			
		||||
							while(b.getWorld().getBlockAt(b.getX(), n, b.getZ()).getType()== Material.AIR || b.getWorld().getBlockAt(b.getX(), n, b.getZ()).getType()== Material.WATER || b.getWorld().getBlockAt(b.getX(), n, b.getZ()).getType()== Material.LAVA){
 | 
			
		||||
								n = n -1;
 | 
			
		||||
								event.getPlayer().sendMessage(b.getWorld().getBlockAt(b.getX(), n, b.getZ()).getType().toString().toLowerCase());
 | 
			
		||||
								if(b.getWorld().getBlockAt(b.getX(), n, b.getZ()).getType()!= Material.AIR || b.getWorld().getBlockAt(b.getX(), n, b.getZ()).getType()!= Material.WATER || b.getWorld().getBlockAt(b.getX(), n, b.getZ()).getType()!= Material.LAVA){
 | 
			
		||||
									int l = n +1;
 | 
			
		||||
									Block br = b.getWorld().getBlockAt(b.getX(), l, b.getZ());
 | 
			
		||||
									String w = br.getWorld().getName();
 | 
			
		||||
									int x = br.getX();
 | 
			
		||||
									int y = br.getY();
 | 
			
		||||
									int z = br.getZ();
 | 
			
		||||
									String coords = w + "," + x + "," + y + "," + z;
 | 
			
		||||
									p.sendMessage(ChatColor.GREEN + "Sand/Gravel will land at " + coords);
 | 
			
		||||
									List<String> blocks = plugin.data.getStringList("Blocks_Placed");
 | 
			
		||||
									blocks.add(coords);
 | 
			
		||||
									plugin.data.set("Blocks_Placed", blocks);
 | 
			
		||||
									plugin.saveData();
 | 
			
		||||
								}
 | 
			
		||||
							}
 | 
			
		||||
						}else{
 | 
			
		||||
							if(b.getType()!= Material.SAND || b.getType()!= Material.GRAVEL){
 | 
			
		||||
								String w = b.getWorld().getName();
 | 
			
		||||
								int x = b.getX();
 | 
			
		||||
								int y = b.getY();
 | 
			
		||||
								int z = b.getZ();
 | 
			
		||||
								String coords = w + "," + x + "," + y + "," + z;
 | 
			
		||||
								List<String> blocks = plugin.data.getStringList("Blocks_Placed");
 | 
			
		||||
								blocks.add(coords);
 | 
			
		||||
								plugin.data.set("Blocks_Placed", blocks);
 | 
			
		||||
								plugin.saveData();
 | 
			
		||||
							}
 | 
			
		||||
						}
 | 
			
		||||
					}
 | 
			
		||||
				}
 | 
			
		||||
			}
 | 
			
		||||
		}
 | 
			
		||||
	}
 | 
			
		||||
	@EventHandler(priority = EventPriority.MONITOR)
 | 
			
		||||
	public void bucketEmpty(PlayerBucketEmptyEvent event){
 | 
			
		||||
		if(!event.isCancelled()){
 | 
			
		||||
			if(plugin.canjoin){
 | 
			
		||||
				if(plugin.Playing.contains(event.getPlayer().getName())){
 | 
			
		||||
					if(plugin.config.getStringList("worlds").isEmpty() || (!plugin.config.getStringList("worlds").isEmpty() && plugin.config.getStringList("worlds").contains(event.getPlayer().getWorld().getName()))){
 | 
			
		||||
						Block b = event.getBlockClicked().getRelative(event.getBlockFace());
 | 
			
		||||
						String w = b.getWorld().getName();
 | 
			
		||||
						int x = b.getX();
 | 
			
		||||
						int y = b.getY();
 | 
			
		||||
						int z = b.getZ();
 | 
			
		||||
						String coords = w + "," + x + "," + y + "," + z;
 | 
			
		||||
						List<String> blocks = plugin.data.getStringList("Blocks_Placed");
 | 
			
		||||
						blocks.add(coords);
 | 
			
		||||
						plugin.data.set("Blocks_Placed", blocks);
 | 
			
		||||
						plugin.saveData();
 | 
			
		||||
					}
 | 
			
		||||
				}
 | 
			
		||||
			}
 | 
			
		||||
		}
 | 
			
		||||
	}
 | 
			
		||||
	@EventHandler(priority = EventPriority.MONITOR)
 | 
			
		||||
	public void bucketFill(PlayerBucketFillEvent event){
 | 
			
		||||
		if(!event.isCancelled()){
 | 
			
		||||
			if(plugin.canjoin){
 | 
			
		||||
				if(plugin.Playing.contains(event.getPlayer().getName())){
 | 
			
		||||
					if(plugin.config.getStringList("worlds").isEmpty() || (!plugin.config.getStringList("worlds").isEmpty() && plugin.config.getStringList("worlds").contains(event.getPlayer().getWorld().getName()))){
 | 
			
		||||
						Block b = event.getBlockClicked().getRelative(event.getBlockFace());
 | 
			
		||||
						String w = b.getWorld().getName();
 | 
			
		||||
						int x = b.getX();
 | 
			
		||||
						int y = b.getY();
 | 
			
		||||
						int z = b.getZ();
 | 
			
		||||
						int d = b.getTypeId();
 | 
			
		||||
						byte m = b.getData();
 | 
			
		||||
						String coords = w + "," + x + "," + y + "," + z + "," + d + "," + m;
 | 
			
		||||
						List<String> blocks = plugin.data.getStringList("Blocks_Destroyed");
 | 
			
		||||
						if(!plugin.data.getStringList("Blocks_Placed").contains(w + "," + x + "," + y + "," + z)){
 | 
			
		||||
							blocks.add(coords);
 | 
			
		||||
							plugin.data.set("Blocks_Destroyed", blocks);
 | 
			
		||||
							plugin.saveData();
 | 
			
		||||
						}
 | 
			
		||||
					}
 | 
			
		||||
				}
 | 
			
		||||
			}
 | 
			
		||||
		}
 | 
			
		||||
	}
 | 
			
		||||
	@EventHandler(priority = EventPriority.MONITOR)
 | 
			
		||||
	public void blockMelt(BlockFadeEvent event){
 | 
			
		||||
		if(plugin.canjoin){
 | 
			
		||||
			if(plugin.config.getStringList("worlds").isEmpty() || (!plugin.config.getStringList("worlds").isEmpty() && plugin.config.getStringList("worlds").contains(event.getBlock().getWorld().getName()))){
 | 
			
		||||
				Block b = event.getBlock();
 | 
			
		||||
				String w = b.getWorld().getName();
 | 
			
		||||
				int x = b.getX();
 | 
			
		||||
				int y = b.getY();
 | 
			
		||||
				int z = b.getZ();
 | 
			
		||||
				int d = b.getTypeId();
 | 
			
		||||
				byte m = b.getData();
 | 
			
		||||
				String coords = w + "," + x + "," + y + "," + z + "," + d + "," + m;
 | 
			
		||||
				List<String> blocks = plugin.data.getStringList("Blocks_Destroyed");
 | 
			
		||||
				if(!plugin.data.getStringList("Blocks_Placed").contains(w + "," + x + "," + y + "," + z)){
 | 
			
		||||
					blocks.add(coords);
 | 
			
		||||
					plugin.data.set("Blocks_Destroyed", blocks);
 | 
			
		||||
					plugin.saveData();
 | 
			
		||||
		if(!event.isCancelled()){
 | 
			
		||||
			if(plugin.canjoin){
 | 
			
		||||
				if(plugin.config.getStringList("worlds").isEmpty() || (!plugin.config.getStringList("worlds").isEmpty() && plugin.config.getStringList("worlds").contains(event.getBlock().getWorld().getName()))){
 | 
			
		||||
					Block b = event.getBlock();
 | 
			
		||||
					String w = b.getWorld().getName();
 | 
			
		||||
					int x = b.getX();
 | 
			
		||||
					int y = b.getY();
 | 
			
		||||
					int z = b.getZ();
 | 
			
		||||
					int d = b.getTypeId();
 | 
			
		||||
					byte m = b.getData();
 | 
			
		||||
					String coords = w + "," + x + "," + y + "," + z + "," + d + "," + m;
 | 
			
		||||
					List<String> blocks = plugin.data.getStringList("Blocks_Destroyed");
 | 
			
		||||
					if(!plugin.data.getStringList("Blocks_Placed").contains(w + "," + x + "," + y + "," + z)){
 | 
			
		||||
						blocks.add(coords);
 | 
			
		||||
						plugin.data.set("Blocks_Destroyed", blocks);
 | 
			
		||||
						plugin.saveData();
 | 
			
		||||
					}
 | 
			
		||||
				}
 | 
			
		||||
			}
 | 
			
		||||
		}
 | 
			
		||||
 
 | 
			
		||||
@@ -12,36 +12,42 @@ public class CommandBlock implements Listener {
 | 
			
		||||
	public CommandBlock(Main m) {
 | 
			
		||||
		this.plugin = m;
 | 
			
		||||
	}
 | 
			
		||||
	@EventHandler(priority = EventPriority.HIGHEST)
 | 
			
		||||
	@EventHandler(priority = EventPriority.MONITOR)
 | 
			
		||||
	public void CatchCommand(PlayerCommandPreprocessEvent event){
 | 
			
		||||
		String cmd = event.getMessage();
 | 
			
		||||
		Player p = event.getPlayer();
 | 
			
		||||
		String pname = p.getName();
 | 
			
		||||
		if(plugin.Playing.contains(pname)){
 | 
			
		||||
		if(plugin.Playing.contains(pname) || plugin.Watching.contains(pname)){
 | 
			
		||||
			if(!p.hasPermission("HungerArena.UseCommands")){
 | 
			
		||||
				for(String whitelist: plugin.management.getStringList("commands.whitelist")){
 | 
			
		||||
					if(!cmd.toLowerCase().contains(whitelist.toLowerCase()) && !cmd.toLowerCase().contains("/ha")){
 | 
			
		||||
						event.setCancelled(true);
 | 
			
		||||
						p.sendMessage(ChatColor.RED + "You are only allowed to perform the following commands:");
 | 
			
		||||
						p.sendMessage(ChatColor.AQUA + whitelist);
 | 
			
		||||
						p.sendMessage(ChatColor.AQUA + "/ha");
 | 
			
		||||
						p.sendMessage(ChatColor.AQUA + "/ha close");
 | 
			
		||||
						p.sendMessage(ChatColor.AQUA + "/ha help");
 | 
			
		||||
						p.sendMessage(ChatColor.AQUA + "/ha join");
 | 
			
		||||
						p.sendMessage(ChatColor.AQUA + "/ha kick [Player]");
 | 
			
		||||
						p.sendMessage(ChatColor.AQUA + "/ha leave");
 | 
			
		||||
						p.sendMessage(ChatColor.AQUA + "/ha list");
 | 
			
		||||
						p.sendMessage(ChatColor.AQUA + "/ha open");
 | 
			
		||||
						p.sendMessage(ChatColor.AQUA + "/ha ready");
 | 
			
		||||
						p.sendMessage(ChatColor.AQUA + "/ha refill");
 | 
			
		||||
						p.sendMessage(ChatColor.AQUA + "/ha reload");
 | 
			
		||||
						p.sendMessage(ChatColor.AQUA + "/ha restart");
 | 
			
		||||
						p.sendMessage(ChatColor.AQUA + "/ha rlist");
 | 
			
		||||
						p.sendMessage(ChatColor.AQUA + "/ha setspawn");
 | 
			
		||||
						p.sendMessage(ChatColor.AQUA + "/ha start");
 | 
			
		||||
						p.sendMessage(ChatColor.AQUA + "/ha watch");
 | 
			
		||||
						p.sendMessage(ChatColor.AQUA + "/ha warpall");
 | 
			
		||||
				if(!plugin.management.getStringList("commands.whitelist").isEmpty() && !cmd.toLowerCase().contains("/ha")){
 | 
			
		||||
					for(String whitelist: plugin.management.getStringList("commands.whitelist")){
 | 
			
		||||
						if(!cmd.toLowerCase().contains(whitelist.toLowerCase()) && !cmd.toLowerCase().contains("/ha")){
 | 
			
		||||
							event.setCancelled(true);
 | 
			
		||||
							p.sendMessage(ChatColor.RED + "You are only allowed to perform the following commands:");
 | 
			
		||||
							p.sendMessage(ChatColor.AQUA + whitelist);
 | 
			
		||||
							p.sendMessage(ChatColor.AQUA + "/ha");
 | 
			
		||||
							p.sendMessage(ChatColor.AQUA + "/ha close");
 | 
			
		||||
							p.sendMessage(ChatColor.AQUA + "/ha help");
 | 
			
		||||
							p.sendMessage(ChatColor.AQUA + "/ha join");
 | 
			
		||||
							p.sendMessage(ChatColor.AQUA + "/ha kick [Player]");
 | 
			
		||||
							p.sendMessage(ChatColor.AQUA + "/ha leave");
 | 
			
		||||
							p.sendMessage(ChatColor.AQUA + "/ha list");
 | 
			
		||||
							p.sendMessage(ChatColor.AQUA + "/ha open");
 | 
			
		||||
							p.sendMessage(ChatColor.AQUA + "/ha ready");
 | 
			
		||||
							p.sendMessage(ChatColor.AQUA + "/ha refill");
 | 
			
		||||
							p.sendMessage(ChatColor.AQUA + "/ha reload");
 | 
			
		||||
							p.sendMessage(ChatColor.AQUA + "/ha restart");
 | 
			
		||||
							p.sendMessage(ChatColor.AQUA + "/ha rlist");
 | 
			
		||||
							p.sendMessage(ChatColor.AQUA + "/ha setspawn");
 | 
			
		||||
							p.sendMessage(ChatColor.AQUA + "/ha start");
 | 
			
		||||
							p.sendMessage(ChatColor.AQUA + "/ha tp");
 | 
			
		||||
							p.sendMessage(ChatColor.AQUA + "/ha watch");
 | 
			
		||||
							p.sendMessage(ChatColor.AQUA + "/ha warpall");
 | 
			
		||||
						}
 | 
			
		||||
					}
 | 
			
		||||
				}else if(!cmd.toLowerCase().contains("/ha")){
 | 
			
		||||
					event.setCancelled(true);
 | 
			
		||||
					p.sendMessage(ChatColor.RED + "You are only allowed to perform /ha commands!");
 | 
			
		||||
				}
 | 
			
		||||
			}else if(!cmd.toLowerCase().contains("/ha")){
 | 
			
		||||
				if(cmd.toLowerCase().contains("/spawn")){
 | 
			
		||||
@@ -51,6 +57,21 @@ public class CommandBlock implements Listener {
 | 
			
		||||
			}
 | 
			
		||||
		}else if(cmd.toLowerCase().equals("/back") && plugin.Dead.contains(pname) && plugin.canjoin== true){
 | 
			
		||||
			plugin.Tele.add(p);
 | 
			
		||||
		}else if(!plugin.Playing.contains(pname) || !plugin.Watching.contains(pname)){
 | 
			
		||||
			if(cmd.contains("/tp") || cmd.contains("/tpa") || cmd.contains("/tpo")){
 | 
			
		||||
				String[] args = cmd.split(" ");
 | 
			
		||||
				if(args.length == 3){
 | 
			
		||||
					if(plugin.Playing.contains(plugin.getServer().getPlayer(args[1]).getName()) || plugin.Playing.contains(plugin.getServer().getPlayer(args[2]).getName())){
 | 
			
		||||
						event.setCancelled(true);
 | 
			
		||||
						p.sendMessage(ChatColor.RED + "You can't teleport to tributes unless you've run /ha watch!");
 | 
			
		||||
					}
 | 
			
		||||
				}else if(args.length == 2){
 | 
			
		||||
					if(plugin.Playing.contains(plugin.getServer().getPlayer(args[1]).getName())){
 | 
			
		||||
						event.setCancelled(true);
 | 
			
		||||
						p.sendMessage(ChatColor.RED + "You can't teleport to tributes unless you've run /ha watch!");
 | 
			
		||||
					}	
 | 
			
		||||
				}
 | 
			
		||||
			}
 | 
			
		||||
		}
 | 
			
		||||
	}
 | 
			
		||||
}
 | 
			
		||||
 
 | 
			
		||||
@@ -1,14 +1,17 @@
 | 
			
		||||
package me.Travja.HungerArena;
 | 
			
		||||
 | 
			
		||||
import org.bukkit.*;
 | 
			
		||||
import org.bukkit.Bukkit;
 | 
			
		||||
import org.bukkit.ChatColor;
 | 
			
		||||
import org.bukkit.Location;
 | 
			
		||||
import org.bukkit.Material;
 | 
			
		||||
import org.bukkit.Server;
 | 
			
		||||
import org.bukkit.World;
 | 
			
		||||
import org.bukkit.configuration.file.FileConfiguration;
 | 
			
		||||
import org.bukkit.entity.Player;
 | 
			
		||||
import org.bukkit.event.EventHandler;
 | 
			
		||||
import org.bukkit.event.Listener;
 | 
			
		||||
import org.bukkit.event.entity.PlayerDeathEvent;
 | 
			
		||||
import org.bukkit.event.player.PlayerRespawnEvent;
 | 
			
		||||
import org.bukkit.potion.PotionEffect;
 | 
			
		||||
import org.bukkit.potion.PotionEffectType;
 | 
			
		||||
 | 
			
		||||
public class DeathListener implements Listener{
 | 
			
		||||
	public Main plugin;
 | 
			
		||||
@@ -42,12 +45,6 @@ public class DeathListener implements Listener{
 | 
			
		||||
		String pname = p.getName();
 | 
			
		||||
		int players = plugin.Playing.size()-1;
 | 
			
		||||
		String leftmsg = ChatColor.BLUE + "There are now " + players + " tributes left!";
 | 
			
		||||
		String[] Spawncoords = plugin.spawns.getString("Spawn_coords").split(",");
 | 
			
		||||
		World spawnw = plugin.getServer().getWorld(Spawncoords[3]);
 | 
			
		||||
		double spawnx = Double.parseDouble(Spawncoords[0]);
 | 
			
		||||
		double spawny = Double.parseDouble(Spawncoords[1]);
 | 
			
		||||
		double spawnz = Double.parseDouble(Spawncoords[2]);
 | 
			
		||||
		Location Spawn = new Location(spawnw, spawnx, spawny, spawnz);
 | 
			
		||||
		if(plugin.Frozen.contains(pname) && plugin.Playing.contains(pname)){
 | 
			
		||||
			if(plugin.config.getString("Cannon_Death").equalsIgnoreCase("True")){
 | 
			
		||||
				double y = p.getLocation().getY();
 | 
			
		||||
@@ -63,44 +60,7 @@ public class DeathListener implements Listener{
 | 
			
		||||
			plugin.Playing.remove(pname);
 | 
			
		||||
			plugin.Dead.add(pname);
 | 
			
		||||
			s.broadcastMessage(leftmsg);
 | 
			
		||||
			if(plugin.Playing.size()== 1 && plugin.canjoin== false){
 | 
			
		||||
				//Announce winner
 | 
			
		||||
				for(i = 0; i < plugin.Playing.size(); i++){
 | 
			
		||||
					String winnername = plugin.Playing.get(i++);
 | 
			
		||||
					Player winner = plugin.getServer().getPlayerExact(winnername);
 | 
			
		||||
					String winnername2 = winner.getName();
 | 
			
		||||
					plugin.getServer().broadcastMessage(ChatColor.GREEN + winnername2 + " is the victor of this Hunger Games!");
 | 
			
		||||
					winner.getInventory().clear();
 | 
			
		||||
					winner.getInventory().setBoots(null);
 | 
			
		||||
					winner.getInventory().setChestplate(null);
 | 
			
		||||
					winner.getInventory().setHelmet(null);
 | 
			
		||||
					winner.getInventory().setLeggings(null);
 | 
			
		||||
					for(PotionEffect pe: winner.getActivePotionEffects()){
 | 
			
		||||
						PotionEffectType potion = pe.getType();
 | 
			
		||||
						winner.removePotionEffect(potion);
 | 
			
		||||
					}
 | 
			
		||||
					winner.teleport(Spawn);
 | 
			
		||||
					winner.getInventory().addItem(plugin.Reward);
 | 
			
		||||
					plugin.Playing.clear();
 | 
			
		||||
				}
 | 
			
		||||
				//Show spectators
 | 
			
		||||
				for(String s1: plugin.Watching){
 | 
			
		||||
					Player spectator = plugin.getServer().getPlayerExact(s1);
 | 
			
		||||
					spectator.setAllowFlight(false);
 | 
			
		||||
					spectator.teleport(Spawn);
 | 
			
		||||
					for(Player online:plugin.getServer().getOnlinePlayers()){
 | 
			
		||||
						online.showPlayer(spectator);
 | 
			
		||||
					}
 | 
			
		||||
				}
 | 
			
		||||
				if(plugin.config.getString("Auto_Restart").equalsIgnoreCase("True")){
 | 
			
		||||
					Bukkit.getServer().getScheduler().scheduleSyncDelayedTask(plugin, new Runnable(){
 | 
			
		||||
						public void run(){
 | 
			
		||||
							Bukkit.getServer().dispatchCommand(Bukkit.getConsoleSender(), "ha restart");
 | 
			
		||||
 | 
			
		||||
						}
 | 
			
		||||
					}, 220L);
 | 
			
		||||
				}
 | 
			
		||||
			}
 | 
			
		||||
			plugin.winner();
 | 
			
		||||
		}else if(plugin.Playing.contains(pname)){
 | 
			
		||||
			if(plugin.config.getString("Cannon_Death").equalsIgnoreCase("True")){
 | 
			
		||||
				double y = p.getLocation().getY();
 | 
			
		||||
@@ -119,39 +79,7 @@ public class DeathListener implements Listener{
 | 
			
		||||
					event.setDeathMessage("");
 | 
			
		||||
					s.broadcastMessage(ChatColor.LIGHT_PURPLE + "**BOOM** Tribute " + pname + " was killed by tribute " + killername + " with their FIST!");
 | 
			
		||||
					s.broadcastMessage(leftmsg);
 | 
			
		||||
					if(plugin.Playing.size()== 1 && plugin.canjoin== true){
 | 
			
		||||
						//Announce winner
 | 
			
		||||
						for(i = 0; i < plugin.Playing.size(); i++){
 | 
			
		||||
							String winnername = plugin.Playing.get(i++);
 | 
			
		||||
							Player winner = plugin.getServer().getPlayerExact(winnername);
 | 
			
		||||
							String winnername2 = winner.getName();
 | 
			
		||||
							plugin.getServer().broadcastMessage(ChatColor.GREEN + winnername2 + " is the victor of this Hunger Games!");
 | 
			
		||||
							winner.getInventory().clear();
 | 
			
		||||
							winner.getInventory().setBoots(null);
 | 
			
		||||
							winner.getInventory().setChestplate(null);
 | 
			
		||||
							winner.getInventory().setHelmet(null);
 | 
			
		||||
							winner.getInventory().setLeggings(null);
 | 
			
		||||
							for(PotionEffect pe: winner.getActivePotionEffects()){
 | 
			
		||||
								PotionEffectType potion = pe.getType();
 | 
			
		||||
								winner.removePotionEffect(potion);
 | 
			
		||||
							}
 | 
			
		||||
							winner.teleport(Spawn);
 | 
			
		||||
							winner.getInventory().addItem(plugin.Reward);
 | 
			
		||||
						}
 | 
			
		||||
						plugin.Playing.clear();
 | 
			
		||||
						//Show spectators
 | 
			
		||||
						for(String s1: plugin.Watching){
 | 
			
		||||
							Player spectator = plugin.getServer().getPlayerExact(s1);
 | 
			
		||||
							spectator.setAllowFlight(false);
 | 
			
		||||
							spectator.teleport(Spawn);
 | 
			
		||||
							for(Player online:plugin.getServer().getOnlinePlayers()){
 | 
			
		||||
								online.showPlayer(spectator);
 | 
			
		||||
							}
 | 
			
		||||
						}
 | 
			
		||||
						if(plugin.config.getString("Auto_Restart").equalsIgnoreCase("True")){
 | 
			
		||||
							Bukkit.getServer().dispatchCommand(Bukkit.getConsoleSender(), "ha restart");
 | 
			
		||||
						}
 | 
			
		||||
					}
 | 
			
		||||
					plugin.winner();
 | 
			
		||||
				}else{
 | 
			
		||||
					Player killer = p.getKiller();
 | 
			
		||||
					String killername = killer.getName();
 | 
			
		||||
@@ -160,81 +88,13 @@ public class DeathListener implements Listener{
 | 
			
		||||
					event.setDeathMessage("");
 | 
			
		||||
					s.broadcastMessage(msg);
 | 
			
		||||
					s.broadcastMessage(leftmsg);
 | 
			
		||||
					if(plugin.Playing.size()== 1 && plugin.canjoin== true){
 | 
			
		||||
						//Announce winner
 | 
			
		||||
						for(i = 0; i < plugin.Playing.size(); i++){
 | 
			
		||||
							String winnername = plugin.Playing.get(i++);
 | 
			
		||||
							Player winner = plugin.getServer().getPlayerExact(winnername);
 | 
			
		||||
							String winnername2 = winner.getName();
 | 
			
		||||
							plugin.getServer().broadcastMessage(ChatColor.GREEN + winnername2 + " is the victor of this Hunger Games!");
 | 
			
		||||
							winner.getInventory().clear();
 | 
			
		||||
							winner.getInventory().setBoots(null);
 | 
			
		||||
							winner.getInventory().setChestplate(null);
 | 
			
		||||
							winner.getInventory().setHelmet(null);
 | 
			
		||||
							winner.getInventory().setLeggings(null);
 | 
			
		||||
							for(PotionEffect pe: winner.getActivePotionEffects()){
 | 
			
		||||
								PotionEffectType potion = pe.getType();
 | 
			
		||||
								winner.removePotionEffect(potion);
 | 
			
		||||
							}
 | 
			
		||||
							winner.teleport(Spawn);
 | 
			
		||||
							winner.getInventory().addItem(plugin.Reward);
 | 
			
		||||
						}
 | 
			
		||||
						plugin.Playing.clear();
 | 
			
		||||
						//Show spectators
 | 
			
		||||
						for(String s1: plugin.Watching){
 | 
			
		||||
							Player spectator = plugin.getServer().getPlayerExact(s1);
 | 
			
		||||
							spectator.setAllowFlight(false);
 | 
			
		||||
							spectator.teleport(Spawn);
 | 
			
		||||
							for(Player online:plugin.getServer().getOnlinePlayers()){
 | 
			
		||||
								online.showPlayer(spectator);
 | 
			
		||||
							}
 | 
			
		||||
						}
 | 
			
		||||
						if(plugin.config.getString("Auto_Restart").equalsIgnoreCase("True")){
 | 
			
		||||
							Bukkit.getServer().dispatchCommand(Bukkit.getConsoleSender(), "ha restart");
 | 
			
		||||
						}
 | 
			
		||||
					}
 | 
			
		||||
					plugin.winner();
 | 
			
		||||
				}
 | 
			
		||||
			}else{
 | 
			
		||||
				event.setDeathMessage("");
 | 
			
		||||
				s.broadcastMessage(ChatColor.LIGHT_PURPLE + pname + " died of natural causes!");
 | 
			
		||||
				s.broadcastMessage(leftmsg);
 | 
			
		||||
				if(plugin.Playing.size()== 1 && plugin.canjoin== true){
 | 
			
		||||
					//Announce winner
 | 
			
		||||
					for(i = 0; i < plugin.Playing.size(); i++){
 | 
			
		||||
						String winnername = plugin.Playing.get(i++);
 | 
			
		||||
						Player winner = plugin.getServer().getPlayerExact(winnername);
 | 
			
		||||
						String winnername2 = winner.getName();
 | 
			
		||||
						plugin.getServer().broadcastMessage(ChatColor.GREEN + winnername2 + " is the victor of this Hunger Games!");
 | 
			
		||||
						winner.getInventory().clear();
 | 
			
		||||
						winner.getInventory().setBoots(null);
 | 
			
		||||
						winner.getInventory().setChestplate(null);
 | 
			
		||||
						winner.getInventory().setHelmet(null);
 | 
			
		||||
						winner.getInventory().setLeggings(null);
 | 
			
		||||
						for(PotionEffect pe: winner.getActivePotionEffects()){
 | 
			
		||||
							PotionEffectType potion = pe.getType();
 | 
			
		||||
							winner.removePotionEffect(potion);
 | 
			
		||||
						}
 | 
			
		||||
						winner.teleport(Spawn);
 | 
			
		||||
						winner.getInventory().addItem(plugin.Reward);
 | 
			
		||||
					}
 | 
			
		||||
					// Create the event here
 | 
			
		||||
					//PlayerWinGamesEvent winevent = new PlayerWinGamesEvent(winner);
 | 
			
		||||
					// Call the event
 | 
			
		||||
					//Bukkit.getServer().getPluginManager().callEvent(winevent);
 | 
			
		||||
					plugin.Playing.clear();
 | 
			
		||||
					//Show spectators
 | 
			
		||||
					for(String s1: plugin.Watching){
 | 
			
		||||
						Player spectator = plugin.getServer().getPlayerExact(s1);
 | 
			
		||||
						spectator.setAllowFlight(false);
 | 
			
		||||
						spectator.teleport(Spawn);
 | 
			
		||||
						for(Player online:plugin.getServer().getOnlinePlayers()){
 | 
			
		||||
							online.showPlayer(spectator);
 | 
			
		||||
						}
 | 
			
		||||
					}
 | 
			
		||||
					if(plugin.config.getString("Auto_Restart").equalsIgnoreCase("True")){
 | 
			
		||||
						Bukkit.getServer().dispatchCommand(Bukkit.getConsoleSender(), "ha restart");
 | 
			
		||||
					}
 | 
			
		||||
				}
 | 
			
		||||
				plugin.winner();
 | 
			
		||||
			}
 | 
			
		||||
		}
 | 
			
		||||
	}
 | 
			
		||||
 
 | 
			
		||||
@@ -83,6 +83,7 @@ public class HaCommands implements CommandExecutor {
 | 
			
		||||
					sender.sendMessage(c + "/ha restart - Makes it so dead tributes can join again!");
 | 
			
		||||
					sender.sendMessage(c + "/ha rlist - See who's ready!");
 | 
			
		||||
					sender.sendMessage(c + "/ha setspawn - Sets the spawn for dead tributes!");
 | 
			
		||||
					sender.sendMessage(c + "/ha tp [player] - Teleports you to a tribute!");
 | 
			
		||||
					sender.sendMessage(c + "/ha start - Unfreezes tributes allowing them to fight!");
 | 
			
		||||
					sender.sendMessage(c + "/ha watch - Lets you watch the tributes!");
 | 
			
		||||
					sender.sendMessage(c + "/ha warpall - Warps all tribute into position!");
 | 
			
		||||
@@ -92,7 +93,7 @@ public class HaCommands implements CommandExecutor {
 | 
			
		||||
				}else if((plugin.restricted && plugin.worlds.contains(p.getWorld().getName())) || !plugin.restricted){
 | 
			
		||||
					//////////////////////////////////////// LISTING ///////////////////////////////////////////////
 | 
			
		||||
					if(args[0].equalsIgnoreCase("List")){
 | 
			
		||||
						if(p.hasPermission("HungerArena.GameMaker")){
 | 
			
		||||
						if(p.hasPermission("HungerArena.GameMaker") || plugin.Watching.contains(pname)){
 | 
			
		||||
							sender.sendMessage(ChatColor.AQUA + "-----People Playing-----");
 | 
			
		||||
							if(!plugin.Playing.isEmpty()){
 | 
			
		||||
								for(String playernames: plugin.Playing){
 | 
			
		||||
@@ -103,6 +104,16 @@ public class HaCommands implements CommandExecutor {
 | 
			
		||||
								p.sendMessage(ChatColor.GRAY + "No one is playing!");
 | 
			
		||||
							}
 | 
			
		||||
							p.sendMessage(ChatColor.AQUA + "----------------------");
 | 
			
		||||
						}else if(p.hasPermission("HungerArena.List")){
 | 
			
		||||
							sender.sendMessage(ChatColor.AQUA + "-----People Playing-----");
 | 
			
		||||
							if(!plugin.Playing.isEmpty()){
 | 
			
		||||
								for(String playernames: plugin.Playing){
 | 
			
		||||
									sender.sendMessage(ChatColor.GREEN + playernames);
 | 
			
		||||
								}
 | 
			
		||||
							}else if(plugin.Playing.isEmpty()){
 | 
			
		||||
								p.sendMessage(ChatColor.GRAY + "No one is playing!");
 | 
			
		||||
							}
 | 
			
		||||
							p.sendMessage(ChatColor.AQUA + "----------------------");
 | 
			
		||||
						}else{
 | 
			
		||||
							p.sendMessage(ChatColor.RED + "You don't have permission!");
 | 
			
		||||
						}
 | 
			
		||||
@@ -140,14 +151,130 @@ public class HaCommands implements CommandExecutor {
 | 
			
		||||
							}else if(plugin.NeedConfirm.contains(pname)){
 | 
			
		||||
								p.sendMessage(ChatColor.RED + "You need to do /ha confirm");
 | 
			
		||||
							}else if(plugin.config.getString("Need_Confirm").equalsIgnoreCase("true")){
 | 
			
		||||
								plugin.NeedConfirm.add(pname);
 | 
			
		||||
								p.sendMessage(ChatColor.GOLD + "You're inventory will be cleared! Type /ha confirm to procede");
 | 
			
		||||
								if(plugin.vault){
 | 
			
		||||
									if(plugin.config.getBoolean("EntryFee.enabled") && plugin.config.getBoolean("EntryFee.eco")){
 | 
			
		||||
										if(!(plugin.econ.getBalance(pname) < plugin.config.getDouble("EntryFee.cost"))){
 | 
			
		||||
											i = 0;
 | 
			
		||||
											for(ItemStack fee: plugin.Fee){
 | 
			
		||||
												int total = plugin.Fee.size();
 | 
			
		||||
												if(p.getInventory().contains(fee)){
 | 
			
		||||
													i = i+1;
 | 
			
		||||
													if(total == i){
 | 
			
		||||
														plugin.NeedConfirm.add(pname);
 | 
			
		||||
														p.sendMessage(ChatColor.GOLD + "You're inventory will be cleared! Type /ha confirm to procede");
 | 
			
		||||
													}
 | 
			
		||||
												}
 | 
			
		||||
											}
 | 
			
		||||
											if(plugin.Fee.size() > i){
 | 
			
		||||
												p.sendMessage(ChatColor.RED + "You are missing some items and can't join the games...");
 | 
			
		||||
											}
 | 
			
		||||
										}else{
 | 
			
		||||
											p.sendMessage(ChatColor.RED + "You don't have enough money to join!");
 | 
			
		||||
										}
 | 
			
		||||
									}else if(plugin.config.getBoolean("EntryFee.enabled") && !plugin.config.getBoolean("EntryFee.eco")){
 | 
			
		||||
										i = 0;
 | 
			
		||||
										for(ItemStack fee: plugin.Fee){
 | 
			
		||||
											int total = plugin.Fee.size();
 | 
			
		||||
											if(p.getInventory().contains(fee)){
 | 
			
		||||
												i = i+1;
 | 
			
		||||
												if(total == i){
 | 
			
		||||
													plugin.NeedConfirm.add(pname);
 | 
			
		||||
													p.sendMessage(ChatColor.GOLD + "You're inventory will be cleared! Type /ha confirm to procede");
 | 
			
		||||
												}
 | 
			
		||||
											}
 | 
			
		||||
										}
 | 
			
		||||
										if(plugin.Fee.size() > i){
 | 
			
		||||
											p.sendMessage(ChatColor.RED + "You are missing some items and can't join the games...");
 | 
			
		||||
										}
 | 
			
		||||
									}else if(!plugin.config.getBoolean("EntryFee.enabled") && plugin.config.getBoolean("EntryFee.eco")){
 | 
			
		||||
										if(!(plugin.econ.getBalance(pname) < plugin.config.getDouble("EntryFee.cost"))){
 | 
			
		||||
											plugin.NeedConfirm.add(pname);
 | 
			
		||||
											p.sendMessage(ChatColor.GOLD + "You're inventory will be cleared! Type /ha confirm to procede");
 | 
			
		||||
										}else{
 | 
			
		||||
											p.sendMessage(ChatColor.RED + "You don't have enough money to join!");
 | 
			
		||||
										}
 | 
			
		||||
									}
 | 
			
		||||
								}else{
 | 
			
		||||
									plugin.NeedConfirm.add(pname);
 | 
			
		||||
									p.sendMessage(ChatColor.GOLD + "You're inventory will be cleared! Type /ha confirm to procede");
 | 
			
		||||
								}
 | 
			
		||||
							}else if(plugin.config.getString("Need_Confirm").equalsIgnoreCase("false")){
 | 
			
		||||
								if(plugin.vault){
 | 
			
		||||
									if(plugin.config.getBoolean("EntryFee.enabled") && plugin.config.getBoolean("EntryFee.eco")){
 | 
			
		||||
										if(!(plugin.econ.getBalance(pname) < plugin.config.getDouble("EntryFee.cost"))){
 | 
			
		||||
											i = 0;
 | 
			
		||||
											for(ItemStack fee: plugin.Fee){
 | 
			
		||||
												int total = plugin.Fee.size();
 | 
			
		||||
												if(p.getInventory().contains(fee)){
 | 
			
		||||
													i = i+1;
 | 
			
		||||
													if(total == i){
 | 
			
		||||
														plugin.econ.withdrawPlayer(pname, plugin.config.getDouble("EntryFee.cost"));
 | 
			
		||||
														plugin.Playing.add(pname);
 | 
			
		||||
														clearInv(p);
 | 
			
		||||
														p.sendMessage(ChatColor.GOLD + "Do /ha ready to vote to start the games!");
 | 
			
		||||
														plugin.getServer().broadcastMessage(ChatColor.AQUA + pname +  " has Joined the Game!");
 | 
			
		||||
														if(plugin.Playing.size()== 24){
 | 
			
		||||
															Bukkit.getServer().dispatchCommand(Bukkit.getConsoleSender(), "ha warpall");
 | 
			
		||||
														}
 | 
			
		||||
													}
 | 
			
		||||
												}
 | 
			
		||||
											}
 | 
			
		||||
											if(plugin.Fee.size() > i){
 | 
			
		||||
												p.sendMessage(ChatColor.RED + "You are missing some items and can't join the games...");
 | 
			
		||||
											}
 | 
			
		||||
										}else{
 | 
			
		||||
											p.sendMessage(ChatColor.RED + "You don't have enough money to join!");
 | 
			
		||||
										}
 | 
			
		||||
									}else if(plugin.config.getBoolean("EntryFee.enabled") && !plugin.config.getBoolean("EntryFee.eco")){
 | 
			
		||||
										i = 0;
 | 
			
		||||
										for(ItemStack fee: plugin.Fee){
 | 
			
		||||
											int total = plugin.Fee.size();
 | 
			
		||||
											if(p.getInventory().contains(fee)){
 | 
			
		||||
												i = i+1;
 | 
			
		||||
												if(total == i){
 | 
			
		||||
													plugin.Playing.add(pname);
 | 
			
		||||
													clearInv(p);
 | 
			
		||||
													p.sendMessage(ChatColor.GOLD + "Do /ha ready to vote to start the games!");
 | 
			
		||||
													plugin.getServer().broadcastMessage(ChatColor.AQUA + pname +  " has Joined the Game!");
 | 
			
		||||
													if(plugin.Playing.size()== 24){
 | 
			
		||||
														Bukkit.getServer().dispatchCommand(Bukkit.getConsoleSender(), "ha warpall");
 | 
			
		||||
													}
 | 
			
		||||
												}
 | 
			
		||||
											}
 | 
			
		||||
										}
 | 
			
		||||
										if(plugin.Fee.size() > i){
 | 
			
		||||
											p.sendMessage(ChatColor.RED + "You are missing some items and can't join the games...");
 | 
			
		||||
										}
 | 
			
		||||
									}else if(!plugin.config.getBoolean("EntryFee.enabled") && plugin.config.getBoolean("EntryFee.eco")){
 | 
			
		||||
										if(!(plugin.econ.getBalance(pname) < plugin.config.getDouble("EntryFee.cost"))){
 | 
			
		||||
											plugin.econ.withdrawPlayer(pname, plugin.config.getDouble("EntryFee.cost"));
 | 
			
		||||
											plugin.Playing.add(pname);
 | 
			
		||||
											p.sendMessage(ChatColor.GREEN + "Do /ha ready to vote to start the games!");
 | 
			
		||||
											clearInv(p);
 | 
			
		||||
											plugin.getServer().broadcastMessage(ChatColor.AQUA + pname +  " has Joined the Game!");
 | 
			
		||||
											if(plugin.Playing.size()== 24){
 | 
			
		||||
												p.performCommand("ha warpall");
 | 
			
		||||
											}
 | 
			
		||||
										}else{
 | 
			
		||||
											p.sendMessage(ChatColor.RED + "You don't have enough money to join!");
 | 
			
		||||
										}
 | 
			
		||||
									}else{
 | 
			
		||||
										plugin.Playing.add(pname);
 | 
			
		||||
										p.sendMessage(ChatColor.GREEN + "Do /ha ready to vote to start the games!");
 | 
			
		||||
										clearInv(p);
 | 
			
		||||
										plugin.getServer().broadcastMessage(ChatColor.AQUA + pname +  " has Joined the Game!");
 | 
			
		||||
										if(plugin.Playing.size()== 24){
 | 
			
		||||
											p.performCommand("ha warpall");
 | 
			
		||||
										}
 | 
			
		||||
									}
 | 
			
		||||
								}
 | 
			
		||||
							}else{
 | 
			
		||||
								plugin.Playing.add(pname);
 | 
			
		||||
								p.sendMessage(ChatColor.GREEN + "Do /ha ready to vote to start the games!");
 | 
			
		||||
								clearInv(p);
 | 
			
		||||
								plugin.getServer().broadcastMessage(ChatColor.AQUA + pname +  " has Joined the Game!");
 | 
			
		||||
								if(plugin.Playing.size()== 24){
 | 
			
		||||
									Bukkit.getServer().dispatchCommand(Bukkit.getConsoleSender(), "ha warpall");
 | 
			
		||||
									p.performCommand("ha warpall");
 | 
			
		||||
								}
 | 
			
		||||
							}
 | 
			
		||||
						}else{
 | 
			
		||||
@@ -155,13 +282,76 @@ public class HaCommands implements CommandExecutor {
 | 
			
		||||
						}
 | 
			
		||||
					}else if(args[0].equalsIgnoreCase("Confirm")){
 | 
			
		||||
						if(plugin.NeedConfirm.contains(pname)){
 | 
			
		||||
							plugin.Playing.add(pname);
 | 
			
		||||
							plugin.NeedConfirm.remove(pname);
 | 
			
		||||
							p.sendMessage(ChatColor.GREEN + "Do /ha ready to vote to start the games!");
 | 
			
		||||
							clearInv(p);
 | 
			
		||||
							plugin.getServer().broadcastMessage(ChatColor.AQUA + pname +  " has Joined the Game!");
 | 
			
		||||
							if(plugin.Playing.size()== 24){
 | 
			
		||||
								p.performCommand("ha warpall");
 | 
			
		||||
							if(plugin.config.getBoolean("EntryFee.enabled") && plugin.config.getBoolean("EntryFee.eco")){
 | 
			
		||||
								if(!(plugin.econ.getBalance(pname) < plugin.config.getDouble("EntryFee.cost"))){
 | 
			
		||||
									i = 0;
 | 
			
		||||
									for(ItemStack fee: plugin.Fee){
 | 
			
		||||
										int total = plugin.Fee.size();
 | 
			
		||||
										if(p.getInventory().contains(fee)){
 | 
			
		||||
											i = i+1;
 | 
			
		||||
											if(total == i){
 | 
			
		||||
												plugin.econ.withdrawPlayer(pname, plugin.config.getDouble("EntryFee.cost"));
 | 
			
		||||
												plugin.Playing.add(pname);
 | 
			
		||||
												plugin.NeedConfirm.remove(pname);
 | 
			
		||||
												p.sendMessage(ChatColor.GREEN + "Do /ha ready to vote to start the games!");
 | 
			
		||||
												clearInv(p);
 | 
			
		||||
												plugin.getServer().broadcastMessage(ChatColor.AQUA + pname +  " has Joined the Game!");
 | 
			
		||||
												if(plugin.Playing.size()== 24){
 | 
			
		||||
													p.performCommand("ha warpall");
 | 
			
		||||
												}
 | 
			
		||||
											}
 | 
			
		||||
										}
 | 
			
		||||
									}
 | 
			
		||||
									if(plugin.Fee.size() > i){
 | 
			
		||||
										p.sendMessage(ChatColor.RED + "You are missing some items and can't join the games...");
 | 
			
		||||
									}
 | 
			
		||||
								}else{
 | 
			
		||||
									p.sendMessage(ChatColor.RED + "You don't have enough money to join!");
 | 
			
		||||
								}
 | 
			
		||||
							}else if(plugin.config.getBoolean("EntryFee.enabled") && !plugin.config.getBoolean("EntryFee.eco")){
 | 
			
		||||
								i = 0;
 | 
			
		||||
								for(ItemStack fee: plugin.Fee){
 | 
			
		||||
									int total = plugin.Fee.size();
 | 
			
		||||
									if(p.getInventory().contains(fee)){
 | 
			
		||||
										i = i+1;
 | 
			
		||||
										if(total == i){
 | 
			
		||||
											plugin.Playing.add(pname);
 | 
			
		||||
											plugin.NeedConfirm.remove(pname);
 | 
			
		||||
											p.sendMessage(ChatColor.GREEN + "Do /ha ready to vote to start the games!");
 | 
			
		||||
											clearInv(p);
 | 
			
		||||
											plugin.getServer().broadcastMessage(ChatColor.AQUA + pname +  " has Joined the Game!");
 | 
			
		||||
											if(plugin.Playing.size()== 24){
 | 
			
		||||
												p.performCommand("ha warpall");
 | 
			
		||||
											}
 | 
			
		||||
										}
 | 
			
		||||
									}
 | 
			
		||||
								}
 | 
			
		||||
								if(plugin.Fee.size() > i){
 | 
			
		||||
									p.sendMessage(ChatColor.RED + "You are missing some items and can't join the games...");
 | 
			
		||||
								}
 | 
			
		||||
							}else if(!plugin.config.getBoolean("EntryFee.enabled") && plugin.config.getBoolean("EntryFee.eco")){
 | 
			
		||||
								if(!(plugin.econ.getBalance(pname) < plugin.config.getDouble("EntryFee.cost"))){
 | 
			
		||||
									plugin.econ.withdrawPlayer(pname, plugin.config.getDouble("EntryFee.cost"));
 | 
			
		||||
									plugin.Playing.add(pname);
 | 
			
		||||
									plugin.NeedConfirm.remove(pname);
 | 
			
		||||
									p.sendMessage(ChatColor.GREEN + "Do /ha ready to vote to start the games!");
 | 
			
		||||
									clearInv(p);
 | 
			
		||||
									plugin.getServer().broadcastMessage(ChatColor.AQUA + pname +  " has Joined the Game!");
 | 
			
		||||
									if(plugin.Playing.size()== 24){
 | 
			
		||||
										p.performCommand("ha warpall");
 | 
			
		||||
									}
 | 
			
		||||
								}else{
 | 
			
		||||
									p.sendMessage(ChatColor.RED + "You don't have enough money to join!");
 | 
			
		||||
								}
 | 
			
		||||
							}else{
 | 
			
		||||
								plugin.Playing.add(pname);
 | 
			
		||||
								plugin.NeedConfirm.remove(pname);
 | 
			
		||||
								p.sendMessage(ChatColor.GREEN + "Do /ha ready to vote to start the games!");
 | 
			
		||||
								clearInv(p);
 | 
			
		||||
								plugin.getServer().broadcastMessage(ChatColor.AQUA + pname +  " has Joined the Game!");
 | 
			
		||||
								if(plugin.Playing.size()== 24){
 | 
			
		||||
									p.performCommand("ha warpall");
 | 
			
		||||
								}
 | 
			
		||||
							}
 | 
			
		||||
						}
 | 
			
		||||
					}else if(args[0].equalsIgnoreCase("Ready")){
 | 
			
		||||
@@ -192,6 +382,7 @@ public class HaCommands implements CommandExecutor {
 | 
			
		||||
							if(plugin.Frozen.contains(pname)){
 | 
			
		||||
								plugin.Frozen.remove(pname);
 | 
			
		||||
							}
 | 
			
		||||
							plugin.winner();
 | 
			
		||||
						}else{
 | 
			
		||||
							plugin.Playing.remove(pname);
 | 
			
		||||
							plugin.Quit.add(pname);
 | 
			
		||||
@@ -202,35 +393,9 @@ public class HaCommands implements CommandExecutor {
 | 
			
		||||
							if(plugin.Frozen.contains(pname)){
 | 
			
		||||
								plugin.Frozen.remove(pname);
 | 
			
		||||
							}
 | 
			
		||||
							if(plugin.Playing.size()== 1){
 | 
			
		||||
								//Announce the Winner
 | 
			
		||||
								for(i = 0; i < plugin.Playing.size(); i++){
 | 
			
		||||
									String winnername = plugin.Playing.get(i++);
 | 
			
		||||
									Player winner = plugin.getServer().getPlayerExact(winnername);
 | 
			
		||||
									String winnername2 = winner.getName();
 | 
			
		||||
									plugin.getServer().broadcastMessage(ChatColor.GREEN + winnername2 + " is the victor of this Hunger Games!");
 | 
			
		||||
									clearInv(winner);
 | 
			
		||||
									winner.teleport(Spawn);
 | 
			
		||||
									winner.getInventory().addItem(plugin.Reward);
 | 
			
		||||
									Bukkit.getServer().getPluginManager().callEvent(new PlayerWinGamesEvent(winner));
 | 
			
		||||
								}
 | 
			
		||||
								plugin.Playing.clear();
 | 
			
		||||
								//Show spectators
 | 
			
		||||
								for(i = 0; i < plugin.Watching.size(); i++){
 | 
			
		||||
									String s = plugin.Watching.get(i++);
 | 
			
		||||
									Player spectator = plugin.getServer().getPlayerExact(s);
 | 
			
		||||
									spectator.setAllowFlight(false);
 | 
			
		||||
									spectator.teleport(Spawn);
 | 
			
		||||
									for(Player online:plugin.getServer().getOnlinePlayers()){
 | 
			
		||||
										online.showPlayer(spectator);
 | 
			
		||||
									}
 | 
			
		||||
								}
 | 
			
		||||
								if(plugin.config.getString("Auto_Restart").equalsIgnoreCase("True")){
 | 
			
		||||
									Bukkit.getServer().dispatchCommand(Bukkit.getConsoleSender(), "ha restart");
 | 
			
		||||
								}
 | 
			
		||||
							}
 | 
			
		||||
						}
 | 
			
		||||
						////////////////////////////////////////////////////////////////////////////////////////////////////////////////
 | 
			
		||||
						//////////////////////////////// SPECTATOR RELATED //////////////////////////////////
 | 
			
		||||
					}else if(args[0].equalsIgnoreCase("Watch")){
 | 
			
		||||
						if(sender.hasPermission("HungerArena.Watch")){
 | 
			
		||||
							if(!plugin.Watching.contains(pname) && !plugin.Playing.contains(pname) && plugin.canjoin== true){
 | 
			
		||||
@@ -256,6 +421,19 @@ public class HaCommands implements CommandExecutor {
 | 
			
		||||
						}else{
 | 
			
		||||
							p.sendMessage(ChatColor.RED + "You don't have permission!");
 | 
			
		||||
						}
 | 
			
		||||
					}else if(args[0].equalsIgnoreCase("tp")){
 | 
			
		||||
						if(plugin.Watching.contains(pname)){
 | 
			
		||||
							if(plugin.Playing.contains(plugin.getServer().getPlayer(args[1]).getName())){
 | 
			
		||||
								Player target = plugin.getServer().getPlayerExact(args[1]);
 | 
			
		||||
								p.teleport(target);
 | 
			
		||||
								p.sendMessage(ChatColor.AQUA + "You've been teleported to " + target.getName());
 | 
			
		||||
							}else{
 | 
			
		||||
								p.sendMessage(ChatColor.RED + "That person isn't in game!");
 | 
			
		||||
							}
 | 
			
		||||
						}else{
 | 
			
		||||
							p.sendMessage(ChatColor.RED + "You have to be spectating to teleport to tributes!");
 | 
			
		||||
						}
 | 
			
		||||
						/////////////////////////////////////////////////////////////////////////////////
 | 
			
		||||
					}else if(args[0].equalsIgnoreCase("Kick")){
 | 
			
		||||
						if (args.length != 2) {
 | 
			
		||||
							return false;
 | 
			
		||||
@@ -268,31 +446,7 @@ public class HaCommands implements CommandExecutor {
 | 
			
		||||
								clearInv(target);
 | 
			
		||||
								target.teleport(Spawn);
 | 
			
		||||
								plugin.Quit.add(target.getName());
 | 
			
		||||
								if(plugin.Playing.size()== 1 && plugin.canjoin== true){
 | 
			
		||||
									//Announce winner
 | 
			
		||||
									for(i = 0; i < plugin.Playing.size(); i++){
 | 
			
		||||
										String winnername = plugin.Playing.get(i++);
 | 
			
		||||
										Player winner = plugin.getServer().getPlayerExact(winnername);
 | 
			
		||||
										String winnername2 = winner.getName();
 | 
			
		||||
										plugin.getServer().broadcastMessage(ChatColor.GREEN + winnername2 + " is the victor of this Hunger Games!");
 | 
			
		||||
										clearInv(winner);
 | 
			
		||||
										winner.teleport(Spawn);
 | 
			
		||||
										winner.getInventory().addItem(plugin.Reward);
 | 
			
		||||
										plugin.Playing.clear();
 | 
			
		||||
									}
 | 
			
		||||
									//Show spectators
 | 
			
		||||
									for(String s1: plugin.Watching){
 | 
			
		||||
										Player spectator = plugin.getServer().getPlayerExact(s1);
 | 
			
		||||
										spectator.setAllowFlight(false);
 | 
			
		||||
										spectator.teleport(Spawn);
 | 
			
		||||
										for(Player online:plugin.getServer().getOnlinePlayers()){
 | 
			
		||||
											online.showPlayer(spectator);
 | 
			
		||||
										}
 | 
			
		||||
									}
 | 
			
		||||
									if(plugin.config.getString("Auto_Restart").equalsIgnoreCase("True")){
 | 
			
		||||
										Bukkit.getServer().dispatchCommand(Bukkit.getConsoleSender(), "ha restart");
 | 
			
		||||
									}
 | 
			
		||||
								}
 | 
			
		||||
								plugin.winner();
 | 
			
		||||
							}else{
 | 
			
		||||
								sender.sendMessage(ChatColor.RED + "That player isn't in the game!");
 | 
			
		||||
							}
 | 
			
		||||
@@ -547,6 +701,7 @@ public class HaCommands implements CommandExecutor {
 | 
			
		||||
					sender.sendMessage(c + "/ha rlist - See who's ready!");
 | 
			
		||||
					sender.sendMessage(c + "/ha setspawn - Sets the spawn for dead tributes!");
 | 
			
		||||
					sender.sendMessage(c + "/ha start - Unfreezes tributes allowing them to fight!");
 | 
			
		||||
					sender.sendMessage(c + "/ha tp [player] - Teleports you to a tribute!");
 | 
			
		||||
					sender.sendMessage(c + "/ha watch - Lets you watch the tributes!");
 | 
			
		||||
					sender.sendMessage(c + "/ha warpall - Warps all tribute into position!");
 | 
			
		||||
					sender.sendMessage(ChatColor.GREEN + "----------------------");
 | 
			
		||||
@@ -583,31 +738,7 @@ public class HaCommands implements CommandExecutor {
 | 
			
		||||
						clearInv(target);
 | 
			
		||||
						target.teleport(Spawn);
 | 
			
		||||
						plugin.Quit.add(target.getName());
 | 
			
		||||
						if(plugin.Playing.size()== 1 && plugin.canjoin== true){
 | 
			
		||||
							//Announce winner
 | 
			
		||||
							for(i = 0; i < plugin.Playing.size(); i++){
 | 
			
		||||
								String winnername = plugin.Playing.get(i++);
 | 
			
		||||
								Player winner = plugin.getServer().getPlayerExact(winnername);
 | 
			
		||||
								String winnername2 = winner.getName();
 | 
			
		||||
								plugin.getServer().broadcastMessage(ChatColor.GREEN + winnername2 + " is the victor of this Hunger Games!");
 | 
			
		||||
								clearInv(winner);
 | 
			
		||||
								winner.teleport(Spawn);
 | 
			
		||||
								winner.getInventory().addItem(plugin.Reward);
 | 
			
		||||
								plugin.Playing.clear();
 | 
			
		||||
							}
 | 
			
		||||
							//Show spectators
 | 
			
		||||
							for(String s1: plugin.Watching){
 | 
			
		||||
								Player spectator = plugin.getServer().getPlayerExact(s1);
 | 
			
		||||
								spectator.setAllowFlight(false);
 | 
			
		||||
								spectator.teleport(Spawn);
 | 
			
		||||
								for(Player online:plugin.getServer().getOnlinePlayers()){
 | 
			
		||||
									online.showPlayer(spectator);
 | 
			
		||||
								}
 | 
			
		||||
							}
 | 
			
		||||
							if(plugin.config.getString("Auto_Restart").equalsIgnoreCase("True")){
 | 
			
		||||
								Bukkit.getServer().dispatchCommand(Bukkit.getConsoleSender(), "ha restart");
 | 
			
		||||
							}
 | 
			
		||||
						}
 | 
			
		||||
						plugin.winner();
 | 
			
		||||
					}else{
 | 
			
		||||
						sender.sendMessage(ChatColor.RED + "That player isn't in the game!");
 | 
			
		||||
					}
 | 
			
		||||
 
 | 
			
		||||
@@ -79,57 +79,19 @@ public class JoinAndQuitListener implements Listener {
 | 
			
		||||
			p.teleport(Spawn);
 | 
			
		||||
		}
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
	@EventHandler
 | 
			
		||||
	public void onPlayerQuit(PlayerQuitEvent event){
 | 
			
		||||
		final Player p = event.getPlayer();
 | 
			
		||||
		final String pname = p.getName();
 | 
			
		||||
		String[] Spawncoords = plugin.spawns.getString("Spawn_coords").split(",");
 | 
			
		||||
		String w = Spawncoords[3];
 | 
			
		||||
		World spawnw = plugin.getServer().getWorld(w);
 | 
			
		||||
		double spawnx = Double.parseDouble(Spawncoords[0]);
 | 
			
		||||
		double spawny = Double.parseDouble(Spawncoords[1]);
 | 
			
		||||
		double spawnz = Double.parseDouble(Spawncoords[2]);
 | 
			
		||||
		final Location Spawn = new Location(spawnw, spawnx, spawny, spawnz);
 | 
			
		||||
		if(plugin.Playing.contains(pname)){
 | 
			
		||||
			plugin.Out.add(pname);
 | 
			
		||||
			plugin.Playing.remove(pname);
 | 
			
		||||
			plugin.getServer().getScheduler().scheduleSyncDelayedTask(plugin, new Runnable(){
 | 
			
		||||
				public void run(){
 | 
			
		||||
					if(plugin.Out.contains(pname)){
 | 
			
		||||
						if(plugin.canjoin== true){
 | 
			
		||||
							plugin.Quit.add(pname);
 | 
			
		||||
							plugin.Out.remove(pname);
 | 
			
		||||
							if(plugin.Playing.size()== 1){
 | 
			
		||||
								//Announce Winner
 | 
			
		||||
								for(i = 0; i < plugin.Playing.size(); i++){
 | 
			
		||||
									String winnername = plugin.Playing.get(i++);
 | 
			
		||||
									Player winner = plugin.getServer().getPlayerExact(winnername);
 | 
			
		||||
									String winnername2 = winner.getName();
 | 
			
		||||
									p.getServer().broadcastMessage(ChatColor.GREEN + winnername2 + " is the victor of this Hunger Games!");
 | 
			
		||||
									winner.getInventory().clear();
 | 
			
		||||
									winner.getInventory().setBoots(null);
 | 
			
		||||
									winner.getInventory().setChestplate(null);
 | 
			
		||||
									winner.getInventory().setHelmet(null);
 | 
			
		||||
									winner.getInventory().setLeggings(null);
 | 
			
		||||
									winner.getInventory().addItem(plugin.Reward);
 | 
			
		||||
									PlayerWinGamesEvent evt = new PlayerWinGamesEvent(winner);
 | 
			
		||||
									Bukkit.getServer().getPluginManager().callEvent(evt);
 | 
			
		||||
								}
 | 
			
		||||
								//Make spectators visible
 | 
			
		||||
									for(String s: plugin.Watching){
 | 
			
		||||
										Player spectator = plugin.getServer().getPlayerExact(s);
 | 
			
		||||
										spectator.setAllowFlight(false);
 | 
			
		||||
										spectator.teleport(Spawn);
 | 
			
		||||
										for(Player online:plugin.getServer().getOnlinePlayers()){
 | 
			
		||||
											online.showPlayer(spectator);
 | 
			
		||||
										}
 | 
			
		||||
									}
 | 
			
		||||
								if(plugin.config.getString("Auto_Restart").equalsIgnoreCase("True")){
 | 
			
		||||
									Bukkit.getServer().dispatchCommand(Bukkit.getConsoleSender(), "ha restart");
 | 
			
		||||
								}
 | 
			
		||||
							}
 | 
			
		||||
						}
 | 
			
		||||
							plugin.winner();
 | 
			
		||||
					}else{
 | 
			
		||||
						plugin.Quit.add(pname);
 | 
			
		||||
					}
 | 
			
		||||
 
 | 
			
		||||
@@ -11,6 +11,7 @@ import java.util.logging.Logger;
 | 
			
		||||
 | 
			
		||||
import net.milkbowl.vault.economy.Economy;
 | 
			
		||||
 | 
			
		||||
import org.bukkit.Bukkit;
 | 
			
		||||
import org.bukkit.ChatColor;
 | 
			
		||||
import org.bukkit.Location;
 | 
			
		||||
import org.bukkit.World;
 | 
			
		||||
@@ -22,6 +23,8 @@ import org.bukkit.event.Listener;
 | 
			
		||||
import org.bukkit.inventory.ItemStack;
 | 
			
		||||
import org.bukkit.plugin.RegisteredServiceProvider;
 | 
			
		||||
import org.bukkit.plugin.java.JavaPlugin;
 | 
			
		||||
import org.bukkit.potion.PotionEffect;
 | 
			
		||||
import org.bukkit.potion.PotionEffectType;
 | 
			
		||||
 | 
			
		||||
public class Main extends JavaPlugin{
 | 
			
		||||
	static final Logger log = Logger.getLogger("Minecraft");
 | 
			
		||||
@@ -63,10 +66,13 @@ public class Main extends JavaPlugin{
 | 
			
		||||
	public File dataFile = null;
 | 
			
		||||
	public File managementFile = null;
 | 
			
		||||
	public FileConfiguration management = null;
 | 
			
		||||
	public ItemStack Reward;
 | 
			
		||||
	public ItemStack Cost;
 | 
			
		||||
	public ArrayList<ItemStack> Reward = new ArrayList<ItemStack>();
 | 
			
		||||
	public ArrayList<ItemStack> Cost = new ArrayList<ItemStack>();
 | 
			
		||||
	public ArrayList<ItemStack> Fee = new ArrayList<ItemStack>();
 | 
			
		||||
	public boolean vault = false;
 | 
			
		||||
	public boolean eco = false;
 | 
			
		||||
	public Economy econ = null;
 | 
			
		||||
	int i = 0;
 | 
			
		||||
	public void onEnable(){
 | 
			
		||||
		config = this.getConfig();
 | 
			
		||||
		config.options().copyDefaults(true);
 | 
			
		||||
@@ -110,27 +116,44 @@ public class Main extends JavaPlugin{
 | 
			
		||||
		}
 | 
			
		||||
		System.out.println("[HungerArena] Loaded " + location.size() + " tribute spawns!");
 | 
			
		||||
		if (setupEconomy()) {
 | 
			
		||||
			log.info(ChatColor.AQUA + "[HungerArena] Found Vault! Hooking in for economy!");
 | 
			
		||||
			log.info("[HungerArena] Found Vault! Hooking in for economy!");
 | 
			
		||||
		}
 | 
			
		||||
		if (config.getDouble("config.version") != 1.3) {
 | 
			
		||||
			config.set("config.version", 1.3);
 | 
			
		||||
			config.set("eco.enabled", false);
 | 
			
		||||
			config.set("eco.reward", 100);
 | 
			
		||||
			config.set("rewardEco.enabled", false);
 | 
			
		||||
			config.set("rewardEco.reward", 100);
 | 
			
		||||
		}
 | 
			
		||||
		if (config.getBoolean("eco.enabled", true)) {
 | 
			
		||||
		if (config.getBoolean("rewardEco.enabled", true) || config.getBoolean("sponsorEco.enabled", true) || config.getBoolean("EntryFee.eco", true)) {
 | 
			
		||||
			if (vault == true) {
 | 
			
		||||
				log.info(ChatColor.AQUA + "Economy hook deployed.");
 | 
			
		||||
			} else {
 | 
			
		||||
				log.info(ChatColor.RED + "You want economy support... yet you don't have Vault. Sorry, can't give you it.");
 | 
			
		||||
				log.info("Economy hook deployed.");
 | 
			
		||||
				eco = true;
 | 
			
		||||
			}else{
 | 
			
		||||
				log.info("You want economy support... yet you either don't have Vault or don't have an economy plugin. Sorry, can't give you it.");
 | 
			
		||||
			}
 | 
			
		||||
		}
 | 
			
		||||
		if (config.getBoolean("eco.enabled", false)) {
 | 
			
		||||
		if (!eco) {
 | 
			
		||||
			if (vault == true) {
 | 
			
		||||
				log.info(ChatColor.GREEN + "We see that you have Vault on your server. To set economy support to true, enable it in the config.");
 | 
			
		||||
			}
 | 
			
		||||
		}
 | 
			
		||||
		Reward = new ItemStack(config.getInt("Reward.ID"), config.getInt("Reward.Amount"));
 | 
			
		||||
		Cost = new ItemStack(config.getInt("Sponsor_Cost.ID"), config.getInt("Sponsor_Cost.Amount"));
 | 
			
		||||
		try{
 | 
			
		||||
			for(String rewards: config.getStringList("Reward")){
 | 
			
		||||
				String[] rinfo = rewards.split(",");
 | 
			
		||||
				Reward.add(new ItemStack(Integer.parseInt(rinfo[0]), Integer.parseInt(rinfo[1])));
 | 
			
		||||
			}
 | 
			
		||||
			for(String scost: config.getStringList("Sponsor_Cost")){
 | 
			
		||||
				String[] sinfo = scost.split(",");
 | 
			
		||||
				Cost.add(new ItemStack(Integer.parseInt(sinfo[0]), Integer.parseInt(sinfo[1])));
 | 
			
		||||
			}
 | 
			
		||||
			if(config.getBoolean("EntryFee.enabled")){
 | 
			
		||||
				for(String fee: config.getStringList("EntryFee.fee")){
 | 
			
		||||
					String[] finfo = fee.split(",");
 | 
			
		||||
					Fee.add(new ItemStack(Integer.parseInt(finfo[0]), Integer.parseInt(finfo[1])));
 | 
			
		||||
				}
 | 
			
		||||
			}
 | 
			
		||||
		}catch(Exception e){
 | 
			
		||||
			log.warning("Could not add a reward/sponsor/entry cost! One of the rewards/costs is not a number!");
 | 
			
		||||
		}
 | 
			
		||||
		worlds = config.getStringList("worlds");
 | 
			
		||||
		if(worlds.isEmpty()){
 | 
			
		||||
			restricted = false;
 | 
			
		||||
@@ -242,4 +265,57 @@ public class Main extends JavaPlugin{
 | 
			
		||||
			this.getLogger().log(Level.SEVERE, "Could not save config to " + managementFile, ex);
 | 
			
		||||
		}
 | 
			
		||||
	}
 | 
			
		||||
	public void winner(){
 | 
			
		||||
		String[] Spawncoords = spawns.getString("Spawn_coords").split(",");
 | 
			
		||||
		World spawnw = getServer().getWorld(Spawncoords[3]);
 | 
			
		||||
		double spawnx = Double.parseDouble(Spawncoords[0]);
 | 
			
		||||
		double spawny = Double.parseDouble(Spawncoords[1]);
 | 
			
		||||
		double spawnz = Double.parseDouble(Spawncoords[2]);
 | 
			
		||||
		Location Spawn = new Location(spawnw, spawnx, spawny, spawnz);
 | 
			
		||||
		if(Playing.size()== 1 && canjoin== false){
 | 
			
		||||
			//Announce winner
 | 
			
		||||
			for(i = 0; i < Playing.size(); i++){
 | 
			
		||||
				String winnername = Playing.get(i++);
 | 
			
		||||
				Player winner = getServer().getPlayerExact(winnername);
 | 
			
		||||
				String winnername2 = winner.getName();
 | 
			
		||||
				getServer().broadcastMessage(ChatColor.GREEN + winnername2 + " is the victor of this Hunger Games!");
 | 
			
		||||
				winner.getInventory().clear();
 | 
			
		||||
				winner.getInventory().setBoots(null);
 | 
			
		||||
				winner.getInventory().setChestplate(null);
 | 
			
		||||
				winner.getInventory().setHelmet(null);
 | 
			
		||||
				winner.getInventory().setLeggings(null);
 | 
			
		||||
				for(PotionEffect pe: winner.getActivePotionEffects()){
 | 
			
		||||
					PotionEffectType potion = pe.getType();
 | 
			
		||||
					winner.removePotionEffect(potion);
 | 
			
		||||
				}
 | 
			
		||||
				Tele.add(winner);
 | 
			
		||||
				winner.teleport(Spawn);
 | 
			
		||||
				if(!config.getBoolean("rewardEco.enabled")){
 | 
			
		||||
					for(ItemStack Rewards: Reward){
 | 
			
		||||
						winner.getInventory().addItem(Rewards);
 | 
			
		||||
					}
 | 
			
		||||
				}else{
 | 
			
		||||
					econ.depositPlayer(winner.getName(), config.getDouble("eco.reward"));
 | 
			
		||||
				}
 | 
			
		||||
				Playing.clear();
 | 
			
		||||
			}
 | 
			
		||||
			//Show spectators
 | 
			
		||||
			for(String s1: Watching){
 | 
			
		||||
				Player spectator = getServer().getPlayerExact(s1);
 | 
			
		||||
				spectator.setAllowFlight(false);
 | 
			
		||||
				spectator.teleport(Spawn);
 | 
			
		||||
				for(Player online:getServer().getOnlinePlayers()){
 | 
			
		||||
					online.showPlayer(spectator);
 | 
			
		||||
				}
 | 
			
		||||
			}
 | 
			
		||||
			if(config.getString("Auto_Restart").equalsIgnoreCase("True")){
 | 
			
		||||
				Bukkit.getServer().getScheduler().scheduleSyncDelayedTask(this, new Runnable(){
 | 
			
		||||
					public void run(){
 | 
			
		||||
						Bukkit.getServer().dispatchCommand(Bukkit.getConsoleSender(), "ha restart");
 | 
			
		||||
 | 
			
		||||
					}
 | 
			
		||||
				}, 220L);
 | 
			
		||||
			}
 | 
			
		||||
		}
 | 
			
		||||
	}
 | 
			
		||||
}
 | 
			
		||||
 
 | 
			
		||||
@@ -19,6 +19,7 @@ public class SponsorCommands implements CommandExecutor {
 | 
			
		||||
	public boolean onCommand(CommandSender sender, Command cmd, String commandLabel, String[] args) {
 | 
			
		||||
		if(cmd.getName().equalsIgnoreCase("Sponsor")){
 | 
			
		||||
			if(sender instanceof Player){
 | 
			
		||||
				int i = 0;
 | 
			
		||||
				Player p = (Player) sender;
 | 
			
		||||
				String pname = p.getName();
 | 
			
		||||
				String epname = p.getName();
 | 
			
		||||
@@ -36,36 +37,57 @@ public class SponsorCommands implements CommandExecutor {
 | 
			
		||||
						}
 | 
			
		||||
						if(args.length== 3){
 | 
			
		||||
							Player target = Bukkit.getServer().getPlayer(args[0]);
 | 
			
		||||
							try{
 | 
			
		||||
								int ID = Integer.parseInt(args[1]);
 | 
			
		||||
								int Amount = Integer.parseInt(args[2]);
 | 
			
		||||
								if((!plugin.management.getStringList("sponsors.blacklist").isEmpty() && !plugin.management.getStringList("sponsors.blacklist").contains(ID)) || plugin.management.getStringList("sponsors.blacklist").isEmpty()){
 | 
			
		||||
									ItemStack sponsoritem = new ItemStack(ID, Amount);
 | 
			
		||||
									if(p.getInventory().contains(plugin.config.getInt("Sponsor_Cost.ID"), plugin.config.getInt("Sponsor_Cost.Amount")*Amount)){
 | 
			
		||||
										if(!plugin.Playing.contains(target.getName())){
 | 
			
		||||
											p.sendMessage(ChatColor.RED + "That person isn't playing!");
 | 
			
		||||
							if(!plugin.Playing.contains(target.getName())){
 | 
			
		||||
								p.sendMessage(ChatColor.RED + "That person isn't playing!");
 | 
			
		||||
							}else{
 | 
			
		||||
								try{
 | 
			
		||||
									int ID = Integer.parseInt(args[1]);
 | 
			
		||||
									int Amount = Integer.parseInt(args[2]);
 | 
			
		||||
									if((!plugin.management.getStringList("sponsors.blacklist").isEmpty() && !plugin.management.getStringList("sponsors.blacklist").contains(ID)) || plugin.management.getStringList("sponsors.blacklist").isEmpty()){
 | 
			
		||||
										ItemStack sponsoritem = new ItemStack(ID, Amount);
 | 
			
		||||
										if(!plugin.config.getBoolean("sponsorEco.enabled")){
 | 
			
		||||
											for(ItemStack Costs: plugin.Cost){
 | 
			
		||||
												if(p.getInventory().contains(Costs)){
 | 
			
		||||
													i = i+1;
 | 
			
		||||
													if(plugin.Cost.size() == i){
 | 
			
		||||
														if(args[0].equalsIgnoreCase(pname)){
 | 
			
		||||
															p.sendMessage(ChatColor.RED + "You can't sponsor yourself!");
 | 
			
		||||
														}else{
 | 
			
		||||
															target.sendMessage(ChatColor.AQUA + "You have been Sponsored!");
 | 
			
		||||
															target.getInventory().addItem(sponsoritem);
 | 
			
		||||
															p.sendMessage("You have sponsored " + target.getName() + "!");
 | 
			
		||||
															for(ItemStack aCosts: plugin.Cost){
 | 
			
		||||
																p.getInventory().removeItem(aCosts);
 | 
			
		||||
															}
 | 
			
		||||
														}
 | 
			
		||||
													}
 | 
			
		||||
												}
 | 
			
		||||
											}
 | 
			
		||||
											if(plugin.Cost.size() > i){
 | 
			
		||||
												p.sendMessage(ChatColor.RED + "You don't have the necessary items to sponsor!");
 | 
			
		||||
											}
 | 
			
		||||
										}else{
 | 
			
		||||
											if(args[0].equalsIgnoreCase(pname)){
 | 
			
		||||
												p.sendMessage(ChatColor.RED + "You can't sponsor yourself!");
 | 
			
		||||
											}else{
 | 
			
		||||
											}else if(!(plugin.econ.getBalance(pname) < plugin.config.getDouble("sponsorEco.cost"))){
 | 
			
		||||
												target.sendMessage(ChatColor.AQUA + "You have been Sponsored!");
 | 
			
		||||
												target.getInventory().addItem(sponsoritem);
 | 
			
		||||
												p.sendMessage("You have sponsored " + target.getName() + "!");
 | 
			
		||||
												p.getInventory().removeItem(plugin.Cost);
 | 
			
		||||
												plugin.econ.withdrawPlayer(pname, plugin.config.getDouble("sponsorEco.cost"));
 | 
			
		||||
											}else{
 | 
			
		||||
												p.sendMessage(ChatColor.RED + "You don't have enough money to do that!");
 | 
			
		||||
											}
 | 
			
		||||
										}
 | 
			
		||||
									}else{
 | 
			
		||||
										p.sendMessage(ChatColor.RED + "You don't have the necessary items to sponsor!");
 | 
			
		||||
									}
 | 
			
		||||
								}else{
 | 
			
		||||
									p.sendMessage(ChatColor.RED + "You can't sponsor that item!");
 | 
			
		||||
									p.sendMessage(ChatColor.GREEN + "Other items you can't sponsor are:");
 | 
			
		||||
									for(String blacklist: plugin.management.getStringList("sponsors.blacklist")){
 | 
			
		||||
										p.sendMessage(ChatColor.AQUA + blacklist);
 | 
			
		||||
										p.sendMessage(ChatColor.RED + "You can't sponsor that item!");
 | 
			
		||||
										p.sendMessage(ChatColor.GREEN + "Other items you can't sponsor are:");
 | 
			
		||||
										for(String blacklist: plugin.management.getStringList("sponsors.blacklist")){
 | 
			
		||||
											p.sendMessage(ChatColor.AQUA + blacklist);
 | 
			
		||||
										}
 | 
			
		||||
									}
 | 
			
		||||
								}catch(Exception e){
 | 
			
		||||
									p.sendMessage(ChatColor.RED + "Something went wrong there... Make sure that you do like this /sponsor [name] [number] [number]");
 | 
			
		||||
								}
 | 
			
		||||
							}catch(Exception e){
 | 
			
		||||
								p.sendMessage(ChatColor.RED + "Something went wrong there... Make sure that you do like this /sponsor [name] [number] [number]");
 | 
			
		||||
							}
 | 
			
		||||
						}
 | 
			
		||||
					}else{
 | 
			
		||||
 
 | 
			
		||||
@@ -5,6 +5,7 @@ import java.util.List;
 | 
			
		||||
import org.bukkit.ChatColor;
 | 
			
		||||
import org.bukkit.entity.Player;
 | 
			
		||||
import org.bukkit.event.EventHandler;
 | 
			
		||||
import org.bukkit.event.EventPriority;
 | 
			
		||||
import org.bukkit.event.Listener;
 | 
			
		||||
import org.bukkit.event.player.PlayerTeleportEvent;
 | 
			
		||||
 | 
			
		||||
@@ -14,7 +15,7 @@ public class TeleportListener implements Listener {
 | 
			
		||||
    public TeleportListener(Main m) {
 | 
			
		||||
        this.plugin = m;
 | 
			
		||||
    }
 | 
			
		||||
    @EventHandler
 | 
			
		||||
    @EventHandler(priority = EventPriority.MONITOR)
 | 
			
		||||
    public void onTP(PlayerTeleportEvent event){
 | 
			
		||||
    	Player p = event.getPlayer();
 | 
			
		||||
    	List<String> worlds = plugin.config.getStringList("worlds");
 | 
			
		||||
@@ -22,6 +23,11 @@ public class TeleportListener implements Listener {
 | 
			
		||||
    		event.setCancelled(true);
 | 
			
		||||
    		p.sendMessage(ChatColor.RED + "You are a dead tribute... How are you supposed to get back into the arena....");
 | 
			
		||||
    		plugin.Tele.remove(p);
 | 
			
		||||
    	}else if(plugin.Tele.contains(p)){
 | 
			
		||||
    		if(event.isCancelled()){
 | 
			
		||||
    			event.setCancelled(false);
 | 
			
		||||
    			plugin.Tele.remove(p);
 | 
			
		||||
    		}
 | 
			
		||||
    	}
 | 
			
		||||
    }
 | 
			
		||||
    /*@EventHandler          Unwanted right now...
 | 
			
		||||
 
 | 
			
		||||
		Reference in New Issue
	
	Block a user