Fixed only being able to use /reload once

By: Dinnerbone <dinnerbone@dinnerbone.com>
This commit is contained in:
Bukkit/Spigot 2011-01-28 14:24:54 +00:00
parent 14c7da2f6e
commit 7d4be15159

View file

@ -14,24 +14,16 @@ import org.bukkit.plugin.PluginDescriptionFile;
public final class SimpleCommandMap implements CommandMap {
private final Map<String, Command> knownCommands = new HashMap<String, Command>();
private final Server server;
public SimpleCommandMap(final Server server) {
this.server = server;
setDefaultCommands(server);
}
private void setDefaultCommands(final Server server) {
register("bukkit", new VersionCommand("version", server));
register("reload", "bukkit", new Command("reload") {
@Override
public boolean execute(Player player, String currentAlias, String[] args) {
if (player.isOp()) {
server.reload();
player.sendMessage(ChatColor.GREEN + "Reload complete.");
} else {
player.sendMessage(ChatColor.RED + "You do not have sufficient access"
+ " to reload this server.");
}
return true;
}
});
register("bukkit", new ReloadCommand("reload", server));
}
/**
@ -89,6 +81,7 @@ public final class SimpleCommandMap implements CommandMap {
public void clearCommands() {
synchronized (this) {
knownCommands.clear();
setDefaultCommands(server);
}
}
@ -189,4 +182,28 @@ public final class SimpleCommandMap implements CommandMap {
return result.toString();
}
}
private static class ReloadCommand extends Command {
private final Server server;
public ReloadCommand(String name, Server server) {
super(name);
this.server = server;
this.tooltip = "Reloads the server configuration and plugins";
this.usageMessage = "/reload";
this.setAliases(Arrays.asList("rl"));
}
@Override
public boolean execute(Player player, String currentAlias, String[] args) {
if (player.isOp()) {
server.reload();
player.sendMessage(ChatColor.GREEN + "Reload complete.");
} else {
player.sendMessage(ChatColor.RED + "You do not have sufficient access" + " to reload this server.");
}
return true;
}
}
}