@SuppressWarnings("unchecked")
	public void reload(){
		loadYamlFiles(true);
		poisonDuration = config.getInt(Util.concatStrings(Constants.ABILITIES_DATA, ".", Constants.POISON_DURATION));
		disorientDuration = config.getInt(Util.concatStrings(Constants.ABILITIES_DATA, ".", Constants.DISORIENT_DURATION));
		instance.getLog().info(Util.editConsole("Loading config and items..."));
		resetMaps();
		registeredItems = (ArrayList<String>)items.getList(Constants.REGISTERED_ITEMS);
		if (registeredItems.size() > 0){
			int totRegItems = reloadRegisteredItems();
			instance.getItemHandler().setItemType(itemTypeMap);
			instance.getItemHandler().setItemAbilities(itemAbilitiesMap);
			instance.getItemHandler().setItemUsePermission(itemUsePermissionMap);
			instance.getItemHandler().setItemLore(itemLoreMap);
			instance.getItemHandler().setItemColor(itemColorMap);
			instance.getItemHandler().setItemName(itemNameMap);
			instance.getItemHandler().setItemEnchantments(itemEnchantmentMap);
			// remove any that had some kind of syntax error
			for (String deleteItem : itemsToDelete){
				registeredItems.remove(deleteItem);
			}
			// work on the recipes next
			instance.getLog().info(Util.editConsole("Loading recipes..."));
			for (String itemName : registeredItems){
				processRecipe(itemName);
			}
			Server server = Bukkit.getServer();
			server.resetRecipes();
			if (recipes != null){
				for (ShapedRecipe recipe : itemRecipes){
					server.addRecipe(recipe);
				}
			}
			// add the registered items to a hash to be able to translate ItemStack obects
			// into the item name, which is what all the other hashes are keyed on
			for (String itemName : registeredItems){
				ItemStack itemStack = instance.getItemHandler().createItem(itemName);
				CustomItemStack customItemStack = new CustomItemStack(itemStack);
				itemStackName.put(customItemStack, itemName);
			}
			instance.getItemHandler().setItemStackName(itemStackName);
			
			instance.getLog().info(Util.editConsole((new StringBuilder(String.valueOf(totRegItems))).append(" items successfully registered!").toString()));
			instance.getLog().info(Util.editConsole("Config and items loaded!"));
		}
		else {
			instance.getLog().warning(Util.editConsole("There are not any registered items!"));
		}
	}