Added legacy console sender (à la CommandBook).

This commit is contained in:
Wizjany 2011-09-25 22:27:21 -04:00
parent c028331ef9
commit 3441ae11f2
2 changed files with 94 additions and 3 deletions

View File

@ -0,0 +1,87 @@
package com.sk89q.worldguard.bukkit;
import java.util.Set;
import org.bukkit.Server;
import org.bukkit.command.CommandSender;
import org.bukkit.permissions.Permission;
import org.bukkit.permissions.PermissionAttachment;
import org.bukkit.permissions.PermissionAttachmentInfo;
import org.bukkit.plugin.Plugin;
/**
* Console sender.
*
* @author sk89q
*/
class LegacyConsoleSender implements CommandSender {
private Server server;
public LegacyConsoleSender(Server server) {
this.server = server;
}
public void sendMessage(String message) {
WorldGuardPlugin.logger.info(message);
}
public Server getServer() {
return server;
}
public String getName() {
return "CONSOLE";
}
public boolean isPermissionSet(String name) {
return true;
}
public boolean isPermissionSet(Permission perm) {
return true;
}
public boolean hasPermission(String name) {
return true;
}
public boolean hasPermission(Permission perm) {
return true;
}
public PermissionAttachment addAttachment(Plugin plugin, String name,
boolean value) {
throw new UnsupportedOperationException("Fake legacy console command sender does not support this");
}
public PermissionAttachment addAttachment(Plugin plugin) {
throw new UnsupportedOperationException("Fake legacy console command sender does not support this");
}
public PermissionAttachment addAttachment(Plugin plugin, String name,
boolean value, int ticks) {
throw new UnsupportedOperationException("Fake legacy console command sender does not support this");
}
public PermissionAttachment addAttachment(Plugin plugin, int ticks) {
throw new UnsupportedOperationException("Fake legacy console command sender does not support this");
}
public void removeAttachment(PermissionAttachment attachment) {
throw new UnsupportedOperationException("Fake legacy console command sender does not support this");
}
public void recalculatePermissions() {
}
public Set<PermissionAttachmentInfo> getEffectivePermissions() {
throw new UnsupportedOperationException("Fake legacy console command sender does not support this");
}
public boolean isOp() {
return true;
}
public void setOp(boolean value) {
}
}

View File

@ -37,7 +37,6 @@
import org.bukkit.block.Block;
import org.bukkit.command.Command;
import org.bukkit.command.CommandSender;
import org.bukkit.command.ConsoleCommandSender;
import org.bukkit.entity.Player;
import org.bukkit.plugin.Plugin;
import org.bukkit.plugin.java.JavaPlugin;
@ -68,7 +67,7 @@ public class WorldGuardPlugin extends JavaPlugin {
/**
* Logger for messages.
*/
private static final Logger logger = Logger.getLogger("Minecraft.WorldGuard");
static final Logger logger = Logger.getLogger("Minecraft.WorldGuard");
/**
* Manager for commands. This automatically handles nested commands,
@ -557,7 +556,12 @@ public CommandSender matchPlayerOrConsole(CommandSender sender, String filter)
if (filter.equalsIgnoreCase("#console")
|| filter.equalsIgnoreCase("*console*")
|| filter.equalsIgnoreCase("!")) {
return getServer().getConsoleSender();
try {
return getServer().getConsoleSender();
} catch (Throwable t) {
// Legacy support
return new LegacyConsoleSender(getServer());
}
}
return matchSinglePlayer(sender, filter);