package protocolsupport.api.chat.modifiers;

import java.net.MalformedURLException;
import java.net.URL;

import protocolsupport.utils.Utils;

public class ClickAction {

	private final Type type;
	private final String value;

	public ClickAction(Type action, String value) {
		this.type = action;
		this.value = value;
	}

	public ClickAction(URL url) {
		this.type = Type.OPEN_URL;
		this.value = url.toString();
	}

	public Type getType() {
		return type;
	}

	public String getValue() {
		return value;
	}

	public URL getUrl() throws MalformedURLException {
		if (type == Type.OPEN_URL) {
			return new URL(value);
		}
		throw new IllegalStateException(type + " is not an " + Type.OPEN_URL);
	}

	@Override
	public String toString() {
		return Utils.toStringAllFields(this);
	}

	public static enum Type {
		OPEN_URL, OPEN_FILE, RUN_COMMAND, TWITCH_USER_INFO, SUGGEST_COMMAND, CHANGE_PAGE, COPY_TO_CLIPBOARD;
	}

}

package protocolsupport.api.chat.modifiers;

import java.net.MalformedURLException;
import java.net.URL;

import protocolsupport.utils.Utils;

public class ClickAction {

	private final Type type;
	private final String value;

	public ClickAction(Type action, String value) {
		this.type = action;
		this.value = value;
	}

	public ClickAction(URL url) {
		this.type = Type.OPEN_URL;
		this.value = url.toString();
	}

	public Type getType() {
		return type;
	}

	public String getValue() {
		return value;
	}

	public URL getUrl() throws MalformedURLException {
		if (type == Type.OPEN_URL) {
			return new URL(value);
		}
		throw new IllegalStateException(type + " is not an " + Type.OPEN_URL);
	}

	@Override
	public String toString() {
		return Utils.toStringAllFields(this);
	}

	public static enum Type {
		OPEN_URL, OPEN_FILE, RUN_COMMAND, TWITCH_USER_INFO, SUGGEST_COMMAND, CHANGE_PAGE;
	}

}

--- 
+++ 
@@ -41,7 +41,7 @@
 	}
 
 	public static enum Type {
-		OPEN_URL, OPEN_FILE, RUN_COMMAND, TWITCH_USER_INFO, SUGGEST_COMMAND, CHANGE_PAGE;
+		OPEN_URL, OPEN_FILE, RUN_COMMAND, TWITCH_USER_INFO, SUGGEST_COMMAND, CHANGE_PAGE, COPY_TO_CLIPBOARD;
 	}
 
 }
Add click action copy to clipboard