I'm not getting the "There has been an error" message showing, and the method does not seem to be being called. This is in my Item Class. I thing it may be the getSubItems method, as I haven't overwritten it, but I'm not sure how I'm meant to do that. This is the entire class: 
 
package items.enderalchemy.apple1417.com.github;
import java.awt.List;
import cpw.mods.fml.common.registry.GameRegistry;
import enderalchemy.apple1417.com.github.EnderAlchemy;
import net.minecraft.block.material.Material;
import net.minecraft.creativetab.CreativeTabs;
import net.minecraft.entity.player.EntityPlayer;
import net.minecraft.item.Item;
import net.minecraft.item.ItemStack;
import net.minecraft.util.ChatComponentText;
import net.minecraft.util.EnumChatFormatting;
import net.minecraft.util.StatCollector;
import net.minecraft.world.World;
public class ItemCeremonyPlacer extends Item
{
public ItemCeremonyPlacer()
    {
    	this.setCreativeTab(EnderAlchemy.tabEnderAlchemy);
        this.setMaxStackSize(1);
        this.setHasSubtypes(true);
    }
public String getUnlocalizedName(ItemStack stack){
	return "item.CeremonyPlacer." + stack.getItemDamage();
}
public void addInformation(ItemStack stack, EntityPlayer player, List list, boolean par4){
	if (stack.getItemDamage() == 1)
	{
		list.add("Line 1");
		list.add("Line 2");
	}
	else if (stack.getItemDamage() == 2)
	{
		list.add("1st Line");
		list.add("2nd Line");
	}
	else
	{
		list.add("If you can see this then there has been an error");
	}
}
    public ItemStack onItemRightClick(ItemStack stack, World world, EntityPlayer player)
    {
    	if (player.isSneaking()){
    		int damage = stack.getItemDamage();
    		if (damage == 1)
    		{
    			damage=2;
    		}
    		else if (damage == 2)
    		{
    			damage=1;
    		}
    		stack.setItemDamage(damage);
    		if (!world.isRemote)
    		{
    			player.addChatMessage(new ChatComponentText(StatCollector.translateToLocal("ceremony.name")+ " " + StatCollector.translateToLocal("ceremony." + stack.getItemDamage() + ".name")));
    		}
    	}
	return stack;
    }
}