Newer
Older
ultramine_bukkit / src / main / java / org / bukkit / event / player / PlayerChatTabCompleteEvent.java
@vlad20012 vlad20012 on 24 Feb 2017 1 KB initial
package org.bukkit.event.player;

import org.apache.commons.lang.Validate;
import org.bukkit.entity.Player;
import org.bukkit.event.HandlerList;

import java.util.Collection;

/**
 * Called when a player attempts to tab-complete a chat message.
 */
public class PlayerChatTabCompleteEvent extends PlayerEvent
{
	private static final HandlerList handlers = new HandlerList();
	private final String message;
	private final String lastToken;
	private final Collection<String> completions;

	public PlayerChatTabCompleteEvent(final Player who, final String message, final Collection<String> completions)
	{
		super(who);
		Validate.notNull(message, "Message cannot be null");
		Validate.notNull(completions, "Completions cannot be null");
		this.message = message;
		int i = message.lastIndexOf(' ');
		if(i < 0)
		{
			this.lastToken = message;
		}
		else
		{
			this.lastToken = message.substring(i + 1);
		}
		this.completions = completions;
	}

	/**
	 * Gets the chat message being tab-completed.
	 *
	 * @return the chat message
	 */
	public String getChatMessage()
	{
		return message;
	}

	/**
	 * Gets the last 'token' of the message being tab-completed.
	 * <p>
	 * The token is the substring starting with the character after the last
	 * space in the message.
	 *
	 * @return The last token for the chat message
	 */
	public String getLastToken()
	{
		return lastToken;
	}

	/**
	 * This is the collection of completions for this event.
	 *
	 * @return the current completions
	 */
	public Collection<String> getTabCompletions()
	{
		return completions;
	}

	@Override
	public HandlerList getHandlers()
	{
		return handlers;
	}

	public static HandlerList getHandlerList()
	{
		return handlers;
	}
}