package net.minecraft.event;

import com.google.common.collect.Maps;
import java.util.Map;

public class ClickEvent
{
	private final ClickEvent.Action action;
	private final String value;
	private static final String __OBFID = "CL_00001260";

	public ClickEvent(ClickEvent.Action p_i45156_1_, String p_i45156_2_)
	{
		this.action = p_i45156_1_;
		this.value = p_i45156_2_;
	}

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

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

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

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

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

	public String toString()
	{
		return "ClickEvent{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
	{
		OPEN_URL("open_url", true),
		OPEN_FILE("open_file", false),
		RUN_COMMAND("run_command", true),
		SUGGEST_COMMAND("suggest_command", true);
		private static final Map nameMapping = Maps.newHashMap();
		private final boolean allowedInChat;
		private final String canonicalName;

		private static final String __OBFID = "CL_00001261";

		private Action(String p_i45155_3_, boolean p_i45155_4_)
		{
			this.canonicalName = p_i45155_3_;
			this.allowedInChat = p_i45155_4_;
		}

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

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

		public static ClickEvent.Action getValueByCanonicalName(String p_150672_0_)
		{
			return (ClickEvent.Action)nameMapping.get(p_150672_0_);
		}

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

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