package net.aufdemrand.denizen.utilities;
import org.bukkit.Bukkit;
import org.bukkit.Server;
import org.bukkit.command.ConsoleCommandSender;
import org.bukkit.conversations.Conversation;
import org.bukkit.conversations.ConversationAbandonedEvent;
import org.bukkit.permissions.Permission;
import org.bukkit.permissions.PermissionAttachment;
import org.bukkit.permissions.PermissionAttachmentInfo;
import org.bukkit.plugin.Plugin;
import java.util.ArrayList;
import java.util.Set;
/**
* Used to send commands and record their output.
*/
public class DenizenCommandSender implements ConsoleCommandSender {
private ArrayList<String> output = new ArrayList<String>();
public boolean silent = false;
public ArrayList<String> getOutput() {
return output;
}
public void clearOutput() {
output.clear();
}
@Override
public void sendMessage(String s) {
output.add(s);
if (!silent) {
Bukkit.getServer().getConsoleSender().sendMessage(s);
}
}
@Override
public void sendMessage(String[] strings) {
for (String string : strings) {
sendMessage(string);
}
}
@Override
public Server getServer() {
return Bukkit.getConsoleSender().getServer();
}
@Override
public String getName() {
return Bukkit.getConsoleSender().getName();
}
@Override
public boolean isConversing() {
return Bukkit.getConsoleSender().isConversing();
}
@Override
public void acceptConversationInput(String s) {
Bukkit.getConsoleSender().acceptConversationInput(s);
}
@Override
public boolean beginConversation(Conversation conversation) {
return Bukkit.getConsoleSender().beginConversation(conversation);
}
@Override
public void abandonConversation(Conversation conversation) {
Bukkit.getConsoleSender().abandonConversation(conversation);
}
@Override
public void abandonConversation(Conversation conversation, ConversationAbandonedEvent conversationAbandonedEvent) {
Bukkit.getConsoleSender().abandonConversation(conversation, conversationAbandonedEvent);
}
@Override
public void sendRawMessage(String s) {
// TODO: Maybe handle this?
Bukkit.getConsoleSender().sendRawMessage(s);
}
@Override
public boolean isPermissionSet(String s) {
return Bukkit.getConsoleSender().isPermissionSet(s);
}
@Override
public boolean isPermissionSet(Permission permission) {
return Bukkit.getConsoleSender().isPermissionSet(permission);
}
@Override
public boolean hasPermission(String s) {
return Bukkit.getConsoleSender().hasPermission(s);
}
@Override
public boolean hasPermission(Permission permission) {
return Bukkit.getConsoleSender().hasPermission(permission);
}
@Override
public PermissionAttachment addAttachment(Plugin plugin, String s, boolean b) {
return Bukkit.getConsoleSender().addAttachment(plugin, s, b);
}
@Override
public PermissionAttachment addAttachment(Plugin plugin) {
return Bukkit.getConsoleSender().addAttachment(plugin);
}
@Override
public PermissionAttachment addAttachment(Plugin plugin, String s, boolean b, int i) {
return Bukkit.getConsoleSender().addAttachment(plugin, s, b, i);
}
@Override
public PermissionAttachment addAttachment(Plugin plugin, int i) {
return Bukkit.getConsoleSender().addAttachment(plugin, i);
}
@Override
public void removeAttachment(PermissionAttachment permissionAttachment) {
Bukkit.getConsoleSender().removeAttachment(permissionAttachment);
}
@Override
public void recalculatePermissions() {
Bukkit.getConsoleSender().recalculatePermissions();
}
@Override
public Set<PermissionAttachmentInfo> getEffectivePermissions() {
return Bukkit.getConsoleSender().getEffectivePermissions();
}
@Override
public boolean isOp() {
return Bukkit.getConsoleSender().isOp();
}
@Override
public void setOp(boolean b) {
Bukkit.getConsoleSender().setOp(b);
}
}