PageRenderTime 122ms CodeModel.GetById 42ms app.highlight 68ms RepoModel.GetById 1ms app.codeStats 0ms

/src/com/aehdev/commandshops/Search.java

https://github.com/aeheathc/CommandShops
Java | 527 lines | 506 code | 12 blank | 9 comment | 9 complexity | f3614105836cc49c0fdb0103792c2c57 MD5 | raw file
  1package com.aehdev.commandshops;
  2
  3import java.io.File;
  4import java.io.FileWriter;
  5import java.io.IOException;
  6import java.lang.reflect.Field;
  7import java.util.ArrayList;
  8import java.util.List;
  9import java.util.Locale;
 10import java.util.logging.Logger;
 11
 12import org.bukkit.configuration.ConfigurationSection;
 13import org.bukkit.configuration.file.FileConfiguration;
 14import org.bukkit.configuration.file.YamlConfiguration;
 15import org.bukkit.inventory.ItemStack;
 16import org.bukkit.Material;
 17
 18import com.google.common.collect.HashBiMap;
 19
 20/**
 21 * Provides a search engine for items.
 22 */
 23public class Search
 24{
 25	/** Table of information about all items we can deal in. */
 26	private static ArrayList<ItemInfo> items = new ArrayList<ItemInfo>(600);
 27	
 28	/** Map of Materials known by Bukkit, indexed by their ID.
 29	 * This is built by using reflection to get the real id of each material despite it being set private.
 30	 * We need this because it will be the only way to convert between numeric ID and Material once bukkit removes the normal methods to do this (morons).
 31	 * Note that Materials do not correlate to items, only to IDs. Different items with the same id but different sub-id have the same Material.*/
 32	public static final HashBiMap<Integer,Material> materials = HashBiMap.create();
 33	
 34	static{
 35		Field enumId = null;
 36		try{
 37			enumId = Material.class.getDeclaredField("id");
 38			enumId.setAccessible(true);
 39			for(Material mat : Material.values()) 
 40			{
 41				int id = (int)enumId.get(mat);
 42				materials.put(id, mat);
 43			}
 44		}catch(NoSuchFieldException | SecurityException | IllegalArgumentException | IllegalAccessException e){
 45			materials.clear();
 46			Logger log = Logger.getLogger("Minecraft");
 47			log.severe(String.format((Locale)null, "[%s] Error using reflection to get material IDs. CS will not be able to even start up. Exception: %s", CommandShops.pdfFile.getName(), e.toString()));
 48		}
 49	}
 50	
 51	public static void reload(CommandShops plugin)
 52	{
 53		Logger log = Logger.getLogger("Minecraft");
 54		if(!items.isEmpty()) items.clear();
 55		File itemsyml = new File(plugin.getDataFolder(), "items.yml");
 56		if(itemsyml.exists() && Config.CUSTOM_ITEMS)
 57		{
 58			FileConfiguration custom = YamlConfiguration.loadConfiguration(itemsyml);
 59			ConfigurationSection data = custom.getConfigurationSection("items");
 60			if(data == null)
 61			{
 62				log.info(String.format((Locale)null,
 63						"[%s] Custom items enabled, but nothing found in items.yml",
 64						CommandShops.pdfFile.getName()));
 65			}else{
 66				for(String key : data.getKeys(false))
 67				{
 68					String[] locText = key.split(",");
 69					int id =  Integer.parseInt(locText[1]);
 70					short subtype =  Short.parseShort(locText[2]);
 71					String name = data.getString(key + ".name");
 72					ArrayList<String> wordforms = new ArrayList<String>(); 
 73					for(Object o : data.getList(key + ".wordforms"))
 74					{
 75						wordforms.add(o.toString());
 76					}
 77					String[][] dictionary = new String[wordforms.size()][];
 78					int index = -1;
 79					for(String form : wordforms) dictionary[++index] = form.split(" ");
 80					items.add(new ItemInfo(name,dictionary, id, subtype));
 81				}
 82				log.info(String.format((Locale)null,
 83						"[%s] Loaded custom item set from items.yml",
 84						CommandShops.pdfFile.getName()));
 85				return;
 86				
 87			}
 88		}
 89		
 90		
 91		
 92		//name,												search,									   					typeId,  subTypeId    	
 93		items.add(new ItemInfo("Stone",						new String[][] {{"stone"}},										1,	 (short) 0  ));
 94		items.add(new ItemInfo("Granite",					new String[][] {{"grani"}},										1,	 (short) 1  ));
 95		items.add(new ItemInfo("Polished Granite",			new String[][] {{"grani","pol"}},								1,	 (short) 2  ));
 96		items.add(new ItemInfo("Diorite",					new String[][] {{"dior"}},										1,	 (short) 3  ));
 97		items.add(new ItemInfo("Polished Diorite",			new String[][] {{"dior","pol"}},								1,	 (short) 4  ));
 98		items.add(new ItemInfo("Andesite",					new String[][] {{"andes"}},										1,	 (short) 5  ));
 99		items.add(new ItemInfo("Polished Andesite",			new String[][] {{"andes","pol"}},								1,	 (short) 6  ));
100		items.add(new ItemInfo("Grass",						new String[][] {{"gras"}},										2,	 (short) 0  ));
101		items.add(new ItemInfo("Dirt",						new String[][] {{"dirt"}},										3,	 (short) 0  ));
102		items.add(new ItemInfo("Grassless Dirt",			new String[][] {{"grassless"}},									3,	 (short) 1  ));
103		items.add(new ItemInfo("Podzol",					new String[][] {{"podz"}},										3,	 (short) 2  ));
104		items.add(new ItemInfo("Cobblestone",				new String[][] {{"cobb","sto"},{"cobb"}},						4,	 (short) 0  ));
105		items.add(new ItemInfo("Oak Planks",				new String[][] {{"plank"},{"plank","oak"}},						5,	 (short) 0  ));
106		items.add(new ItemInfo("Spruce Planks",				new String[][] {{"plank","spr"}},								5,	 (short) 1  ));
107		items.add(new ItemInfo("Birch Planks",				new String[][] {{"plank","birch"}},								5,	 (short) 2  ));
108		items.add(new ItemInfo("Jungle Planks",				new String[][] {{"plank","jung"}},								5,	 (short) 3  ));
109		items.add(new ItemInfo("Acacia Planks",				new String[][] {{"plank","aca"}},								5,	 (short) 4  ));
110		items.add(new ItemInfo("Dark Oak Planks",			new String[][] {{"plank","dark"},{"plank","dark","oak"}},		5,	 (short) 5  ));
111		items.add(new ItemInfo("Oak Sapling",				new String[][] {{"sapling"},{"sapling","oak"}},					6,	 (short) 0  ));
112		items.add(new ItemInfo("Spruce Sapling",			new String[][] {{"sapling","spr"}},								6,	 (short) 1  ));
113		items.add(new ItemInfo("Birch Sapling",				new String[][] {{"sapling","birch"}},							6,	 (short) 2  ));
114		items.add(new ItemInfo("Jungle Sapling",			new String[][] {{"sapling","jung"}},							6,	 (short) 3  ));
115		items.add(new ItemInfo("Acacia Sapling",			new String[][] {{"sapling","aca"}},								6,	 (short) 4  ));
116		items.add(new ItemInfo("Dark Oak Sapling",			new String[][] {{"sapling","dark"},{"sapling","dark","oak"}},	6,	 (short) 5  ));
117		items.add(new ItemInfo("Bedrock",					new String[][] {{"rock"}},										7,	 (short) 0  ));
118		items.add(new ItemInfo("Water Block",				new String[][] {{"water","blo"}},								9,	 (short) 0  ));
119		items.add(new ItemInfo("Lava Block",				new String[][] {{"lava","blo"}},								11,  (short) 0  ));
120		items.add(new ItemInfo("Sand",						new String[][] {{"sand"}},										12,  (short) 0  ));
121		items.add(new ItemInfo("Red Sand",					new String[][] {{"red","sand"}},								12,  (short) 1  ));
122		items.add(new ItemInfo("Gravel",					new String[][] {{"gravel"}},									13,  (short) 0  ));
123		items.add(new ItemInfo("Gold Ore",					new String[][] {{"ore","gold"}},								14,  (short) 0  ));
124		items.add(new ItemInfo("Iron Ore",					new String[][] {{"ore","iron"}},								15,  (short) 0  ));
125		items.add(new ItemInfo("Coal Ore",					new String[][] {{"ore","coal"}},								16,  (short) 0  ));
126		items.add(new ItemInfo("Oak Log",					new String[][] {{"log"},{"log","oak"}},							17,  (short) 0  ));
127		items.add(new ItemInfo("Spruce Log",				new String[][] {{"log","spr"}},									17,  (short) 1  ));
128		items.add(new ItemInfo("Birch Log",					new String[][] {{"log","birch"}},								17,  (short) 2  ));
129		items.add(new ItemInfo("Jungle Log",				new String[][] {{"log","jung"}},								17,  (short) 3  ));
130		items.add(new ItemInfo("Oak Leaves Block",			new String[][] {{"blo","lea"},{"blo","leaves","oak"}},			18,  (short) 0  ));
131		items.add(new ItemInfo("Spruce Leaves Block",		new String[][] {{"blo","lea","spr"}},							18,  (short) 1  ));
132		items.add(new ItemInfo("Birch Leaves Block",		new String[][] {{"blo","lea","birch"}},							18,  (short) 2  ));
133		items.add(new ItemInfo("Jungle Leaves Block",		new String[][] {{"blo","lea","jung"}},							18,  (short) 3  ));
134		items.add(new ItemInfo("Oak Leaves",				new String[][] {{"lea"},{"lea","oak"}},							18,  (short) 4  ));
135		items.add(new ItemInfo("Spruce Leaves",				new String[][] {{"lea","spr"}},									18,  (short) 5  ));
136		items.add(new ItemInfo("Birch Leaves",				new String[][] {{"lea","birch"}},								18,  (short) 6  ));
137		items.add(new ItemInfo("Jungle Leaves",				new String[][] {{"lea","jung"}},								18,  (short) 7  ));
138		items.add(new ItemInfo("Sponge",					new String[][] {{"sponge"}},									19,  (short) 0  ));
139		items.add(new ItemInfo("Glass",						new String[][] {{"glas"}},										20,  (short) 0  ));
140		items.add(new ItemInfo("Lapis Lazuli Ore",			new String[][] {{"lapis","ore"}},								21,  (short) 0  ));
141		items.add(new ItemInfo("Lapis Lazuli Block",		new String[][] {{"lapis","bl"}},								22,  (short) 0  ));
142		items.add(new ItemInfo("Dispenser",					new String[][] {{"dispen"},{"dis","pen"}},						23,  (short) 0  ));
143		items.add(new ItemInfo("Sandstone",					new String[][] {{"sand","st"}},									24,  (short) 0  ));
144		items.add(new ItemInfo("Chiseled Sandstone",		new String[][] {{"sand","st","chi"}},							24,  (short) 1  ));
145		items.add(new ItemInfo("Smooth Sandstone",			new String[][] {{"sand","st","smo"}},							24,  (short) 2  ));
146		items.add(new ItemInfo("Note Block",				new String[][] {{"note"}},										25,  (short) 0  ));
147		items.add(new ItemInfo("Powered Rail",				new String[][] {{"rail","pow"},{"trac","pow"},{"boost"}},		27,  (short) 0  ));
148		items.add(new ItemInfo("Detector Rail",				new String[][] {{"rail","det"},{"trac","det"},{"detec"}},		28,  (short) 0  ));
149		items.add(new ItemInfo("Sticky Piston Block",		new String[][] {{"blo","sticky"},{"blo","sticky","pist"}},		29,  (short) 0  ));
150		items.add(new ItemInfo("Sticky Piston",				new String[][] {{"sticky"},{"sticky","pist"}},					29,  (short) 7  ));
151		items.add(new ItemInfo("Cobweb",					new String[][] {{"web"},{"cobweb"}},							30,  (short) 0  ));
152		items.add(new ItemInfo("Dead Shrub",				new String[][] {{"dead","shrub"}},								31,  (short) 0  ));
153		items.add(new ItemInfo("Tall Grass",				new String[][] {{"tall","gras"}},								31,  (short) 1  ));
154		items.add(new ItemInfo("Fern",						new String[][] {{"fern"}},										31,  (short) 2  ));
155		items.add(new ItemInfo("Shrub",						new String[][] {{"shrub"}},										31,  (short) 3  ));
156		items.add(new ItemInfo("Dead Bush",					new String[][] {{"dead","bush"}},								32,  (short) 0  ));
157		items.add(new ItemInfo("Piston Block",				new String[][] {{"blo","pist"}},								33,  (short) 0  ));
158		items.add(new ItemInfo("Piston",					new String[][] {{"pist"}},										33,  (short) 7  ));
159		items.add(new ItemInfo("White Wool",				new String[][] {{"wool","whit"},{"wool"}},						35,  (short) 0  ));
160		items.add(new ItemInfo("Orange Wool",				new String[][] {{"wool","ora"}},								35,  (short) 1  ));
161		items.add(new ItemInfo("Magenta Wool",				new String[][] {{"wool","mag"}},								35,  (short) 2  ));
162		items.add(new ItemInfo("Light Blue Wool",			new String[][] {{"wool","lig","blue"}},							35,  (short) 3  ));
163		items.add(new ItemInfo("Yellow Wool",				new String[][] {{"wool","yell"}},								35,  (short) 4  ));
164		items.add(new ItemInfo("Lime Wool",					new String[][] {{"wool","lime"}},								35,  (short) 5  ));
165		items.add(new ItemInfo("Pink Wool",					new String[][] {{"wool","pink"}},								35,  (short) 6  ));
166		items.add(new ItemInfo("Gray Wool",					new String[][] {{"wool","gray"},{"wool","grey"}},				35,  (short) 7  ));
167		items.add(new ItemInfo("Light Gray Wool",			new String[][] {{"lig","wool","gra"},{"lig","wool","gre"}},		35,  (short) 8  ));
168		items.add(new ItemInfo("Cyan Wool",					new String[][] {{"wool","cya"}},								35,  (short) 9  ));
169		items.add(new ItemInfo("Purple Wool",				new String[][] {{"wool","pur"}},								35,  (short) 10 ));
170		items.add(new ItemInfo("Blue Wool",					new String[][] {{"wool","blue"}},								35,  (short) 11 ));
171		items.add(new ItemInfo("Brown Wool",				new String[][] {{"wool","brow"}},								35,  (short) 12 ));
172		items.add(new ItemInfo("Green Wool",				new String[][] {{"wool","gree"}},								35,  (short) 13 ));
173		items.add(new ItemInfo("Red Wool",					new String[][] {{"wool","red"}},								35,  (short) 14 ));
174		items.add(new ItemInfo("Black Wool",				new String[][] {{"wool","bla"}},								35,  (short) 15 ));
175		items.add(new ItemInfo("Dandelion",					new String[][] {{"flow","yell"},{"dande"}},						37,  (short) 0  ));
176		items.add(new ItemInfo("Poppy",						new String[][] {{"rose"},{"poppy"}},							38,  (short) 0  ));
177		items.add(new ItemInfo("Blue Orchid",				new String[][] {{"orchid"}},									38,  (short) 1  ));
178		items.add(new ItemInfo("Allium",					new String[][] {{"alli"}},										38,  (short) 2  ));
179		items.add(new ItemInfo("Azure Bluet",				new String[][] {{"bluet"}},										38,  (short) 3  ));
180		items.add(new ItemInfo("Red Tulip",					new String[][] {{"tulip","red"}},								38,  (short) 4  ));
181		items.add(new ItemInfo("Orange Tulip",				new String[][] {{"tulip","ora"}},								38,  (short) 5  ));
182		items.add(new ItemInfo("White Tulip",				new String[][] {{"tulip","whi"}},								38,  (short) 6  ));
183		items.add(new ItemInfo("Pink Tulip",				new String[][] {{"tulip","pin"}},								38,  (short) 7  ));
184		items.add(new ItemInfo("Oxeye Daisy",				new String[][] {{"daisy"}},										38,  (short) 8  ));
185		items.add(new ItemInfo("Brown Mushroom",			new String[][] {{"mush","bro"}},								39,  (short) 0  ));
186		items.add(new ItemInfo("Red Mushroom",				new String[][] {{"mush","red"}},								40,  (short) 0  ));
187		items.add(new ItemInfo("Gold Block",				new String[][] {{"gold","bl"}},									41,  (short) 0  ));
188		items.add(new ItemInfo("Iron Block",				new String[][] {{"iron","bl"}},									42,  (short) 0  ));
189		items.add(new ItemInfo("Double Stone Slab",			new String[][] {{"dou","slab"},{"dou","slab","sto"}},			43,  (short) 0  ));
190		items.add(new ItemInfo("Double Sandstone Slab",		new String[][] {{"dou","slab","sand","sto"}},					43,  (short) 1  ));
191		items.add(new ItemInfo("Double Wooden Stone Slab",	new String[][] {{"dou","slab","sto","wood"}},					43,  (short) 2  ));
192		items.add(new ItemInfo("Double Cobblestone Slab",	new String[][] {{"dou","slab","cob","sto"},{"dou","slab","cob"}},43, (short) 3  ));
193		items.add(new ItemInfo("Double Clay Brick Slab",	new String[][] {{"dou","slab","bric","clay"}},					43,  (short) 4  ));
194		items.add(new ItemInfo("Double Stone Brick Slab",	new String[][] {{"dou","slab","bric","sto"}},					43,  (short) 5  ));
195		items.add(new ItemInfo("Double Nether Brick Slab",	new String[][] {{"dou","slab","bric","neth"}},					43,  (short) 6  ));
196		items.add(new ItemInfo("Double Quartz Slab",		new String[][] {{"dou","slab","quar"}},							43,  (short) 7  ));
197		items.add(new ItemInfo("Double Smooth Stone Slab",	new String[][] {{"dou","slab","smo","sto"}},					43,  (short) 8  ));
198		items.add(new ItemInfo("Double Smooth Sandstone Slab",new String[][]{{"dou","slab","sand","smo"}},					43,  (short) 9  ));
199		items.add(new ItemInfo("Stone Slab",				new String[][] {{"slab","sto"}},								44,  (short) 0  ));
200		items.add(new ItemInfo("Sandstone Slab",			new String[][] {{"slab","sand","sto"}},							44,  (short) 1  ));
201		items.add(new ItemInfo("Wooden Stone Slab",			new String[][] {{"slab","wood"},{"slab","sto","wood"}},			44,  (short) 2  ));
202		items.add(new ItemInfo("Cobblestone Slab",			new String[][] {{"slab","cob","sto"},{"slab","cob"}},			44,  (short) 3  ));
203		items.add(new ItemInfo("Clay Brick Slab",			new String[][] {{"slab","bric","clay"}},						44,  (short) 4  ));
204		items.add(new ItemInfo("Stone Brick Slab",			new String[][] {{"slab","bric","sto"}},							44,  (short) 5  ));
205		items.add(new ItemInfo("Nether Brick Slab",			new String[][] {{"slab","bric","neth"}},						44,  (short) 6  ));
206		items.add(new ItemInfo("Quartz Slab",				new String[][] {{"slab","quar"}},								44,  (short) 7  ));
207		items.add(new ItemInfo("Clay Brick Block",			new String[][] {{"clay","bric","bloc"}},						45,  (short) 0  ));
208		items.add(new ItemInfo("TNT",						new String[][] {{"tnt"}},										46,  (short) 0  ));
209		items.add(new ItemInfo("Bookshelf",					new String[][] {{"bookshe"},{"book","she"}},					47,  (short) 0  ));
210		items.add(new ItemInfo("Moss Stone",				new String[][] {{"moss","sto"},{"moss","cob"},{"moss"}},		48,  (short) 0  ));
211		items.add(new ItemInfo("Obsidian",					new String[][] {{"obsi"}},										49,  (short) 0  ));
212		items.add(new ItemInfo("Torch",						new String[][] {{"torc"}},										50,  (short) 0  ));
213		items.add(new ItemInfo("Fire",						new String[][] {{"fire"}},										51,  (short) 0  ));
214		items.add(new ItemInfo("Monster Spawner",			new String[][] {{"spawn"}},										52,  (short) 0  ));
215		items.add(new ItemInfo("Oak Stairs",				new String[][] {{"stair","wood"},{"stair","oak"}},				53,  (short) 0  ));
216		items.add(new ItemInfo("Chest",						new String[][] {{"chest"}},										54,  (short) 0  ));
217		items.add(new ItemInfo("Diamond Ore",				new String[][] {{"ore","diam"}},								56,  (short) 0  ));
218		items.add(new ItemInfo("Diamond Block",				new String[][] {{"diam","bl"}},									57,  (short) 0  ));
219		items.add(new ItemInfo("Crafting Table",			new String[][] {{"benc"},{"craft"}},							58,  (short) 0  ));
220		items.add(new ItemInfo("Farmland",					new String[][] {{"farm"}},										60,  (short) 0  ));
221		items.add(new ItemInfo("Furnace",					new String[][] {{"furna"}},										61,  (short) 0  ));
222		items.add(new ItemInfo("Ladder",					new String[][] {{"ladd"}},										65,  (short) 0  ));
223		items.add(new ItemInfo("Rail",						new String[][] {{"rail"}},										66,  (short) 0  ));
224		items.add(new ItemInfo("Cobblestone Stairs",		new String[][] {{"stair","cob","sto"},{"stair","cob"}},			67,  (short) 0  ));
225		items.add(new ItemInfo("Lever",						new String[][] {{"lever"},{"switc"}},							69,  (short) 0  ));
226		items.add(new ItemInfo("Stone Pressure Plate",		new String[][] {{"pres","plat","ston"}},						70,  (short) 0  ));
227		items.add(new ItemInfo("Wooden Pressure Plate",		new String[][] {{"pres","plat","wood"}},						72,  (short) 0  ));
228		items.add(new ItemInfo("Redstone Ore",				new String[][] {{"ore","red"}},									73,  (short) 0  ));
229		items.add(new ItemInfo("Redstone Torch",			new String[][] {{"torc","red"},{"torc","rs"}},					76,  (short) 0  ));
230		items.add(new ItemInfo("Stone Button",				new String[][] {{"stone","button"},{"button"}},					77,  (short) 0  ));
231		items.add(new ItemInfo("Snow",						new String[][] {{"snow"}},										78,  (short) 0  ));
232		items.add(new ItemInfo("Ice",						new String[][] {{"ice"}},										79,  (short) 0  ));
233		items.add(new ItemInfo("Snow Block",				new String[][] {{"snow","blo"}},								80,  (short) 0  ));
234		items.add(new ItemInfo("Cactus",					new String[][] {{"cact"}},										81,  (short) 0  ));
235		items.add(new ItemInfo("Clay Block",				new String[][] {{"clay","blo"}},								82,  (short) 0  ));
236		items.add(new ItemInfo("Jukebox",					new String[][] {{"jukeb"}},										84,  (short) 0  ));
237		items.add(new ItemInfo("Fence",						new String[][] {{"fence"}},										85,  (short) 0  ));
238		items.add(new ItemInfo("Pumpkin",					new String[][] {{"pump"}},										86,  (short) 0  ));
239		items.add(new ItemInfo("Netherrack",				new String[][] {{"netherr"}},									87,  (short) 0  ));
240		items.add(new ItemInfo("Soul Sand",					new String[][] {{"soul","sand"},{"soul"}},						88,  (short) 0  ));
241		items.add(new ItemInfo("Glowstone Block",			new String[][] {{"glow","stone"},{"glow","block"}},				89,  (short) 0  ));
242		items.add(new ItemInfo("Jack-O-Lantern",			new String[][] {{"jack"},{"lante"}},							91,  (short) 0  ));
243		items.add(new ItemInfo("White Stained Glass",		new String[][] {{"whit","glass"},{"stain","glass"}},			95,  (short) 0  ));
244		items.add(new ItemInfo("Orange Stained Glass",		new String[][] {{"orang","glass"}},								95,  (short) 1  ));
245		items.add(new ItemInfo("Magenta Stained Glass",		new String[][] {{"mage","glass"}},								95,  (short) 2  ));
246		items.add(new ItemInfo("Light Blue Stained Glass",	new String[][] {{"lig","blu","glass"}},							95,  (short) 3  ));
247		items.add(new ItemInfo("Yellow Stained Glass",		new String[][] {{"yello","glass"}},								95,  (short) 4  ));
248		items.add(new ItemInfo("Lime Stained Glass",		new String[][] {{"lime","glass"}},								95,  (short) 5  ));
249		items.add(new ItemInfo("Pink Stained Glass",		new String[][] {{"pink","glass"}},								95,  (short) 6  ));
250		items.add(new ItemInfo("Gray Stained Glass",		new String[][] {{"gray","glass"},{"grey","glass"}},				95,  (short) 7  ));
251		items.add(new ItemInfo("Light Gray Stained Glass",	new String[][] {{"lig","gray","glass"},{"lig","grey","glass"}},	95,  (short) 8  ));
252		items.add(new ItemInfo("Cyan Stained Glass",		new String[][] {{"cyan","glass"}},								95,  (short) 9  ));
253		items.add(new ItemInfo("Purple Stained Glass",		new String[][] {{"purp","glass"}},								95,  (short) 10 ));
254		items.add(new ItemInfo("Blue Stained Glass",		new String[][] {{"blu","glass"}},								95,  (short) 11 ));
255		items.add(new ItemInfo("Brown Stained Glass",		new String[][] {{"brow","glass"}},								95,  (short) 12 ));
256		items.add(new ItemInfo("Green Stained Glass",		new String[][] {{"gree","glass"}},								95,  (short) 13 ));
257		items.add(new ItemInfo("Red Stained Glass",			new String[][] {{"red","glass"}},								95,  (short) 14 ));
258		items.add(new ItemInfo("Black Stained Glass",		new String[][] {{"blac","glass"}},								95,  (short) 15 ));
259		items.add(new ItemInfo("Trapdoor",					new String[][] {{"trap","door"},{"hatch"}},						96,  (short) 0  ));
260		items.add(new ItemInfo("Silverfish Stone",			new String[][] {{"silver","ston"}},								97,  (short) 0  ));
261		items.add(new ItemInfo("Silverfish Cobblestone",	new String[][] {{"silver","cob"},{"silver","cob","ston"}},		97,  (short) 1  ));
262		items.add(new ItemInfo("Silverfish Stone Brick",	new String[][] {{"silver","bric"},{"silver","ston","bric"}},	97,  (short) 2  ));
263		items.add(new ItemInfo("Silverfish Mossy Stone Brick",new String[][]{{"silver","moss"}},							97,  (short) 3  ));
264		items.add(new ItemInfo("Silverfish Cracked Stone Brick",new String[][]{{"silver","crack"}},							97,  (short) 4  ));
265		items.add(new ItemInfo("Silverfish Chisled Stone Brick",new String[][]{{"silver","chis"}},							97,  (short) 5  ));
266		items.add(new ItemInfo("Stone Brick Block",			new String[][] {{"ston","bric","bloc"}},						98,  (short) 0  ));
267		items.add(new ItemInfo("Mossy Stone Brick Block",	new String[][] {{"ston","bric","moss","bloc"}},					98,  (short) 1  ));
268		items.add(new ItemInfo("Cracked Stone Brick Block",	new String[][] {{"ston","bric","cra"}},							98,  (short) 2  ));
269		items.add(new ItemInfo("Chiseled Stone Brick Block",new String[][] {{"ston","bric","chi"}},							98,  (short) 3  ));
270		items.add(new ItemInfo("Huge Brown Mushroom",		new String[][] {{"huge","bro","mush"}},							99,  (short) 0  ));
271		items.add(new ItemInfo("Huge Red Mushroom",			new String[][] {{"huge","red","mush"}},							100, (short) 0  ));
272		items.add(new ItemInfo("Iron Bars",					new String[][] {{"iron","bar"}},								101, (short) 0  ));
273		items.add(new ItemInfo("Glass Pane",				new String[][] {{"glas","pan"}},								102, (short) 0  ));
274		items.add(new ItemInfo("Melon",						new String[][] {{"melo"}},										103, (short) 0  ));
275		items.add(new ItemInfo("Vines",						new String[][] {{"vine"}},										106, (short) 0  ));
276		items.add(new ItemInfo("Fence Gate",				new String[][] {{"fence","gate"},{"gate"}},						107, (short) 0  ));
277		items.add(new ItemInfo("Clay Brick Stairs",			new String[][] {{"clay","bric","stair"}},						108, (short) 0  ));
278		items.add(new ItemInfo("Stone Brick Stairs",		new String[][] {{"ston","bric","stair"}},						109, (short) 0  ));
279		items.add(new ItemInfo("Mycelium",					new String[][] {{"myce"}},										110, (short) 0  ));
280		items.add(new ItemInfo("Lily Pad",					new String[][] {{"lily"}},										111, (short) 0  ));
281		items.add(new ItemInfo("Nether Brick Block",		new String[][] {{"bric","nether","bloc"}},						112, (short) 0  ));
282		items.add(new ItemInfo("Nether Brick Fence",		new String[][] {{"fen","bric","nether"}},						113, (short) 0  ));
283		items.add(new ItemInfo("Nether Brick Stairs",		new String[][] {{"stair","bric","nether"}},						114, (short) 0  ));
284		items.add(new ItemInfo("Enchantment Table", 		new String[][] {{"encha"}},										116, (short) 0  ));
285		items.add(new ItemInfo("End Portal Frame",			new String[][] {{"end","fra"}},									120, (short) 0  ));
286		items.add(new ItemInfo("End Stone", 				new String[][] {{"end","sto"}},									121, (short) 0  ));
287		items.add(new ItemInfo("Dragon Egg", 				new String[][] {{"drag"}},										122, (short) 0  ));
288		items.add(new ItemInfo("Redstone Lamp",				new String[][] {{"lamp"},{"red","lamp"}},						123, (short) 0  ));
289		items.add(new ItemInfo("Oak Double Slab",			new String[][] {{"oak","dou","slab"},{"wood","dou","slab"}},	125, (short) 0  ));
290		items.add(new ItemInfo("Spruce Double Slab",		new String[][] {{"spr","dou","slab"}},							125, (short) 1  ));
291		items.add(new ItemInfo("Birch Double Slab",			new String[][] {{"birch","dou","slab"}},						125, (short) 2  ));
292		items.add(new ItemInfo("Jungle Double Slab",		new String[][] {{"jung","dou","slab"}},							125, (short) 3  ));
293		items.add(new ItemInfo("Acacia Double Slab",		new String[][] {{"aca","dou","slab"}},							125, (short) 4  ));
294		items.add(new ItemInfo("Dark Oak Double Slab",		new String[][] {{"dark","dou","slab"},{"dark","oak","dou","slab"}},125,(short)5 ));
295		items.add(new ItemInfo("Oak Slab",					new String[][] {{"oak","slab"}},								126, (short) 0  ));
296		items.add(new ItemInfo("Spruce Slab",				new String[][] {{"spr","slab"}},								126, (short) 1  ));
297		items.add(new ItemInfo("Birch Slab",				new String[][] {{"birch","slab"}},								126, (short) 2  ));
298		items.add(new ItemInfo("Jungle Slab",				new String[][] {{"jung","slab"}},								126, (short) 3  ));
299		items.add(new ItemInfo("Acacia Slab",				new String[][] {{"aca","slab"}},								126, (short) 4  ));
300		items.add(new ItemInfo("Dark Oak Slab",				new String[][] {{"dark","slab"},{"dark","oak","slab"}},			126, (short) 5  ));
301		items.add(new ItemInfo("Cocoa Plant",				new String[][] {{"coco","pla"}},								127, (short) 0  ));
302		items.add(new ItemInfo("Sandstone Stairs",			new String[][] {{"sand","stair"}},								128, (short) 0  ));
303		items.add(new ItemInfo("Emerald Ore",				new String[][] {{"emer","ore"}},								129, (short) 0  ));
304		items.add(new ItemInfo("Ender Chest",				new String[][] {{"end","chest"}},								130, (short) 0  ));
305		items.add(new ItemInfo("Tripwire Hook",				new String[][] {{"trip","hook"}},								131, (short) 0  ));
306		items.add(new ItemInfo("Emerald Block",				new String[][] {{"emer","blo"}},								133, (short) 0  ));
307		items.add(new ItemInfo("Spruce Stairs",				new String[][] {{"spr","stair"}},								134, (short) 0  ));
308		items.add(new ItemInfo("Birch Stairs",				new String[][] {{"birch","stair"}},								135, (short) 0  ));
309		items.add(new ItemInfo("Jungle Stairs",				new String[][] {{"jung","stair"}},								136, (short) 0  ));
310		items.add(new ItemInfo("Command Block",				new String[][] {{"comma","blo"}},								137, (short) 0  ));
311		items.add(new ItemInfo("Beacon",					new String[][] {{"beaco"}},										138, (short) 0  ));
312		items.add(new ItemInfo("Cobblestone Wall",			new String[][] {{"cob","fence"},{"cob","wall"}},				139, (short) 0  ));
313		items.add(new ItemInfo("Moss Stone Wall",			new String[][] {{"moss","fence"},{"moss","wall"}},				139, (short) 1  ));
314		items.add(new ItemInfo("Wooden Button",				new String[][] {{"wood","button"}},								143, (short) 0  ));
315		items.add(new ItemInfo("Anvil",						new String[][] {{"anvi"}},										145, (short) 0  ));
316		items.add(new ItemInfo("Trapped Chest",				new String[][] {{"trap","ches"}},								146, (short) 0  ));
317		items.add(new ItemInfo("Light Weighted Pressure Plate",new String[][]{{"light","plate"}},							147, (short) 0  ));
318		items.add(new ItemInfo("Heavy Weighted Pressure Plate",new String[][]{{"heavy","plate"}},							148, (short) 0  ));
319		items.add(new ItemInfo("Daylight Sensor",			new String[][] {{"ligh","sens"}},								151, (short) 0  ));
320		items.add(new ItemInfo("Redstone Block",			new String[][] {{"reds","bloc"}},								152, (short) 0  ));
321		items.add(new ItemInfo("Nether Quartz Ore",			new String[][] {{"quar","ore"}},								153, (short) 0  ));
322		items.add(new ItemInfo("Hopper",					new String[][] {{"hopp"}},										154, (short) 0  ));
323		items.add(new ItemInfo("Quartz Block",				new String[][] {{"quart","bloc"}},								155, (short) 0  ));
324		items.add(new ItemInfo("Chiseled Quartz Block",		new String[][] {{"chis","quart","bloc"}},						155, (short) 1  ));
325		items.add(new ItemInfo("Pillar Quartz Block",		new String[][] {{"pilla","quart","bloc"}},						155, (short) 2  ));
326		items.add(new ItemInfo("Quartz Stairs",				new String[][] {{"quart","stai"}},								156, (short) 0  ));
327		items.add(new ItemInfo("Activator Rail",			new String[][] {{"acti","rail"}},								157, (short) 0  ));
328		items.add(new ItemInfo("Dropper",					new String[][] {{"dropp"}},										158, (short) 0  ));
329		items.add(new ItemInfo("White Stained Clay",		new String[][] {{"clay","whit"}},								159, (short) 0  ));
330		items.add(new ItemInfo("Orange Stained Clay",		new String[][] {{"clay","ora"}},								159, (short) 1  ));
331		items.add(new ItemInfo("Magenta Stained Clay",		new String[][] {{"clay","mag"}},								159, (short) 2  ));
332		items.add(new ItemInfo("Light Blue Stained Clay",	new String[][] {{"clay","lig","blue"}},							159, (short) 3  ));
333		items.add(new ItemInfo("Yellow Stained Clay",		new String[][] {{"clay","yell"}},								159, (short) 4  ));
334		items.add(new ItemInfo("Lime Stained Clay",			new String[][] {{"clay","lime"}},								159, (short) 5  ));
335		items.add(new ItemInfo("Pink Stained Clay",			new String[][] {{"clay","pink"}},								159, (short) 6  ));
336		items.add(new ItemInfo("Gray Stained Clay",			new String[][] {{"clay","gray"},{"clay","grey"}},				159, (short) 7  ));
337		items.add(new ItemInfo("Light Gray Stained Clay",	new String[][] {{"clay","gray","lig"},{"clay","grey","lig"}},	159, (short) 8  ));
338		items.add(new ItemInfo("Cyan Stained Clay",			new String[][] {{"clay","cya"}},								159, (short) 9  ));
339		items.add(new ItemInfo("Purple Stained Clay",		new String[][] {{"clay","pur"}},								159, (short) 10 ));
340		items.add(new ItemInfo("Blue Stained Clay",			new String[][] {{"clay","blue"}},								159, (short) 11 ));
341		items.add(new ItemInfo("Brown Stained Clay",		new String[][] {{"clay","brow"}},								159, (short) 12 ));
342		items.add(new ItemInfo("Green Stained Clay",		new String[][] {{"clay","gree"}},								159, (short) 13 ));
343		items.add(new ItemInfo("Red Stained Clay",			new String[][] {{"clay","red"}},								159, (short) 14 ));
344		items.add(new ItemInfo("Black Stained Clay",		new String[][] {{"clay","bla"}},								159, (short) 15 ));
345		items.add(new ItemInfo("White Stained Glass Pane",	new String[][] {{"pane","whit"}},								160, (short) 0  ));
346		items.add(new ItemInfo("Orange Stained Glass Pane",	new String[][] {{"pane","oran"}},								160, (short) 1  ));
347		items.add(new ItemInfo("Magenta Stained Glass Pane",new String[][] {{"pane","magen"}},								160, (short) 2  ));
348		items.add(new ItemInfo("Light Blue Stained Glass Pane",new String[][]{{"pane","lig","blu"}},						160, (short) 3  ));
349		items.add(new ItemInfo("Yellow Stained Glass Pane",	new String[][] {{"pane","yello"}},								160, (short) 4  ));
350		items.add(new ItemInfo("Lime Stained Glass Pane",	new String[][] {{"pane","lime"}},								160, (short) 5  ));
351		items.add(new ItemInfo("Pink Stained Glass Pane",	new String[][] {{"pane","pink"}},								160, (short) 6  ));
352		items.add(new ItemInfo("Gray Stained Glass Pane",	new String[][] {{"pane","gray"},{"pane","grey"}},				160, (short) 7  ));
353		items.add(new ItemInfo("Light Gray Stained Glass Pane",new String[][]{{"pane","lig","gray"},{"pane","lig","grey"}},	160, (short) 8  ));
354		items.add(new ItemInfo("Cyan Stained Glass Pane",	new String[][] {{"pane","cyan"}},								160, (short) 9  ));
355		items.add(new ItemInfo("Purple Stained Glass Pane",	new String[][] {{"pane","purp"}},								160, (short) 10 ));
356		items.add(new ItemInfo("Blue Stained Glass Pane",	new String[][] {{"pane","blu"}},								160, (short) 11 ));
357		items.add(new ItemInfo("Brown Stained Glass Pane",	new String[][] {{"pane","brow"}},								160, (short) 12 ));
358		items.add(new ItemInfo("Green Stained Glass Pane",	new String[][] {{"pane","gree"}},								160, (short) 13 ));
359		items.add(new ItemInfo("Red Stained Glass Pane",	new String[][] {{"pane","red"}},								160, (short) 14 ));
360		items.add(new ItemInfo("Black Stained Glass Pane",	new String[][] {{"pane","blac"}},								160, (short) 15 ));
361		items.add(new ItemInfo("Acacia Leaves",				new String[][] {{"lea","aca"}},									161, (short) 0  ));
362		items.add(new ItemInfo("Dark Oak Leaves",			new String[][] {{"lea","dark"},{"lea","dark","oak"}},			161, (short) 1  ));
363		items.add(new ItemInfo("Acacia Log",				new String[][] {{"log","aca"}},									162, (short) 0  ));
364		items.add(new ItemInfo("Dark Oak Log",				new String[][] {{"log","dark"},{"log","dark","oak"}},			162, (short) 1  ));
365		items.add(new ItemInfo("Acacia Stairs",				new String[][] {{"stair","aca"}},								163, (short) 0  ));
366		items.add(new ItemInfo("Dark Oak Stairs",			new String[][] {{"stair","dark"},{"stair","dark","oak"}},		164, (short) 0  ));
367		items.add(new ItemInfo("Slime Block",				new String[][] {{"slime","bloc"}},								165, (short) 0  ));
368		items.add(new ItemInfo("Barrier",					new String[][] {{"bar","rier"}},								166, (short) 0  ));
369		items.add(new ItemInfo("Iron Trapdoor",				new String[][] {{"iron","trap","door"},{"iron","hatch"}},		167, (short) 0  ));
370		items.add(new ItemInfo("Hay Block",					new String[][] {{"hay"}},										170, (short) 0  ));
371		items.add(new ItemInfo("White Carpet",				new String[][] {{"carp","whit"}},								171, (short) 0  ));
372		items.add(new ItemInfo("Orange Carpet",				new String[][] {{"carp","ora"}},								171, (short) 1  ));
373		items.add(new ItemInfo("Magenta Carpet",			new String[][] {{"carp","mag"}},								171, (short) 2  ));
374		items.add(new ItemInfo("Light Blue Carpet",			new String[][] {{"carp","lig","blue"}},							171, (short) 3  ));
375		items.add(new ItemInfo("Yellow Carpet",				new String[][] {{"carp","yell"}},								171, (short) 4  ));
376		items.add(new ItemInfo("Lime Carpet",				new String[][] {{"carp","lime"}},								171, (short) 5  ));
377		items.add(new ItemInfo("Pink Carpet",				new String[][] {{"carp","pink"}},								171, (short) 6  ));
378		items.add(new ItemInfo("Gray Carpet",				new String[][] {{"carp","gray"},{"carp","grey"}},				171, (short) 7  ));
379		items.add(new ItemInfo("Light Gray Carpet",			new String[][] {{"carp","gray","lig"},{"carp","grey","lig"}},	171, (short) 8  ));
380		items.add(new ItemInfo("Cyan Carpet",				new String[][] {{"carp","cya"}},								171, (short) 9  ));
381		items.add(new ItemInfo("Purple Carpet",				new String[][] {{"carp","pur"}},								171, (short) 10 ));
382		items.add(new ItemInfo("Blue Carpet",				new String[][] {{"carp","blue"}},								171, (short) 11 ));
383		items.add(new ItemInfo("Brown Carpet",				new String[][] {{"carp","brow"}},								171, (short) 12 ));
384		items.add(new ItemInfo("Green Carpet",				new String[][] {{"carp","gree"}},								171, (short) 13 ));
385		items.add(new ItemInfo("Red Carpet",				new String[][] {{"carp","red"}},								171, (short) 14 ));
386		items.add(new ItemInfo("Black Carpet",				new String[][] {{"carp","bla"}},								171, (short) 15 ));
387		items.add(new ItemInfo("Hardened Clay",				new String[][] {{"hard","clay"}},								172, (short) 0  ));
388		items.add(new ItemInfo("Coal Block",				new String[][] {{"coal","bl"}},									173, (short) 0  ));
389		items.add(new ItemInfo("Packed Ice",				new String[][] {{"pack","ice"}},								174, (short) 0  ));
390		items.add(new ItemInfo("Sunflower",					new String[][] {{"sun","flower"}},								175, (short) 0  ));
391		items.add(new ItemInfo("Lilac",						new String[][] {{"lilac"}},										175, (short) 1  ));
392		items.add(new ItemInfo("Double Tallgrass",			new String[][] {{"dou","grass"}},								175, (short) 2  ));
393		items.add(new ItemInfo("Large Fern",				new String[][] {{"large","fern"}},								175, (short) 3  ));
394		items.add(new ItemInfo("Rose Bush",					new String[][] {{"rose","bush"}},								175, (short) 4  ));
395		items.add(new ItemInfo("Peony",						new String[][] {{"peony"}},										175, (short) 5  ));
396		
397		items.add(new ItemInfo("Iron Shovel",				new String[][] {{"shov","ir"}},									256, (short) 0  ));
398		items.add(new ItemInfo("Iron Pickaxe",				new String[][] {{"pick","ir"},{"pick","axe","ir"}},				257, (short) 0  ));
399		items.add(new ItemInfo("Iron Axe",					new String[][] {{"axe","ir"}},									258, (short) 0  ));
400		items.add(new ItemInfo("Flint and Steel",			new String[][] {{"flin","ste"}},								259, (short) 0  ));
401		items.add(new ItemInfo("Red Apple",					new String[][] {{"appl"},{"red","appl"}},						260, (short) 0  ));
402		items.add(new ItemInfo("Bow",						new String[][] {{"bow"}},										261, (short) 0  ));
403		items.add(new ItemInfo("Arrow",						new String[][] {{"arrow"}},										262, (short) 0  ));
404		items.add(new ItemInfo("Coal",						new String[][] {{"coal"}},										263, (short) 0  ));
405		items.add(new ItemInfo("Charcoal",					new String[][] {{"char","coal"},{"char"}},						263, (short) 1  ));
406		items.add(new ItemInfo("Diamond",					new String[][] {{"diamo"}},										264, (short) 0  ));
407		items.add(new ItemInfo("Iron Ingot",				new String[][] {{"ingo","ir"},{"iron"}},						265, (short) 0  ));
408		items.add(new ItemInfo("Gold Ingot",				new String[][] {{"ingo","go"},{"gold"}},						266, (short) 0  ));
409		items.add(new ItemInfo("Iron Sword",				new String[][] {{"swor","ir"}},									267, (short) 0  ));
410		items.add(new ItemInfo("Wooden Sword",				new String[][] {{"swor","woo"}},								268, (short) 0  ));
411		items.add(new ItemInfo("Wooden Shovel",				new String[][] {{"shov","wo"}},									269, (short) 0  ));
412		items.add(new ItemInfo("Wooden Pickaxe",			new String[][] {{"pick","woo"},{"pick","axe","woo"}},			270, (short) 0  ));
413		items.add(new ItemInfo("Wooden Axe",				new String[][] {{"axe","woo"}},									271, (short) 0  ));
414		items.add(new ItemInfo("Stone Sword",				new String[][] {{"swor","sto"}},								272, (short) 0  ));
415		items.add(new ItemInfo("Stone Shovel",				new String[][] {{"shov","sto"}},								273, (short) 0  ));
416		items.add(new ItemInfo("Stone Pickaxe",				new String[][] {{"pick","sto"},{"pick","axe","sto"}},			274, (short) 0  ));
417		items.add(new ItemInfo("Stone Axe",					new String[][] {{"axe","sto"}},									275, (short) 0  ));
418		items.add(new ItemInfo("Diamond Sword",				new String[][] {{"swor","dia"}},								276, (short) 0  ));
419		items.add(new ItemInfo("Diamond Shovel",			new String[][] {{"shov","dia"}},								277, (short) 0  ));
420		items.add(new ItemInfo("Diamond Pickaxe",			new String[][] {{"pick","dia"},{"pick","axe","dia"}},			278, (short) 0  ));
421		items.add(new ItemInfo("Diamond Axe",				new String[][] {{"axe","dia"}},									279, (short) 0  ));
422		items.add(new ItemInfo("Stick",						new String[][] {{"stic"}},										280, (short) 0  ));
423		items.add(new ItemInfo("Bowl",						new String[][] {{"bowl","bo","wl"}},							281, (short) 0  ));
424		items.add(new ItemInfo("Mushroom Stew",				new String[][] {{"stew"}},										282, (short) 0  ));
425		items.add(new ItemInfo("Gold Sword",				new String[][] {{"swor","gol"}},								283, (short) 0  ));
426		items.add(new ItemInfo("Gold Shovel",				new String[][] {{"shov","gol"}},								284, (short) 0  ));
427		items.add(new ItemInfo("Gold Pickaxe",				new String[][] {{"pick","gol"},{"pick","axe","gol"}},			285, (short) 0  ));
428		items.add(new ItemInfo("Gold Axe",					new String[][] {{"axe","gol"}},									286, (short) 0  ));
429		items.add(new ItemInfo("String",					new String[][] {{"stri"}},										287, (short) 0  ));
430		items.add(new ItemInfo("Feather",					new String[][] {{"feat"}},										288, (short) 0  ));
431		items.add(new ItemInfo("Gunpowder",					new String[][] {{"gun"},{"sulph"}},								289, (short) 0  ));
432		items.add(new ItemInfo("Wooden Hoe",				new String[][] {{"hoe","wo"}},									290, (short) 0  ));
433		items.add(new ItemInfo("Stone Hoe",					new String[][] {{"hoe","sto"}},									291, (short) 0  ));
434		items.add(new ItemInfo("Iron Hoe",					new String[][] {{"hoe","iro"}},									292, (short) 0  ));
435		items.add(new ItemInfo("Diamond Hoe",				new String[][] {{"hoe","dia"}},									293, (short) 0  ));
436		items.add(new ItemInfo("Gold Hoe",					new String[][] {{"hoe","go"}},									294, (short) 0  ));
437		items.add(new ItemInfo("Seeds",						new String[][] {{"seed"}},										295, (short) 0  ));
438		items.add(new ItemInfo("Wheat",						new String[][] {{"whea"}},										296, (short) 0  ));
439		items.add(new ItemInfo("Bread",						new String[][] {{"brea"}},										297, (short) 0  ));
440		items.add(new ItemInfo("Leather Cap",				new String[][] {{"cap","lea"},{"helm","lea"}},					298, (short) 0  ));
441		items.add(new ItemInfo("Leather Tunic",				new String[][] {{"tun","lea"},{"ches","lea"}},					299, (short) 0  ));
442		items.add(new ItemInfo("Leather Pants",				new String[][] {{"pan","lea"},{"leg","lea"}},					300, (short) 0  ));
443		items.add(new ItemInfo("Leather Boots",				new String[][] {{"boo","lea"}},									301, (short) 0  ));
444		items.add(new ItemInfo("Chain Helmet",				new String[][] {{"cap","cha"},{"helm","cha"}},					302, (short) 0  ));
445		items.add(new ItemInfo("Chain Chestplate",			new String[][] {{"tun","cha"},{"ches","cha"}},					303, (short) 0  ));
446		items.add(new ItemInfo("Chain Leggings",			new String[][] {{"pan","cha"},{"leg","cha"}},					304, (short) 0  ));
447		items.add(new ItemInfo("Chain Boots",				new String[][] {{"boo","cha"}},									305, (short) 0  ));
448		items.add(new ItemInfo("Iron Helmet",				new String[][] {{"cap","ir"},{"helm","ir"}},					306, (short) 0  ));
449		items.add(new ItemInfo("Iron Chestplate",			new String[][] {{"tun","ir"},{"ches","ir"}},					307, (short) 0  ));
450		items.add(new ItemInfo("Iron Leggings",				new String[][] {{"pan","ir"},{"leg","ir"}},						308, (short) 0  ));
451		items.add(new ItemInfo("Iron Boots",				new String[][] {{"boo","ir"}},									309, (short) 0  ));
452		items.add(new ItemInfo("Diamond Helmet",			new String[][] {{"cap","dia"},{"helm","dia"}},					310, (short) 0  ));
453		items.add(new ItemInfo("Diamond Chestplate",		new String[][] {{"tun","dia"},{"ches","dia"}},					311, (short) 0  ));
454		items.add(new ItemInfo("Diamond Leggings",			new String[][] {{"pan","dia"},{"leg","dia"}},					312, (short) 0  ));
455		items.add(new ItemInfo("Diamond Boots",				new String[][] {{"boo","dia"}},									313, (short) 0  ));
456		items.add(new ItemInfo("Gold Helmet",				new String[][] {{"cap","go"},{"helm","go"}},					314, (short) 0  ));
457		items.add(new ItemInfo("Gold Chestplate",			new String[][] {{"tun","go"},{"ches","go"}},					315, (short) 0  ));
458		items.add(new ItemInfo("Gold Leggings",				new String[][] {{"pan","go"},{"leg","go"}},						316, (short) 0  ));
459		items.add(new ItemInfo("Gold Boots",				new String[][] {{"boo","go"}},									317, (short) 0  ));
460		items.add(new ItemInfo("Flint",						new String[][] {{"flin"}},										318, (short) 0  ));
461		items.add(new ItemInfo("Raw Porkchop",				new String[][] {{"raw","pork"}},								319, (short) 0  ));
462		items.add(new ItemInfo("Cooked Porkchop",			new String[][] {{"cook","pork"}},								320, (short) 0  ));
463		items.add(new ItemInfo("Painting",					new String[][] {{"painting"}},									321, (short) 0  ));
464		items.add(new ItemInfo("Golden Apple",				new String[][] {{"appl","go"}},									322, (short) 0  ));
465		items.add(new ItemInfo("Enchanted Golden Apple",	new String[][] {{"appl","go","ench"}},							322, (short) 1  ));
466		items.add(new ItemInfo("Sign",						new String[][] {{"sign"}},										323, (short) 0  ));
467		items.add(new ItemInfo("Wooden Door",				new String[][] {{"door","wood"},{"door"}},						324, (short) 0  ));
468		items.add(new ItemInfo("Bucket",					new String[][] {{"buck"}},										325, (short) 0  ));
469		items.add(new ItemInfo("Water Bucket",				new String[][] {{"water","buck"}},								326, (short) 0  ));
470		items.add(new ItemInfo("Lava Bucket",				new String[][] {{"lava","buck"}},								327, (short) 0  ));
471		items.add(new ItemInfo("Minecart",					new String[][] {{"cart"}},										328, (short) 0  ));
472		items.add(new ItemInfo("Saddle",					new String[][] {{"sadd"}},										329, (short) 0  ));
473		items.add(new ItemInfo("Iron Door",					new String[][] {{"door","iron"}},								330, (short) 0  ));
474		items.add(new ItemInfo("Redstone Dust",				new String[][] {{"red","ston"}},								331, (short) 0  ));
475		items.add(new ItemInfo("Snowball",					new String[][] {{"snow","ball"}},								332, (short) 0  ));
476		items.add(new ItemInfo("Boat",						new String[][] {{"boat"}},										333, (short) 0  ));
477		items.add(new ItemInfo("Leather",					new String[][] {{"lea","the"}},									334, (short) 0  ));
478		items.add(new ItemInfo("Milk Bucket",				new String[][] {{"milk"}},										335, (short) 0  ));
479		items.add(new ItemInfo("Clay Brick",				new String[][] {{"bric","cla"}},								336, (short) 0  ));
480		items.add(new ItemInfo("Clay",						new String[][] {{"clay"}},										337, (short) 0  ));
481		items.add(new ItemInfo("Sugar Cane",				new String[][] {{"cane"}},										338, (short) 0  ));
482		items.add(new ItemInfo("Paper",						new String[][] {{"pape"}},										339, (short) 0  ));
483		items.add(new ItemInfo("Book",						new String[][] {{"book"}},										340, (short) 0  ));
484		items.add(new ItemInfo("Slimeball",					new String[][] {{"slime"}},										341, (short) 0  ));
485		items.add(new ItemInfo("Minecart with Chest",		new String[][] {{"cart","sto"},{"cart","che"}},					342, (short) 0  ));
486		items.add(new ItemInfo("Minecart with Furnace",		new String[][] {{"cart","pow"},{"cart","furn"}},				343, (short) 0  ));
487		items.add(new ItemInfo("Egg",						new String[][] {{"egg"}},										344, (short) 0  ));
488		items.add(new ItemInfo("Compass",					new String[][] {{"comp"}},										345, (short) 0  ));
489		items.add(new ItemInfo("Fishing Rod",				new String[][] {{"fish","rod"},{"fish","pole"}},				346, (short) 0  ));
490		items.add(new ItemInfo("Clock",						new String[][] {{"cloc"},{"watc"}},								347, (short) 0  ));
491		items.add(new ItemInfo("Glowstone Dust",			new String[][] {{"glow","sto","dus"},{"glow","dus"}},			348, (short) 0  ));
492		items.add(new ItemInfo("Raw Fish",					new String[][] {{"fish"},{"raw","fish"}},						349, (short) 0  ));
493		items.add(new ItemInfo("Raw Salmon",				new String[][] {{"salmo"},{"raw","salmo"}},						349, (short) 1  ));
494		items.add(new ItemInfo("Clownfish",					new String[][] {{"clown","fish"},{"clown"}},					349, (short) 2  ));
495		items.add(new ItemInfo("Pufferfish",				new String[][] {{"puff"},{"puff","fish"}},						349, (short) 3  ));
496		items.add(new ItemInfo("Cooked Fish",				new String[][] {{"fish","coo"}},								350, (short) 0  ));
497		items.add(new ItemInfo("Cooked Salmon",				new String[][] {{"salmo","coo"}},								350, (short) 1  ));
498		items.add(new ItemInfo("Ink Sac",					new String[][] {{"dye","bla"},	{"ink"}},						351, (short) 0  ));
499		items.add(new ItemInfo("Rose Red",					new String[][] {{"dye","red"},	{"rose","red"}},				351, (short) 1  ));
500		items.add(new ItemInfo("Cactus Green",				new String[][] {{"dye","gree"},	{"cact","gree"}},				351, (short) 2  ));
501		items.add(new ItemInfo("Cocoa Beans",				new String[][] {{"dye","bro"},	{"bean"},{"choco"},{"coco"}},	351, (short) 3  ));
502		items.add(new ItemInfo("Lapis Lazuli",				new String[][] {{"dye","blu"},	{"lapis"}},						351, (short) 4  ));
503		items.add(new ItemInfo("Purple Dye",				new String[][] {{"dye","pur"}},									351, (short) 5  ));
504		items.add(new ItemInfo("Cyan Dye",					new String[][] {{"dye","cya"}},									351, (short) 6  ));
505		items.add(new ItemInfo("Light Gray Dye",			new String[][] {{"dye","lig","gra"},{"dye","lig","grey"}},		351, (short) 7  ));
506		items.add(new ItemInfo("Gray Dye",					new String[][] {{"dye","gra"},{"dye","grey"}},					351, (short) 8  ));
507		items.add(new ItemInfo("Pink Dye",					new String[][] {{"dye","pin"}},									351, (short) 9  ));
508		items.add(new ItemInfo("Lime Dye",					new String[][] {{"dye","lim"},{"dye","lig","gree"}},			351, (short) 10 ));
509		items.add(new ItemInfo("Dandelion Yellow",			new String[][] {{"dye","yel"},	{"dand","yel"}},				351, (short) 11 ));
510		items.add(new ItemInfo("Light Blue Dye",			new String[][] {{"dye","lig","blu"}},							351, (short) 12 ));
511		items.add(new ItemInfo("Magenta Dye",				new String[][] {{"dye","mag"}},									351, (short) 13 ));
512		items.add(new ItemInfo("Orange Dye",				new String[][] {{"dye","ora"}},									351, (short) 14 ));
513		items.add(new ItemInfo("Bone Meal",					new String[][] {{"dye","whi"},	{"bonem"},{"bone","me"}},		351, (short) 15 ));
514		items.add(new ItemInfo("Bone",						new String[][] {{"bone"}},										352, (short) 0  ));
515		items.add(new ItemInfo("Sugar",						new String[][] {{"suga"}},										353, (short) 0  ));
516		items.add(new ItemInfo("Cake",						new String[][] {{"cake"}},										354, (short) 0  ));
517		items.add(new ItemInfo("Bed",						new String[][] {{"bed"}},										355, (short) 0  ));
518		items.add(new ItemInfo("Redstone Repeater",			new String[][] {{"rep"},{"rep","red"},{"rep","ston","red"}},	356, (short) 0  ));
519		items.add(new ItemInfo("Cookie",					new String[][] {{"cooki"}},										357, (short) 0  ));
520		items.add(new ItemInfo("Map",						new String[][] {{"map"}},										358, (short) 0  ));
521		items.add(new ItemInfo("Shears",					new String[][] {{"shear"}},										359, (short) 0  ));
522		items.add(new ItemInfo("Melon Slice",				new String[][] {{"melo","sli"}},								360, (short) 0  ));
523		items.add(new ItemInfo("Pumpkin Seeds",				new String[][] {{"pump","seed"}},								361, (short) 0  ));
524		items.add(new ItemInfo("Melon Seeds",				new String[][] {{"melo","seed"}},								362, (short) 0  ));
525		items.add(new ItemInfo("Raw Beef",					new String[][] {{"beef","raw"},{"beef"}},						363, (short) 0  ));
526		items.add(new ItemInfo("Steak",						new String[][] {{"beef","cook"},{"steak"}},						364, (short) 0  ));
527		items.add(new ItemInfo("Raw Chic