Newer
Older
ultramine_bukkit / src / main / java / org / bukkit / craftbukkit / command / CraftConsoleCommandSender.java
@vlad20012 vlad20012 on 24 Feb 2017 2 KB initial
package org.bukkit.craftbukkit.command;

import net.minecraft.server.MinecraftServer;
import net.minecraft.util.IChatComponent;
import org.bukkit.command.ConsoleCommandSender;
import org.bukkit.conversations.Conversation;
import org.bukkit.conversations.ConversationAbandonedEvent;
import org.bukkit.conversations.ManuallyAbandonedConversationCanceller;
import org.bukkit.craftbukkit.conversations.ConversationTracker;
import org.bukkit.craftbukkit.util.CraftChatMessage;

/**
 * Represents CLI input from a console
 */
public class CraftConsoleCommandSender extends ServerCommandSender implements ConsoleCommandSender
{

	protected final ConversationTracker conversationTracker = new ConversationTracker();

	public CraftConsoleCommandSender()
	{
		super();
	}

	public void sendMessage(String message)
	{
		sendRawMessage(message);
	}

	public void sendRawMessage(String message)
	{
//		System.out.println(ChatColor.stripColor(message));
		for(IChatComponent comp : CraftChatMessage.fromString(message))
			MinecraftServer.getServer().addChatMessage(comp);
	}

	public void sendMessage(String[] messages)
	{
		for(String message : messages)
		{
			sendMessage(message);
		}
	}

	public String getName()
	{
		return "CONSOLE";
	}

	public boolean isOp()
	{
		return true;
	}

	public void setOp(boolean value)
	{
		throw new UnsupportedOperationException("Cannot change operator status of server console");
	}

	public boolean beginConversation(Conversation conversation)
	{
		return conversationTracker.beginConversation(conversation);
	}

	public void abandonConversation(Conversation conversation)
	{
		conversationTracker.abandonConversation(conversation, new ConversationAbandonedEvent(conversation, new ManuallyAbandonedConversationCanceller()));
	}

	public void abandonConversation(Conversation conversation, ConversationAbandonedEvent details)
	{
		conversationTracker.abandonConversation(conversation, details);
	}

	public void acceptConversationInput(String input)
	{
		conversationTracker.acceptConversationInput(input);
	}

	public boolean isConversing()
	{
		return conversationTracker.isConversing();
	}
}