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();
}
}