Fixed everyone with logblock.spawnTools was allowed to spawn tools

without the tool permission
This commit is contained in:
Robin Kupper
2011-11-12 11:01:09 +01:00
parent 0d9b4071df
commit 5998e37cd8

View File

@@ -135,57 +135,60 @@ public class CommandsHandler implements CommandExecutor
sender.sendMessage(ChatColor.GOLD + msg.substring(2)); sender.sendMessage(ChatColor.GOLD + msg.substring(2));
} }
} else if (config.toolsByName.get(command) != null) { } else if (config.toolsByName.get(command) != null) {
if (sender instanceof Player) { final Tool tool = config.toolsByName.get(command);
final Player player = (Player)sender; if (logblock.hasPermission(sender, "logblock.tools." + tool.name)) {
final Session session = Session.getSession(player.getName()); if (sender instanceof Player) {
final Tool tool = config.toolsByName.get(command); final Player player = (Player)sender;
final ToolData toolData = session.toolData.get(tool); final Session session = Session.getSession(player.getName());
if (args.length == 1) { final ToolData toolData = session.toolData.get(tool);
if (logblock.hasPermission(player, "logblock.spawnTools")) { if (args.length == 1) {
giveTool(player, tool.item); if (logblock.hasPermission(player, "logblock.spawnTools")) {
session.toolData.get(tool).enabled = true; giveTool(player, tool.item);
} else session.toolData.get(tool).enabled = true;
sender.sendMessage(ChatColor.RED + "You aren't allowed to do this.");
} else if (args[1].equalsIgnoreCase("enable") || args[1].equalsIgnoreCase("on")) {
toolData.enabled = true;
player.sendMessage(ChatColor.GREEN + "Tool enabled.");
} else if (args[1].equalsIgnoreCase("disable") || args[1].equalsIgnoreCase("off")) {
toolData.enabled = false;
player.getInventory().removeItem(new ItemStack(tool.item, 1));
player.sendMessage(ChatColor.GREEN + "Tool disabled.");
} else if (args[1].equalsIgnoreCase("mode")) {
if (args.length == 3) {
final ToolMode mode;
try {
mode = ToolMode.valueOf(args[2].toUpperCase());
} catch (final IllegalArgumentException ex) {
sender.sendMessage(ChatColor.RED + "Can't find mode " + args[2]);
return true;
}
if (logblock.hasPermission(player, mode.getPermission())) {
toolData.mode = mode;
sender.sendMessage(ChatColor.GREEN + "Tool mode set to " + args[2]);
} else } else
sender.sendMessage(ChatColor.RED + "You aren't allowed to use mode " + args[2]); sender.sendMessage(ChatColor.RED + "You aren't allowed to do this.");
} else } else if (args[1].equalsIgnoreCase("enable") || args[1].equalsIgnoreCase("on")) {
player.sendMessage(ChatColor.RED + "No mode specified"); toolData.enabled = true;
} else if (args[1].equalsIgnoreCase("default")) { player.sendMessage(ChatColor.GREEN + "Tool enabled.");
toolData.params = tool.params.clone(); } else if (args[1].equalsIgnoreCase("disable") || args[1].equalsIgnoreCase("off")) {
toolData.mode = tool.mode; toolData.enabled = false;
sender.sendMessage(ChatColor.GREEN + "Tool set to default."); player.getInventory().removeItem(new ItemStack(tool.item, 1));
} else if (logblock.hasPermission(player, "logblock.lookup")) player.sendMessage(ChatColor.GREEN + "Tool disabled.");
try { } else if (args[1].equalsIgnoreCase("mode")) {
final QueryParams params = tool.params.clone(); if (args.length == 3) {
params.parseArgs(sender, argsToList(args, 1)); final ToolMode mode;
toolData.params = params; try {
sender.sendMessage(ChatColor.GREEN + "Set tool query to: " + params.getTitle()); mode = ToolMode.valueOf(args[2].toUpperCase());
} catch (final Exception ex) { } catch (final IllegalArgumentException ex) {
sender.sendMessage(ChatColor.RED + ex.getMessage()); sender.sendMessage(ChatColor.RED + "Can't find mode " + args[2]);
} return true;
else }
sender.sendMessage(ChatColor.RED + "You aren't allowed to do this."); if (logblock.hasPermission(player, mode.getPermission())) {
toolData.mode = mode;
sender.sendMessage(ChatColor.GREEN + "Tool mode set to " + args[2]);
} else
sender.sendMessage(ChatColor.RED + "You aren't allowed to use mode " + args[2]);
} else
player.sendMessage(ChatColor.RED + "No mode specified");
} else if (args[1].equalsIgnoreCase("default")) {
toolData.params = tool.params.clone();
toolData.mode = tool.mode;
sender.sendMessage(ChatColor.GREEN + "Tool set to default.");
} else if (logblock.hasPermission(player, "logblock.lookup"))
try {
final QueryParams params = tool.params.clone();
params.parseArgs(sender, argsToList(args, 1));
toolData.params = params;
sender.sendMessage(ChatColor.GREEN + "Set tool query to: " + params.getTitle());
} catch (final Exception ex) {
sender.sendMessage(ChatColor.RED + ex.getMessage());
}
else
sender.sendMessage(ChatColor.RED + "You aren't allowed to do this.");
} else
sender.sendMessage(ChatColor.RED + "You have to be a player.");
} else } else
sender.sendMessage(ChatColor.RED + "You have to be a player."); sender.sendMessage(ChatColor.RED + "You aren't allowed to do this.");
} else if (command.equals("hide")) { } else if (command.equals("hide")) {
if (sender instanceof Player) { if (sender instanceof Player) {
if (logblock.hasPermission(sender, "logblock.hide")) { if (logblock.hasPermission(sender, "logblock.hide")) {