package com.cardshifter.api.outgoing;

import com.cardshifter.api.messages.Message;
/** Communicates a usable action. */
public class UsableActionMessage extends Message {

	private int id;
	private String action;
	private boolean targetRequired;
	private int targetId;
	
	/** Constructor. (no params) */
    	public UsableActionMessage() {
		this(0, "", false, 0);
	}
	/**
	 * Constructor.
	 * <p>
	 * Used for actions where a target is required.
	 * 
	 * @param id  This entity
	 * @param action  This action
	 * @param targetRequired  Whether or not a target is required for this action
	 * @param target  The target of this action
	 */
	public UsableActionMessage(int id, String action, boolean targetRequired, int target) {
		super("useable");
		this.id = id;
		this.action = action;
		this.targetRequired = targetRequired;
		this.targetId = target;
	}
	/** 
	 * Constructor.
	 * <p>
	 * Used for actions where a target is not required.
	 * 
	 * @param entityId  This entity
	 * @param name  This action
	 * @param needsTarget  Whether of not this action needs a target
	 */
	public UsableActionMessage(int entityId, String name, boolean needsTarget) {
		this(entityId, name, needsTarget, 0);
	}
	/** @return  This action */
	public String getAction() {
		return action;
	}
	/** @return  This entity */
	public int getId() {
		return id;
	}
	/** @return  Whether or not a target is required */
	public boolean isTargetRequired() {
		return targetRequired;
	}
	/** @return  The target of this action */
	public int getTargetId() {
		return targetId;
	}
	/** @return  This message as converted to String  */
	@Override
	public String toString() {
		return "UsableActionMessage ["
				+ id=" + id 
				+ ", action=" + action
				+ ", targetRequired=" + targetRequired 
				+ ", targetId=" + targetId 
				+ "]";
	}

}

package com.cardshifter.api.outgoing;

import com.cardshifter.api.messages.Message;
/** Communicates a usable action. */
public class UsableActionMessage extends Message {

	private int id;
	private String action;
	private boolean targetRequired;
	private int targetId;
	
	/** Constructor. (no params) */
    	public UsableActionMessage() {
		this(0, "", false, 0);
	}
	/**
	 * Constructor.
	 * <p>
	 * Used for actions where a target is required.
	 * 
	 * @param id  This entity
	 * @param action  This action
	 * @param targetRequired  Whether or not a target is required for this action
	 * @param target  The target of this action
	 */
	public UsableActionMessage(int id, String action, boolean targetRequired, int target) {
		super("useable");
		this.id = id;
		this.action = action;
		this.targetRequired = targetRequired;
		this.targetId = target;
	}
	/** 
	 * Constructor.
	 * <p>
	 * Used for actions where a target is not required.
	 * 
	 * @param entityId  This entity
	 * @param name  This action
	 * @param needsTarget  Whether of not this action needs a target
	 */
	public UsableActionMessage(int entityId, String name, boolean needsTarget) {
		this(entityId, name, needsTarget, 0);
	}
	/** @return  This action */
	public String getAction() {
		return action;
	}
	/** @return  This entity */
	public int getId() {
		return id;
	}
	/** @return  Whether or not a target is required */
	public boolean isTargetRequired() {
		return targetRequired;
	}
	/** @return  The target of this action */
	public int getTargetId() {
		return targetId;
	}
	/** @return  This message as converted to String  */
	@Override
	public String toString() {
		return "UsableActionMessage ["
				+ "id=" + id 
				+ ", action=" + action
				+ ", targetRequired=" + targetRequired 
				+ ", targetId=" + targetId 
				+ "]";
	}

}

Update UsableActionMessage.java