BREAKING: Change ConsoleCommandSender to an interface.

Implementations will now need to implement the console command sender.
This is done to increse the separation between the Bukkit API and it's
implementations. This allows the implementations more freedom when dealing
with consoles and reducing chances for breaking plugin compatibility in the
future.

By: Andrew Ardill <andrew.ardill@gmail.com>
This commit is contained in:
Bukkit/Spigot 2011-12-07 16:43:56 +11:00
parent a4a2fa8690
commit b0481cb922

View file

@ -1,90 +1,4 @@
package org.bukkit.command;
import java.util.Set;
import org.bukkit.ChatColor;
import org.bukkit.Server;
import org.bukkit.permissions.PermissibleBase;
import org.bukkit.permissions.Permission;
import org.bukkit.permissions.PermissionAttachment;
import org.bukkit.permissions.PermissionAttachmentInfo;
import org.bukkit.plugin.Plugin;
/**
* Represents CLI input from a console
*/
public class ConsoleCommandSender implements CommandSender {
private final Server server;
private final PermissibleBase perm = new PermissibleBase(this);
protected ConsoleCommandSender(Server server) {
this.server = server;
}
public void sendMessage(String message) {
System.out.println(ChatColor.stripColor(message));
}
public boolean isOp() {
return true;
}
public void setOp(boolean value) {
throw new UnsupportedOperationException("Cannot change operator status of server console");
}
public boolean isPlayer() {
return false;
}
public Server getServer() {
return server;
}
public boolean isPermissionSet(String name) {
return perm.isPermissionSet(name);
}
public boolean isPermissionSet(Permission perm) {
return this.perm.isPermissionSet(perm);
}
public boolean hasPermission(String name) {
return perm.hasPermission(name);
}
public boolean hasPermission(Permission perm) {
return this.perm.hasPermission(perm);
}
public PermissionAttachment addAttachment(Plugin plugin, String name, boolean value) {
return perm.addAttachment(plugin, name, value);
}
public PermissionAttachment addAttachment(Plugin plugin) {
return perm.addAttachment(plugin);
}
public PermissionAttachment addAttachment(Plugin plugin, String name, boolean value, int ticks) {
return perm.addAttachment(plugin, name, value, ticks);
}
public PermissionAttachment addAttachment(Plugin plugin, int ticks) {
return perm.addAttachment(plugin, ticks);
}
public void removeAttachment(PermissionAttachment attachment) {
perm.removeAttachment(attachment);
}
public void recalculatePermissions() {
perm.recalculatePermissions();
}
public Set<PermissionAttachmentInfo> getEffectivePermissions() {
return perm.getEffectivePermissions();
}
public String getName() {
return "CONSOLE";
}
public interface ConsoleCommandSender extends CommandSender{
}