package net.minecraft.event;

import com.google.common.collect.Maps;
import java.util.Map;
import net.minecraft.util.IChatComponent;

public class HoverEvent
{
	private final HoverEvent.Action action;
	private final IChatComponent value;
	private static final String __OBFID = "CL_00001264";

	public HoverEvent(HoverEvent.Action p_i45158_1_, IChatComponent p_i45158_2_)
	{
		this.action = p_i45158_1_;
		this.value = p_i45158_2_;
	}

	public HoverEvent.Action getAction()
	{
		return this.action;
	}

	public IChatComponent getValue()
	{
		return this.value;
	}

	public boolean equals(Object par1Obj)
	{
		if (this == par1Obj)
		{
			return true;
		}
		else if (par1Obj != null && this.getClass() == par1Obj.getClass())
		{
			HoverEvent hoverevent = (HoverEvent)par1Obj;

			if (this.action != hoverevent.action)
			{
				return false;
			}
			else
			{
				if (this.value != null)
				{
					if (!this.value.equals(hoverevent.value))
					{
						return false;
					}
				}
				else if (hoverevent.value != null)
				{
					return false;
				}

				return true;
			}
		}
		else
		{
			return false;
		}
	}

	public String toString()
	{
		return "HoverEvent{action=" + this.action + ", value=\'" + this.value + '\'' + '}';
	}

	public int hashCode()
	{
		int i = this.action.hashCode();
		i = 31 * i + (this.value != null ? this.value.hashCode() : 0);
		return i;
	}

	public static enum Action
	{
		SHOW_TEXT("show_text", true),
		SHOW_ACHIEVEMENT("show_achievement", true),
		SHOW_ITEM("show_item", true);
		private static final Map nameMapping = Maps.newHashMap();
		private final boolean allowedInChat;
		private final String canonicalName;

		private static final String __OBFID = "CL_00001265";

		private Action(String p_i45157_3_, boolean p_i45157_4_)
		{
			this.canonicalName = p_i45157_3_;
			this.allowedInChat = p_i45157_4_;
		}

		public boolean shouldAllowInChat()
		{
			return this.allowedInChat;
		}

		public String getCanonicalName()
		{
			return this.canonicalName;
		}

		public static HoverEvent.Action getValueByCanonicalName(String p_150684_0_)
		{
			return (HoverEvent.Action)nameMapping.get(p_150684_0_);
		}

		static
		{
			HoverEvent.Action[] var0 = values();
			int var1 = var0.length;

			for (int var2 = 0; var2 < var1; ++var2)
			{
				HoverEvent.Action var3 = var0[var2];
				nameMapping.put(var3.getCanonicalName(), var3);
			}
		}
	}
}