| @@ -0,0 +1,43 @@ | ||
| package org.bukkit.command.defaults; | ||
|
|
||
| import org.bukkit.command.CommandSender; | ||
|
|
||
| public class HelpCommand extends VanillaCommand { | ||
| public HelpCommand() { | ||
| super("help"); | ||
| this.description = "Shows the help menu"; | ||
| this.usageMessage = "/help"; | ||
| this.setPermission("bukkit.command.help"); | ||
| } | ||
|
|
||
| @Override | ||
| public boolean execute(CommandSender sender, String currentAlias, String[] args) { | ||
| if (!testPermission(sender)) return true; | ||
|
|
||
| sender.sendMessage("help or ? shows this message"); | ||
| sender.sendMessage("kick <player> removes a player from the server"); | ||
| sender.sendMessage("ban <player> bans a player from the server"); | ||
| sender.sendMessage("pardon <player> pardons a banned player so that they can connect again"); | ||
| sender.sendMessage("ban-ip <ip> bans an IP address from the server"); | ||
| sender.sendMessage("pardon-ip <ip> pardons a banned IP address so that they can connect again"); | ||
| sender.sendMessage("op <player> turns a player into an op"); | ||
| sender.sendMessage("deop <player> removes op status from a player"); | ||
| sender.sendMessage("tp <player1> <player2> moves one player to the same location as another player"); | ||
| sender.sendMessage("give <player> <id> [num] gives a player a resource"); | ||
| sender.sendMessage("tell <player> <message> sends a private message to a player"); | ||
| sender.sendMessage("stop gracefully stops the server"); | ||
| sender.sendMessage("save-all forces a server-wide level save"); | ||
| sender.sendMessage("save-off disables terrain saving (useful for backup scripts)"); | ||
| sender.sendMessage("save-on re-enables terrain saving"); | ||
| sender.sendMessage("list lists all currently connected players"); | ||
| sender.sendMessage("say <message> broadcasts a message to all players"); | ||
| sender.sendMessage("time <add|set> <amount> adds to or sets the world time (0-24000)"); | ||
|
|
||
| return true; | ||
| } | ||
|
|
||
| @Override | ||
| public boolean matches(String input) { | ||
| return input.startsWith("help") || input.startsWith("?"); | ||
| } | ||
| } |
| @@ -0,0 +1,41 @@ | ||
| package org.bukkit.command.defaults; | ||
|
|
||
| import org.bukkit.Bukkit; | ||
| import org.bukkit.ChatColor; | ||
| import org.bukkit.command.Command; | ||
| import org.bukkit.command.CommandSender; | ||
| import org.bukkit.entity.Player; | ||
|
|
||
| public class KickCommand extends VanillaCommand { | ||
| public KickCommand() { | ||
| super("kick"); | ||
| this.description = "Removes the specified player from the server"; | ||
| this.usageMessage = "/kick <player>"; | ||
| this.setPermission("bukkit.command.kick"); | ||
| } | ||
|
|
||
| @Override | ||
| public boolean execute(CommandSender sender, String currentAlias, String[] args) { | ||
| if (!testPermission(sender)) return true; | ||
| if (args.length < 1) { | ||
| sender.sendMessage(ChatColor.RED + "Usage: " + usageMessage); | ||
| return false; | ||
| } | ||
|
|
||
| Player player = Bukkit.getPlayerExact(args[0]); | ||
|
|
||
| if (player != null) { | ||
| Command.broadcastCommandMessage(sender, "Kicking " + player.getName()); | ||
| player.kickPlayer("Kicked by admin"); | ||
| } else { | ||
| sender.sendMessage("Can't find user " + args[0] + ". No kick."); | ||
| } | ||
|
|
||
| return true; | ||
| } | ||
|
|
||
| @Override | ||
| public boolean matches(String input) { | ||
| return input.startsWith("kick "); | ||
| } | ||
| } |
| @@ -0,0 +1,39 @@ | ||
| package org.bukkit.command.defaults; | ||
|
|
||
| import org.bukkit.Bukkit; | ||
| import org.bukkit.command.CommandSender; | ||
| import org.bukkit.entity.Player; | ||
| import org.bukkit.event.entity.EntityDamageEvent; | ||
|
|
||
| public class KillCommand extends VanillaCommand { | ||
| public KillCommand() { | ||
| super("kill"); | ||
| this.description = "Commits suicide, only usable as a player"; | ||
| this.usageMessage = "/kill"; | ||
| this.setPermission("bukkit.command.kill"); | ||
| } | ||
|
|
||
| @Override | ||
| public boolean execute(CommandSender sender, String currentAlias, String[] args) { | ||
| if (!testPermission(sender)) return true; | ||
|
|
||
| if (sender instanceof Player) { | ||
| Player player = (Player)sender; | ||
|
|
||
| EntityDamageEvent ede = new EntityDamageEvent(player, EntityDamageEvent.DamageCause.SUICIDE, 1000); | ||
| Bukkit.getPluginManager().callEvent(ede); | ||
| if (ede.isCancelled()) return true; | ||
|
|
||
| player.damage(ede.getDamage()); | ||
| } else { | ||
| sender.sendMessage("You can only perform this command as a player"); | ||
| } | ||
|
|
||
| return true; | ||
| } | ||
|
|
||
| @Override | ||
| public boolean matches(String input) { | ||
| return input.startsWith("kill"); | ||
| } | ||
| } |
| @@ -0,0 +1,39 @@ | ||
| package org.bukkit.command.defaults; | ||
|
|
||
| import org.bukkit.Bukkit; | ||
| import org.bukkit.command.Command; | ||
| import org.bukkit.command.CommandSender; | ||
| import org.bukkit.entity.Player; | ||
|
|
||
| public class ListCommand extends VanillaCommand { | ||
| public ListCommand() { | ||
| super("list"); | ||
| this.description = "Lists all online players"; | ||
| this.usageMessage = "/list"; | ||
| this.setPermission("bukkit.command.list"); | ||
| } | ||
|
|
||
| @Override | ||
| public boolean execute(CommandSender sender, String currentAlias, String[] args) { | ||
| if (!testPermission(sender)) return true; | ||
|
|
||
| String players = ""; | ||
|
|
||
| for (Player player : Bukkit.getOnlinePlayers()) { | ||
| if (players.length() > 0) { | ||
| players += ", "; | ||
| } | ||
|
|
||
| players += player.getDisplayName(); | ||
| } | ||
|
|
||
| sender.sendMessage("Connected players: " + players); | ||
|
|
||
| return true; | ||
| } | ||
|
|
||
| @Override | ||
| public boolean matches(String input) { | ||
| return input.startsWith("list"); | ||
| } | ||
| } |
| @@ -0,0 +1,39 @@ | ||
| package org.bukkit.command.defaults; | ||
|
|
||
| import org.bukkit.Bukkit; | ||
| import org.bukkit.ChatColor; | ||
| import org.bukkit.command.CommandSender; | ||
|
|
||
| public class MeCommand extends VanillaCommand { | ||
| public MeCommand() { | ||
| super("me"); | ||
| this.description = "Performs the specified action in chat"; | ||
| this.usageMessage = "/me <action>"; | ||
| this.setPermission("bukkit.command.me"); | ||
| } | ||
|
|
||
| @Override | ||
| public boolean execute(CommandSender sender, String currentAlias, String[] args) { | ||
| if (!testPermission(sender)) return true; | ||
| if (args.length < 1) { | ||
| sender.sendMessage(ChatColor.RED + "Usage: " + usageMessage); | ||
| return false; | ||
| } | ||
|
|
||
| String message = ""; | ||
|
|
||
| for (int i = 0; i < args.length; i++) { | ||
| if (i > 0) message += " "; | ||
| message += args[i]; | ||
| } | ||
|
|
||
| Bukkit.broadcastMessage("* " + sender.getName() + " " + message); | ||
|
|
||
| return true; | ||
| } | ||
|
|
||
| @Override | ||
| public boolean matches(String input) { | ||
| return input.startsWith("me "); | ||
| } | ||
| } |
| @@ -0,0 +1,42 @@ | ||
| package org.bukkit.command.defaults; | ||
|
|
||
| import org.bukkit.Bukkit; | ||
| import org.bukkit.ChatColor; | ||
| import org.bukkit.OfflinePlayer; | ||
| import org.bukkit.command.Command; | ||
| import org.bukkit.command.CommandSender; | ||
| import org.bukkit.entity.Player; | ||
|
|
||
| public class OpCommand extends VanillaCommand { | ||
| public OpCommand() { | ||
| super("op"); | ||
| this.description = "Gives the specified player operator status"; | ||
| this.usageMessage = "/op <player>"; | ||
| this.setPermission("bukkit.command.op.give"); | ||
| } | ||
|
|
||
| @Override | ||
| public boolean execute(CommandSender sender, String currentAlias, String[] args) { | ||
| if (!testPermission(sender)) return true; | ||
| if (args.length != 1) { | ||
| sender.sendMessage(ChatColor.RED + "Usage: " + usageMessage); | ||
| return false; | ||
| } | ||
|
|
||
| Command.broadcastCommandMessage(sender, "Oping " + args[0]); | ||
This comment has been minimized. |
||
|
|
||
| OfflinePlayer player = Bukkit.getOfflinePlayer(args[0]); | ||
| player.setOp(true); | ||
|
|
||
| if (player instanceof Player) { | ||
| ((Player)player).sendMessage(ChatColor.YELLOW + "You are now op!"); | ||
| } | ||
|
|
||
| return true; | ||
| } | ||
|
|
||
| @Override | ||
| public boolean matches(String input) { | ||
| return input.startsWith("op "); | ||
| } | ||
| } | ||
| @@ -0,0 +1,34 @@ | ||
| package org.bukkit.command.defaults; | ||
|
|
||
| import org.bukkit.Bukkit; | ||
| import org.bukkit.ChatColor; | ||
| import org.bukkit.command.Command; | ||
| import org.bukkit.command.CommandSender; | ||
|
|
||
| public class PardonCommand extends VanillaCommand { | ||
| public PardonCommand() { | ||
| super("pardon"); | ||
| this.description = "Allows the specified player to use this server"; | ||
| this.usageMessage = "/pardon <player>"; | ||
| this.setPermission("bukkit.command.unban.player"); | ||
| } | ||
|
|
||
| @Override | ||
| public boolean execute(CommandSender sender, String currentAlias, String[] args) { | ||
| if (!testPermission(sender)) return true; | ||
| if (args.length != 1) { | ||
| sender.sendMessage(ChatColor.RED + "Usage: " + usageMessage); | ||
| return false; | ||
| } | ||
|
|
||
| Bukkit.getOfflinePlayer(args[0]).setBanned(false); | ||
| Command.broadcastCommandMessage(sender, "Pardoning " + args[0]); | ||
|
|
||
| return true; | ||
| } | ||
|
|
||
| @Override | ||
| public boolean matches(String input) { | ||
| return input.startsWith("pardon "); | ||
| } | ||
| } |
| @@ -0,0 +1,34 @@ | ||
| package org.bukkit.command.defaults; | ||
|
|
||
| import org.bukkit.Bukkit; | ||
| import org.bukkit.ChatColor; | ||
| import org.bukkit.command.Command; | ||
| import org.bukkit.command.CommandSender; | ||
|
|
||
| public class PardonIpCommand extends VanillaCommand { | ||
| public PardonIpCommand() { | ||
| super("pardon-ip"); | ||
| this.description = "Allows the specified IP address to use this server"; | ||
| this.usageMessage = "/pardon-ip <address>"; | ||
| this.setPermission("bukkit.command.unban.ip"); | ||
| } | ||
|
|
||
| @Override | ||
| public boolean execute(CommandSender sender, String currentAlias, String[] args) { | ||
| if (!testPermission(sender)) return true; | ||
| if (args.length != 1) { | ||
| sender.sendMessage(ChatColor.RED + "Usage: " + usageMessage); | ||
| return false; | ||
| } | ||
|
|
||
| Bukkit.unbanIP(args[0]); | ||
| Command.broadcastCommandMessage(sender, "Pardoning ip " + args[0]); | ||
|
|
||
| return true; | ||
| } | ||
|
|
||
| @Override | ||
| public boolean matches(String input) { | ||
| return input.startsWith("pardon-ip "); | ||
| } | ||
| } |
| @@ -0,0 +1,37 @@ | ||
| package org.bukkit.command.defaults; | ||
|
|
||
| import org.bukkit.Bukkit; | ||
| import org.bukkit.World; | ||
| import org.bukkit.command.Command; | ||
| import org.bukkit.command.CommandSender; | ||
|
|
||
| public class SaveCommand extends VanillaCommand { | ||
| public SaveCommand() { | ||
| super("save-all"); | ||
| this.description = "Saves the server to disk"; | ||
| this.usageMessage = "/save-all"; | ||
| this.setPermission("bukkit.command.save.perform"); | ||
| } | ||
|
|
||
| @Override | ||
| public boolean execute(CommandSender sender, String currentAlias, String[] args) { | ||
| if (!testPermission(sender)) return true; | ||
|
|
||
| Command.broadcastCommandMessage(sender, "Forcing save.."); | ||
|
|
||
| Bukkit.savePlayers(); | ||
|
|
||
| for (World world : Bukkit.getWorlds()) { | ||
| world.save(); | ||
| } | ||
|
|
||
| Command.broadcastCommandMessage(sender, "Save complete."); | ||
|
|
||
| return true; | ||
| } | ||
|
|
||
| @Override | ||
| public boolean matches(String input) { | ||
| return input.startsWith("save-all"); | ||
| } | ||
| } |
| @@ -0,0 +1,33 @@ | ||
| package org.bukkit.command.defaults; | ||
|
|
||
| import org.bukkit.Bukkit; | ||
| import org.bukkit.World; | ||
| import org.bukkit.command.Command; | ||
| import org.bukkit.command.CommandSender; | ||
|
|
||
| public class SaveOffCommand extends VanillaCommand { | ||
| public SaveOffCommand() { | ||
| super("save-off"); | ||
| this.description = "Disables server autosaving"; | ||
| this.usageMessage = "/save-off"; | ||
| this.setPermission("bukkit.command.save.disable"); | ||
| } | ||
|
|
||
| @Override | ||
| public boolean execute(CommandSender sender, String currentAlias, String[] args) { | ||
| if (!testPermission(sender)) return true; | ||
|
|
||
| Command.broadcastCommandMessage(sender, "Disabling level saving.."); | ||
|
|
||
| for (World world : Bukkit.getWorlds()) { | ||
| world.setAutoSave(false); | ||
| } | ||
|
|
||
| return true; | ||
| } | ||
|
|
||
| @Override | ||
| public boolean matches(String input) { | ||
| return input.startsWith("save-off"); | ||
| } | ||
| } |
| @@ -0,0 +1,33 @@ | ||
| package org.bukkit.command.defaults; | ||
|
|
||
| import org.bukkit.Bukkit; | ||
| import org.bukkit.World; | ||
| import org.bukkit.command.Command; | ||
| import org.bukkit.command.CommandSender; | ||
|
|
||
| public class SaveOnCommand extends VanillaCommand { | ||
| public SaveOnCommand() { | ||
| super("save-on"); | ||
| this.description = "Enables server autosaving"; | ||
| this.usageMessage = "/save-on"; | ||
| this.setPermission("bukkit.command.save.enable"); | ||
| } | ||
|
|
||
| @Override | ||
| public boolean execute(CommandSender sender, String currentAlias, String[] args) { | ||
| if (!testPermission(sender)) return true; | ||
|
|
||
| Command.broadcastCommandMessage(sender, "Enabling level saving.."); | ||
|
|
||
| for (World world : Bukkit.getWorlds()) { | ||
| world.setAutoSave(true); | ||
| } | ||
|
|
||
| return true; | ||
| } | ||
|
|
||
| @Override | ||
| public boolean matches(String input) { | ||
| return input.startsWith("save-on"); | ||
| } | ||
| } |
| @@ -0,0 +1,33 @@ | ||
| package org.bukkit.command.defaults; | ||
|
|
||
| import org.bukkit.Bukkit; | ||
| import org.bukkit.ChatColor; | ||
| import org.bukkit.command.CommandSender; | ||
|
|
||
| public class SayCommand extends VanillaCommand { | ||
| public SayCommand() { | ||
| super("say"); | ||
| this.description = "Broadcasts the given message as the console"; | ||
| this.usageMessage = "/say <message>"; | ||
| this.setPermission("bukkit.command.say"); | ||
| } | ||
|
|
||
| @Override | ||
| public boolean execute(CommandSender sender, String currentAlias, String[] args) { | ||
| if (!testPermission(sender)) return true; | ||
| if (args.length != 1) { | ||
| sender.sendMessage(ChatColor.RED + "Usage: " + usageMessage); | ||
| return false; | ||
| } | ||
|
|
||
| Bukkit.getLogger().info("[" + sender.getName() + "] " + args[1]); | ||
| Bukkit.broadcastMessage("[Server] " + args[1]); | ||
|
|
||
| return true; | ||
| } | ||
|
|
||
| @Override | ||
| public boolean matches(String input) { | ||
| return input.startsWith("say "); | ||
| } | ||
| } |
| @@ -0,0 +1,29 @@ | ||
| package org.bukkit.command.defaults; | ||
|
|
||
| import org.bukkit.Bukkit; | ||
| import org.bukkit.command.Command; | ||
| import org.bukkit.command.CommandSender; | ||
|
|
||
| public class StopCommand extends VanillaCommand { | ||
| public StopCommand() { | ||
| super("stop"); | ||
| this.description = "Stops the server"; | ||
| this.usageMessage = "/stop"; | ||
| this.setPermission("bukkit.command.stop"); | ||
| } | ||
|
|
||
| @Override | ||
| public boolean execute(CommandSender sender, String currentAlias, String[] args) { | ||
| if (!testPermission(sender)) return true; | ||
|
|
||
| Command.broadcastCommandMessage(sender, "Stopping the server.."); | ||
| Bukkit.shutdown(); | ||
|
|
||
| return true; | ||
| } | ||
|
|
||
| @Override | ||
| public boolean matches(String input) { | ||
| return input.startsWith("stop"); | ||
| } | ||
| } |
| @@ -0,0 +1,44 @@ | ||
| package org.bukkit.command.defaults; | ||
|
|
||
| import org.bukkit.Bukkit; | ||
| import org.bukkit.ChatColor; | ||
| import org.bukkit.command.Command; | ||
| import org.bukkit.command.CommandSender; | ||
| import org.bukkit.entity.Player; | ||
|
|
||
| public class TeleportCommand extends VanillaCommand { | ||
| public TeleportCommand() { | ||
| super("tp"); | ||
| this.description = "Teleports the given player to another player"; | ||
| this.usageMessage = "/tp <player> <target>"; | ||
| this.setPermission("bukkit.command.teleport"); | ||
| } | ||
|
|
||
| @Override | ||
| public boolean execute(CommandSender sender, String currentAlias, String[] args) { | ||
| if (!testPermission(sender)) return true; | ||
| if (args.length != 2) { | ||
| sender.sendMessage(ChatColor.RED + "Usage: " + usageMessage); | ||
| return false; | ||
| } | ||
|
|
||
| Player victim = Bukkit.getPlayerExact(args[0]); | ||
| Player target = Bukkit.getPlayerExact(args[1]); | ||
|
|
||
| if (victim == null) { | ||
| sender.sendMessage("Can't find user " + args[0] + ". No tp."); | ||
| } else if (target == null) { | ||
| sender.sendMessage("Can't find user " + args[1] + ". No tp."); | ||
| } else { | ||
| Command.broadcastCommandMessage(sender, "Teleporting " + victim.getName() + " to " + target.getName()); | ||
| victim.teleport(target); | ||
| } | ||
|
|
||
| return true; | ||
| } | ||
|
|
||
| @Override | ||
| public boolean matches(String input) { | ||
| return input.startsWith("tp "); | ||
| } | ||
| } |
| @@ -0,0 +1,54 @@ | ||
| package org.bukkit.command.defaults; | ||
|
|
||
| import org.bukkit.Bukkit; | ||
| import org.bukkit.ChatColor; | ||
| import org.bukkit.command.CommandSender; | ||
| import org.bukkit.command.ConsoleCommandSender; | ||
| import org.bukkit.entity.Player; | ||
|
|
||
| public class TellCommand extends VanillaCommand { | ||
| public TellCommand() { | ||
| super("tell"); | ||
| this.description = "Sends a private message to the given player"; | ||
| this.usageMessage = "/tell <player> <message>"; | ||
| this.setPermission("bukkit.command.tell"); | ||
| } | ||
|
|
||
| @Override | ||
| public boolean execute(CommandSender sender, String currentAlias, String[] args) { | ||
| if (!testPermission(sender)) return true; | ||
| if (args.length < 2) { | ||
| sender.sendMessage(ChatColor.RED + "Usage: " + usageMessage); | ||
| return false; | ||
| } | ||
|
|
||
| Player player = Bukkit.getPlayerExact(args[0]); | ||
|
|
||
| if (player == null) { | ||
| sender.sendMessage("There's no player by that name online."); | ||
| } else { | ||
| String message = ""; | ||
|
|
||
| for (int i = 1; i < args.length; i++) { | ||
| if (i > 1) message += " "; | ||
| message += args[i]; | ||
| } | ||
|
|
||
| String result = ChatColor.GRAY + sender.getName() + " whispers " + message; | ||
|
|
||
| if (sender instanceof ConsoleCommandSender) { | ||
| Bukkit.getLogger().info("[" + sender.getName() + "->" + player.getName() + "] " + message); | ||
| Bukkit.getLogger().info(result); | ||
| } | ||
|
|
||
| player.sendMessage(result); | ||
| } | ||
|
|
||
| return true; | ||
| } | ||
|
|
||
| @Override | ||
| public boolean matches(String input) { | ||
| return input.startsWith("tell "); | ||
| } | ||
| } |
| @@ -0,0 +1,64 @@ | ||
| package org.bukkit.command.defaults; | ||
|
|
||
| import org.bukkit.Bukkit; | ||
| import org.bukkit.ChatColor; | ||
| import org.bukkit.World; | ||
| import org.bukkit.command.Command; | ||
| import org.bukkit.command.CommandSender; | ||
|
|
||
| public class TimeCommand extends VanillaCommand { | ||
| public TimeCommand() { | ||
| super("time"); | ||
| this.description = "Changes the time on each world"; | ||
| this.usageMessage = "/time set <value>\n/time add <value>"; | ||
| } | ||
|
|
||
| @Override | ||
| public boolean execute(CommandSender sender, String currentAlias, String[] args) { | ||
| if (args.length != 2) { | ||
| sender.sendMessage(ChatColor.RED + "Incorrect usage. Correct usage:\n" + usageMessage); | ||
| return false; | ||
| } | ||
|
|
||
| int value = 0; | ||
|
|
||
| try { | ||
| value = Integer.parseInt(args[1]); | ||
| } catch (NumberFormatException ex) { | ||
| sender.sendMessage("Unable to convert time value, " + args[1]); | ||
| return true; | ||
| } | ||
|
|
||
| if (args[0].equalsIgnoreCase("add")) { | ||
| if (!sender.hasPermission("bukkit.command.time.add")) { | ||
| sender.sendMessage(ChatColor.RED + "You don't have permission to add to the time"); | ||
| } else { | ||
| for (World world : Bukkit.getWorlds()) { | ||
| world.setFullTime(world.getFullTime() + value); | ||
| } | ||
|
|
||
| Command.broadcastCommandMessage(sender, "Added " + value + " to time"); | ||
| } | ||
| } else if (args[0].equalsIgnoreCase("set")) { | ||
| if (!sender.hasPermission("bukkit.command.time.set")) { | ||
| sender.sendMessage(ChatColor.RED + "You don't have permission to set the time"); | ||
| } else { | ||
| for (World world : Bukkit.getWorlds()) { | ||
| world.setTime(value); | ||
| } | ||
|
|
||
| Command.broadcastCommandMessage(sender, "Set time to " + value); | ||
| } | ||
| } else { | ||
| sender.sendMessage("Unknown method, use either \"add\" or \"set\""); | ||
| return true; | ||
| } | ||
|
|
||
| return true; | ||
| } | ||
|
|
||
| @Override | ||
| public boolean matches(String input) { | ||
| return input.startsWith("time "); | ||
| } | ||
| } |
| @@ -0,0 +1,16 @@ | ||
| package org.bukkit.command.defaults; | ||
|
|
||
| import java.util.List; | ||
| import org.bukkit.command.Command; | ||
|
|
||
| public abstract class VanillaCommand extends Command { | ||
| protected VanillaCommand(String name) { | ||
| super(name); | ||
| } | ||
|
|
||
| protected VanillaCommand(String name, String description, String usageMessage, List<String> aliases) { | ||
| super(name, description, usageMessage, aliases); | ||
| } | ||
|
|
||
| public abstract boolean matches(String input); | ||
| } |
| @@ -0,0 +1,90 @@ | ||
| package org.bukkit.command.defaults; | ||
|
|
||
| import org.bukkit.Bukkit; | ||
| import org.bukkit.ChatColor; | ||
| import org.bukkit.OfflinePlayer; | ||
| import org.bukkit.command.Command; | ||
| import org.bukkit.command.CommandSender; | ||
|
|
||
| public class WhitelistCommand extends VanillaCommand { | ||
| public WhitelistCommand() { | ||
| super("whitelist"); | ||
| this.description = "Prevents the specified player from using this server"; | ||
| this.usageMessage = "/whitelist (add|remove) <player>\n/whitelist (on|off|list|reload)"; | ||
| } | ||
|
|
||
| @Override | ||
| public boolean execute(CommandSender sender, String currentAlias, String[] args) { | ||
| if (!testPermission(sender)) return true; | ||
|
|
||
| if (args.length == 1) { | ||
| if (args[0].equalsIgnoreCase("reload")) { | ||
| if (badPerm(sender, "reload")) return true; | ||
|
|
||
| Bukkit.reloadWhitelist(); | ||
| Command.broadcastCommandMessage(sender, "Reloaded white-list from file"); | ||
| return true; | ||
| } else if (args[0].equalsIgnoreCase("on")) { | ||
| if (badPerm(sender, "enable")) return true; | ||
|
|
||
| Bukkit.setWhitelist(true); | ||
| Command.broadcastCommandMessage(sender, "Turned on white-listing"); | ||
| return true; | ||
| } else if (args[0].equalsIgnoreCase("off")) { | ||
| if (badPerm(sender, "disable")) return true; | ||
|
|
||
| Bukkit.setWhitelist(false); | ||
| Command.broadcastCommandMessage(sender, "Turned off white-listing"); | ||
| return true; | ||
| } else if (args[0].equalsIgnoreCase("list")) { | ||
| if (badPerm(sender, "list")) return true; | ||
|
|
||
| String result = ""; | ||
|
|
||
| for (OfflinePlayer player : Bukkit.getWhitelistedPlayers()) { | ||
| if (result.length() > 0) { | ||
| result += " "; | ||
| } | ||
|
|
||
| result += player.getName(); | ||
| } | ||
|
|
||
| sender.sendMessage("White-listed players: " + result); | ||
| return true; | ||
| } | ||
| } else if (args.length == 2) { | ||
| if (args[0].equalsIgnoreCase("add")) { | ||
| if (badPerm(sender, "add")) return true; | ||
|
|
||
| Bukkit.getOfflinePlayer(args[1]).setWhitelisted(true); | ||
|
|
||
| Command.broadcastCommandMessage(sender, "Added " + args[1] + " to white-list"); | ||
| return true; | ||
| } else if (args[0].equalsIgnoreCase("remove")) { | ||
| if (badPerm(sender, "remove")) return true; | ||
|
|
||
| Bukkit.getOfflinePlayer(args[1]).setWhitelisted(false); | ||
|
|
||
| Command.broadcastCommandMessage(sender, "Removed " + args[1] + " from white-list"); | ||
| return true; | ||
| } | ||
| } | ||
|
|
||
| sender.sendMessage(ChatColor.RED + "Correct command usage:\n" + usageMessage); | ||
| return false; | ||
| } | ||
|
|
||
| private boolean badPerm(CommandSender sender, String perm) { | ||
| if (!sender.hasPermission("bukkit.command.whitelist." + perm)) { | ||
| sender.sendMessage(ChatColor.RED + "You do not have permission to perform this action."); | ||
| return true; | ||
| } | ||
|
|
||
| return false; | ||
| } | ||
|
|
||
| @Override | ||
| public boolean matches(String input) { | ||
| return input.startsWith("whitelist "); | ||
| } | ||
| } |
Shouldn't this say Opping instead of Oping?