Moved WorldEdit to use Bukkit's command registration.

This commit is contained in:
sk89q
2011-01-21 18:24:38 -08:00
parent 9f25c1906d
commit 5b200092ba
3 changed files with 281 additions and 17 deletions

View File

@ -60,20 +60,6 @@ public class WorldEditPlayerListener extends PlayerListener {
public void onPlayerCommand(PlayerChatEvent event) {
String[] split = event.getMessage().split(" ");
if (split[0].equalsIgnoreCase("/reloadwe")
&& plugin.hasPermission(event.getPlayer(), "/reloadwe")) {
try {
plugin.loadConfiguration();
event.getPlayer().sendMessage("WorldEdit configuration reloaded.");
} catch (Throwable t) {
event.getPlayer().sendMessage("Error while reloading: "
+ t.getMessage());
}
event.setCancelled(true);
return;
}
if (plugin.controller.handleCommand(wrapPlayer(event.getPlayer()), split)) {
event.setCancelled(true);
}

View File

@ -25,6 +25,7 @@ import java.io.IOException;
import java.io.InputStream;
import java.util.logging.Logger;
import org.bukkit.Server;
import org.bukkit.command.Command;
import org.bukkit.entity.Player;
import org.bukkit.event.Event.Priority;
import org.bukkit.event.Event;
@ -89,10 +90,10 @@ public class WorldEditPlugin extends JavaPlugin {
private void registerEvents() {
getServer().getPluginManager().registerEvent(Event.Type.PLAYER_QUIT,
playerListener, Priority.Normal, this);
getServer().getPluginManager().registerEvent(Event.Type.PLAYER_COMMAND,
playerListener, Priority.Normal, this);
getServer().getPluginManager().registerEvent(Event.Type.PLAYER_ITEM,
playerListener, Priority.Normal, this);
getServer().getPluginManager().registerEvent(Event.Type.PLAYER_COMMAND,
playerListener, Priority.Normal, this);
getServer().getPluginManager().registerEvent(Event.Type.BLOCK_DAMAGED,
blockListener, Priority.Normal, this);
getServer().getPluginManager().registerEvent(Event.Type.BLOCK_RIGHTCLICKED,
@ -143,6 +144,27 @@ public class WorldEditPlugin extends JavaPlugin {
perms.load();
}
public boolean onCommand(Player player, Command cmd, String commandLabel, String[] args) {
if (cmd.getName().equalsIgnoreCase("reloadwe")
&& hasPermission(player, "reloadwe")) {
try {
loadConfiguration();
player.sendMessage("WorldEdit configuration reloaded.");
} catch (Throwable t) {
player.sendMessage("Error while reloading: "
+ t.getMessage());
}
return true;
}
String[] split = new String[args.length + 1];
System.arraycopy(args, 0, split, 1, args.length);
split[0] = "/" + cmd.getName();
return controller.handleCommand(wrapPlayer(player), split);
}
String[] getGroups(Player player) {
return perms.getGroups(player.getName());
}
@ -155,6 +177,10 @@ public class WorldEditPlugin extends JavaPlugin {
return player.isOp() || perms.hasPermission(player.getName(), perm);
}
BukkitPlayer wrapPlayer(Player player) {
return new BukkitPlayer(this, this.server, player);
}
public WorldEditAPI getAPI() {
return api;
}