package com.crossge.cceconomy;
import java.util.ArrayList;
import org.bukkit.Material;
import org.bukkit.inventory.ItemStack;
public class Materials
{
ArrayLists arl = new ArrayLists();
Formatter form = new Formatter();
private static ArrayList<String> materialNames = new ArrayList<String>();
private static ArrayList<String> materialList = new ArrayList<String>();
private final int maxItems = 2366;
public Materials()
{
}
public void updateMats()
{
setMaterials();
updateFiles();
}
private void updateFiles()
{
String sell = arl.getSellFile();
String buy = arl.getBuyFile();
if(form.fileEmpty(sell))
form.writeFile(sell, materialList);
else
form.writeFile(sell, updateForNew(sell));
if(form.fileEmpty(buy))
form.writeFile(buy, materialList);
else
form.writeFile(buy, updateForNew(buy));
}
public boolean itemExists(String item)
{
if(item == null)
return false;
if(Material.getMaterial(item) == null)
return false;
return true;
}
public String findItem(String item)
{
item = item.toUpperCase().replaceAll("_", "");
String temp = null;
for(int i = 0; i < materialList.size(); i++)
{
if(materialList.get(i).split(" ")[0].equalsIgnoreCase(item))
temp = materialNames.get(i);
if(materialList.get(i).split(" ")[0].equalsIgnoreCase(item + "item") && !materialList.get(i).split(" ")[0].equalsIgnoreCase("netherbrickitem"))
{
temp = materialNames.get(i);
break;
}
}
return temp;
}
private void setMaterials()
{
for(int i = 0; i < maxItems; i++)
{
try
{
materialList.add(idToName(Material.getMaterial(i).getId()).replaceAll("_", "") + " null");
}
catch(Exception e){}
try
{
materialNames.add(idToName(Material.getMaterial(i).getId()));
}
catch(Exception e){}
}
}
private ArrayList<String> updateForNew(String file)
{
ArrayList<String> neww = new ArrayList<String>();
ArrayList<String> current = new ArrayList<String>();
form.readFile(file, current);
for(int i = 0; i < current.size(); i++)
{
current.get(i).replaceAll("_", "");
}
for(int i = 0; i < materialList.size(); i++)
{
for(int j = 0; j < current.size(); j++)
{
if(materialList.get(i).split(" ")[0].equalsIgnoreCase(current.get(j).split(" ")[0]))
{
neww.add(current.get(j));
break;
}
if(j + 1 == current.size())
neww.add(materialList.get(i));
}
}
return neww;
}
public boolean isTool(ItemStack is)
{
//Wood tools
if(is.getData().getItemType().equals(Material.WOOD_AXE))
return true;
if(is.getData().getItemType().equals(Material.WOOD_HOE))
return true;
if(is.getData().getItemType().equals(Material.WOOD_PICKAXE))
return true;
if(is.getData().getItemType().equals(Material.WOOD_SWORD))
return true;
if(is.getData().getItemType().equals(Material.WOOD_SPADE))
return true;
//Stone tools
if(is.getData().getItemType().equals(Material.STONE_AXE))
return true;
if(is.getData().getItemType().equals(Material.STONE_HOE))
return true;
if(is.getData().getItemType().equals(Material.STONE_PICKAXE))
return true;
if(is.getData().getItemType().equals(Material.STONE_SWORD))
return true;
if(is.getData().getItemType().equals(Material.STONE_SPADE))
return true;
//Iron tools
if(is.getData().getItemType().equals(Material.IRON_AXE))
return true;
if(is.getData().getItemType().equals(Material.IRON_HOE))
return true;
if(is.getData().getItemType().equals(Material.IRON_PICKAXE))
return true;
if(is.getData().getItemType().equals(Material.IRON_SWORD))
return true;
if(is.getData().getItemType().equals(Material.IRON_SPADE))
return true;
//Gold tools
if(is.getData().getItemType().equals(Material.GOLD_AXE))
return true;
if(is.getData().getItemType().equals(Material.GOLD_HOE))
return true;
if(is.getData().getItemType().equals(Material.GOLD_PICKAXE))
return true;
if(is.getData().getItemType().equals(Material.GOLD_SWORD))
return true;
if(is.getData().getItemType().equals(Material.GOLD_SPADE))
return true;
//Diamond tools
if(is.getData().getItemType().equals(Material.DIAMOND_AXE))
return true;
if(is.getData().getItemType().equals(Material.DIAMOND_HOE))
return true;
if(is.getData().getItemType().equals(Material.DIAMOND_PICKAXE))
return true;
if(is.getData().getItemType().equals(Material.DIAMOND_SWORD))
return true;
if(is.getData().getItemType().equals(Material.DIAMOND_SPADE))
return true;
//Leather Armor
if(is.getData().getItemType().equals(Material.LEATHER_BOOTS))
return true;
if(is.getData().getItemType().equals(Material.LEATHER_CHESTPLATE))
return true;
if(is.getData().getItemType().equals(Material.LEATHER_HELMET))
return true;
if(is.getData().getItemType().equals(Material.LEATHER_LEGGINGS))
return true;
//Chainmail Armor
if(is.getData().getItemType().equals(Material.CHAINMAIL_BOOTS))
return true;
if(is.getData().getItemType().equals(Material.CHAINMAIL_CHESTPLATE))
return true;
if(is.getData().getItemType().equals(Material.CHAINMAIL_HELMET))
return true;
if(is.getData().getItemType().equals(Material.CHAINMAIL_LEGGINGS))
return true;
//Iron Armor
if(is.getData().getItemType().equals(Material.IRON_BOOTS))
return true;
if(is.getData().getItemType().equals(Material.IRON_CHESTPLATE))
return true;
if(is.getData().getItemType().equals(Material.IRON_HELMET))
return true;
if(is.getData().getItemType().equals(Material.IRON_LEGGINGS))
return true;
//Gold Armor
if(is.getData().getItemType().equals(Material.GOLD_BOOTS))
return true;
if(is.getData().getItemType().equals(Material.GOLD_CHESTPLATE))
return true;
if(is.getData().getItemType().equals(Material.GOLD_HELMET))
return true;
if(is.getData().getItemType().equals(Material.GOLD_LEGGINGS))
return true;
//Diamond Armor
if(is.getData().getItemType().equals(Material.DIAMOND_BOOTS))
return true;
if(is.getData().getItemType().equals(Material.DIAMOND_CHESTPLATE))
return true;
if(is.getData().getItemType().equals(Material.DIAMOND_HELMET))
return true;
if(is.getData().getItemType().equals(Material.DIAMOND_LEGGINGS))
return true;
//Other
if(is.getData().getItemType().equals(Material.ANVIL))
return true;
if(is.getData().getItemType().equals(Material.CARROT_STICK))
return true;
if(is.getData().getItemType().equals(Material.FISHING_ROD))
return true;
if(is.getData().getItemType().equals(Material.FLINT_AND_STEEL))
return true;
if(is.getData().getItemType().equals(Material.SHEARS))
return true;
if(is.getData().getItemType().equals(Material.BOW))
return true;
return false;
}
public String idToName(int id)
{
return Material.getMaterial(id).name();
}
}