gt: 			if(i >= percentChance.size())
context: package com.crossge.hungergames;
  
  import java.io.File;
  import java.io.IOException;
  import java.util.ArrayList;
  import java.util.List;
  import java.util.Random;
  import org.bukkit.Bukkit;
  import org.bukkit.Material;
  import org.bukkit.World;
  import org.bukkit.WorldCreator;
  import org.bukkit.block.Block;
  import org.bukkit.block.Chest;
  import org.bukkit.configuration.file.YamlConfiguration;
  import org.bukkit.entity.Entity;
  import org.bukkit.entity.Item;
  import org.bukkit.inventory.Inventory;
  import org.bukkit.inventory.ItemStack;
  
  public class ChestRandomizer
  {
  	Game g = new Game();
  	private static File customConfigFile = new File("plugins/Hunger Games", "spawns.yml");
  	private static YamlConfiguration customConfig = YamlConfiguration.loadConfiguration(customConfigFile);
  	private static File customConfigFileChest = new File("plugins/Hunger Games", "chests.yml");
  	private static YamlConfiguration customConfigChest = YamlConfiguration.loadConfiguration(customConfigFileChest);
  	private static File customConfFile = new File("plugins/Hunger Games", "config.yml");
  	private static YamlConfiguration customConf = YamlConfiguration.loadConfiguration(customConfFile);
  	private static File customConfFileLocs = new File("plugins/Hunger Games", "chestlocs.yml");
  	private static YamlConfiguration customConfLocs = YamlConfiguration.loadConfiguration(customConfFileLocs);
  	private static ArrayList<Integer> blockIds = new ArrayList<Integer>();
  	private static ArrayList<Double> percentChance = new ArrayList<Double>();
  	private static ArrayList<Short> damageValue = new ArrayList<Short>();
  	private static ArrayList<Integer> chestSpots = new ArrayList<Integer>();
  	
  	public int chestIdLocation()
      {
  		Random r = new Random();
          int temp = r.nextInt(1000);//Gives a number to find the random.
          double totalPercent = 0;
          for(int x = 0; x < blockIds.size(); x++)//Runs through 5 times, 5 items.
          {
          	totalPercent = totalPercent + percentChance.get(x);//Calculates for total percentage of all items up to the current item.
              if(temp < 10*totalPercent && temp > 10*totalPercent - 10*percentChance.get(x))
                  return x;
          }
          return -1;
      }
  	
  	public void randomizeChests()
  	{
  		setLists();
  		String world = g.getNext();
  		if(world == null)
  			return; //No chest locations set yet
  		World w = Bukkit.getWorld(world);
  		int chestNum = 0;
  		int x, y, z, chestAmount, loc, mat;
  		short data;
  		for(String path : customConfLocs.getKeys(true))
  		{
  			if(path.toUpperCase().startsWith(world.toUpperCase()))
  			{
  				x = customConfLocs.getInt(world + ".c" + Integer.toString(chestNum) + ".x");
  				y = customConfLocs.getInt(world + ".c" + Integer.toString(chestNum) + ".y");
  				z = customConfLocs.getInt(world + ".c" + Integer.toString(chestNum) + ".z");
  				Block b = w.getBlockAt(x, y, z);
  				if(b.getState()  instanceof Chest)
  				{
  					resetSpots();
  					Chest c = (Chest) b.getState();
  					Inventory inv = c.getBlockInventory();
  					if(inv != null)
  						for(int i = 0; i < 27; i++)
  							inv.setItem(i, new ItemStack(Material.AIR, 1));
  					chestAmount = items();
  					if(inv != null)
  						for(int i = 0; i < chestAmount; i++)
  						{
  							loc = chestIdLocation();
  							mat = 0;
  							data = 0;
  							if(loc != -1)
  							{
  								mat = blockIds.get(loc);
  								data = damageValue.get(loc);
  							}
  							inv.setItem(chestLoc(), new ItemStack(Material.getMaterial(mat), 1, data));
  						}
  				}
  				chestNum++;
  			}
  		}
  	}
  	
  	public void chests(String world)
  	{
  		int x1 = customConfig.getInt(world + ".corner1.x");
  		int y1 = customConfig.getInt(world + ".corner1.y");
  		int z1 = customConfig.getInt(world + ".corner1.z");
  		int x2 = customConfig.getInt(world + ".corner2.x");
  		int y2 = customConfig.getInt(world + ".corner2.y");
  		int z2 = customConfig.getInt(world + ".corner2.z");
  		int temp;
  		if(x1 < x2)
  		{
  			temp = x2;
  			x2 = x1;
  			x1 = temp;
  		}
  		if(y1 < y2)
  		{
  			temp = y2;
  			y2 = y1;
  			y1 = temp;
  		}
  		if(z1 < z2)
  		{
  			temp = z2;
  			z2 = z1;
  			z1 = temp;
  		}
  		World w = Bukkit.getWorld(world);
  		customConfLocs.set(world, null);
  		int chestNum = 0;
  		for(int x = x2; x <= x1; x++)
  			for(int y = y2; y <= y1; y++)
  				for(int z = z2; z <= z1; z++)
  				{
  					Block b = w.getBlockAt(x, y, z);
  					if(b.getState()  instanceof Chest)
  					{
  						customConfLocs.set(world + ".c" + Integer.toString(chestNum) + ".x", x);
  						customConfLocs.set(world + ".c" + Integer.toString(chestNum) + ".y", y);
  						customConfLocs.set(world + ".c" + Integer.toString(chestNum) + ".z", z);
  						chestNum++;
  					}
  				}
  		try
  	   	{
  			customConfLocs.save(customConfFileLocs);
  		}
  	   	catch (IOException e) {}
  	}
  	
  	public void emptyChests()
  	{
  		setLists();
  		String world = g.getNext();
  		if(world == null)
  			return; //No chest locations set yet
  		int x1 = customConfig.getInt(world + ".corner1.x");
  		int y1 = customConfig.getInt(world + ".corner1.y");
  		int z1 = customConfig.getInt(world + ".corner1.z");
  		int x2 = customConfig.getInt(world + ".corner2.x");
  		int y2 = customConfig.getInt(world + ".corner2.y");
  		int z2 = customConfig.getInt(world + ".corner2.z");
  		int temp;
  		if(x1 < x2)
  		{
  			temp = x2;
  			x2 = x1;
  			x1 = temp;
  		}
  		if(y1 < y2)
  		{
  			temp = y2;
  			y2 = y1;
  			y1 = temp;
  		}
  		if(z1 < z2)
  		{
  			temp = z2;
  			z2 = z1;
  			z1 = temp;
  		}
  		World w = Bukkit.getWorld(world);
  		if(w == null)
  		{
  			Bukkit.createWorld(new WorldCreator(world));
  			w = Bukkit.getWorld(world);
  		}
  		int chestNum = 0;
  		int x, y, z;
  		for(String path : customConfLocs.getKeys(true))
  		{
  			if(path.toUpperCase().startsWith(world.toUpperCase()))
  			{
  				x = customConfLocs.getInt(world + ".c" + Integer.toString(chestNum) + ".x");
  				y = customConfLocs.getInt(world + ".c" + Integer.toString(chestNum) + ".y");
  				z = customConfLocs.getInt(world + ".c" + Integer.toString(chestNum) + ".z");
  				Block b = w.getBlockAt(x, y, z);
  				if(b.getState() instanceof Chest)
  				{
  					Chest c = (Chest) b.getState();
  					Inventory inv = c.getBlockInventory();
  					if(inv != null)
  						for(int i = 0; i < 27; i++)
  							inv.setItem(i, new ItemStack(Material.AIR, 1));
  				}
  				chestNum++;
  			}
  		}
          List<Entity> entList = w.getEntities();
          for(Entity current : entList)
              if (current instanceof Item && (current.getLocation().getBlockX() >= x2 && current.getLocation().getBlockX() <= x1
              							&& current.getLocation().getBlockZ() >= z2 && current.getLocation().getBlockZ() <= z1))
              	current.remove();
  	}
  	
  	private void resetSpots()
  	{
  		chestSpots.clear();
  		for(int i = 0; i < 27; i++)
  			chestSpots.add(i);
  	}
  	
  	private int chestLoc()
  	{
  		Random r = new Random();
  		int temp = r.nextInt(chestSpots.size());
  		int ret = chestSpots.get(temp);
  		chestSpots.remove(temp);
  		return ret;
  	}
  	
  	private int items()
  	{
  		Random r = new Random();
  		int min = customConf.getInt("minPerChest");
  		int max = customConf.getInt("maxPerChest");
  		if(min >= max)
  			return max;
  		int temp = r.nextInt(max) + 1;
  		while(min > temp)
  			temp = r.nextInt(max) + 1;
  		return temp;
  	}
  	
  	private void balance()
  	{
  		double total = 0;
  		for(double d : percentChance)
  			total += d;			
  		if(total == 0)
  			return;
  		for(int i = 0; i < percentChance.size(); i++)
  			percentChance.set(i, percentChance.get(i)*100/total);
  		int i = 0;
  		for(String path : customConfigChest.getKeys(false))
  		{
  