diff --git a/net/crystalyx/bukkit/simplyperms/SimplyAPI.java b/net/crystalyx/bukkit/simplyperms/SimplyAPI.java index 18e54e8..a288dbe 100644 --- a/net/crystalyx/bukkit/simplyperms/SimplyAPI.java +++ b/net/crystalyx/bukkit/simplyperms/SimplyAPI.java @@ -135,7 +135,7 @@ public class SimplyAPI implements PermsConfig { inheritances.remove(inherit); plugin.getConfig().set("groups/" + group + "/inheritance", inheritances); } - + public void removeGroupInheritances(String group) { if (group.isEmpty()) group = getDefaultGroup(); plugin.getConfig().set("groups/" + group + "/inheritance", null); diff --git a/net/crystalyx/bukkit/simplyperms/SimplyCommands.java b/net/crystalyx/bukkit/simplyperms/SimplyCommands.java index 3824f64..55110f7 100755 --- a/net/crystalyx/bukkit/simplyperms/SimplyCommands.java +++ b/net/crystalyx/bukkit/simplyperms/SimplyCommands.java @@ -34,458 +34,458 @@ public class SimplyCommands implements CommandExecutor { } public boolean onCommand(CommandSender sender, Command command, String label, String[] split) { - if (split.length < 1) { - return !checkPerm(sender, "help") || usage(sender, command); - } - - String subcommand = split[0]; - if (subcommand.equals("reload")) { - if (!checkPerm(sender, "reload")) return true; - plugin.reloadConfig(); - plugin.refreshPermissions(); - sender.sendMessage(ChatColor.GREEN + "Configuration reloaded."); - return true; - } if (subcommand.equals("check")) { - if (!checkPerm(sender, "check")) return true; - if (split.length != 2 && split.length != 3) return usage(sender, command, subcommand); - - String node = split[1]; - Permissible permissible; - if (split.length == 2) { - permissible = sender; - } else { - permissible = plugin.getServer().getPlayer(split[2]); - } - - String name = (permissible instanceof Player) ? ((Player) permissible).getName() : (permissible instanceof ConsoleCommandSender) ? "Console" : "Unknown"; - - if (permissible == null) { - sender.sendMessage(ChatColor.RED + "Player " + ChatColor.WHITE + split[2] + ChatColor.RED + " not found."); - } else { - boolean set = permissible.isPermissionSet(node), has = permissible.hasPermission(node); - String sets = set ? " sets " : " defaults "; - String perm = has ? " true" : " false"; - sender.sendMessage(ChatColor.GREEN + "Player " + ChatColor.WHITE + name + ChatColor.GREEN + sets + ChatColor.WHITE + node + ChatColor.GREEN + " to " + ChatColor.WHITE + perm + ChatColor.GREEN + "."); - } - return true; - } else if (subcommand.equals("info")) { - if (!checkPerm(sender, "info")) return true; - if (split.length != 2) return usage(sender, command, subcommand); - - String node = split[1]; - Permission perm = plugin.getServer().getPluginManager().getPermission(node); - - if (perm == null) { - sender.sendMessage(ChatColor.RED + "Permission " + ChatColor.WHITE + node + ChatColor.RED + " not found."); - } else { - sender.sendMessage(ChatColor.GREEN + "Info on permission " + ChatColor.WHITE + perm.getName() + ChatColor.GREEN + ":"); - sender.sendMessage(ChatColor.GREEN + "Default: " + ChatColor.WHITE + perm.getDefault()); - if (perm.getDescription() != null && perm.getDescription().length() > 0) { - sender.sendMessage(ChatColor.GREEN + "Description: " + ChatColor.WHITE + perm.getDescription()); - } - if (perm.getChildren() != null && perm.getChildren().size() > 0) { - sender.sendMessage(ChatColor.GREEN + "Children: " + ChatColor.WHITE + perm.getChildren().size()); - } - } - return true; - } else if (subcommand.equals("dump")) { - if (!checkPerm(sender, "dump")) return true; - if (split.length < 1 || split.length > 3) return usage(sender, command, subcommand); - - int page; - Permissible permissible; - if (split.length == 1) { - permissible = sender; - page = 1; - } else if (split.length == 2) { - try { - permissible = sender; - page = Integer.parseInt(split[1]); - } - catch (NumberFormatException ex) { - permissible = plugin.getServer().getPlayer(split[1]); - page = 1; - } - } else { - permissible = plugin.getServer().getPlayer(split[1]); - try { - page = Integer.parseInt(split[2]); - } - catch (NumberFormatException ex) { - page = 1; - } - } - - if (permissible == null) { - sender.sendMessage(ChatColor.RED + "Player " + ChatColor.WHITE + split[1] + ChatColor.RED + " not found."); - } else { - ArrayList dump = new ArrayList(permissible.getEffectivePermissions()); - Collections.sort(dump, new Comparator() { - public int compare(PermissionAttachmentInfo a, PermissionAttachmentInfo b) { - return a.getPermission().compareTo(b.getPermission()); - } - }); - - int numpages = 1 + (dump.size() - 1) / 8; - if (page > numpages) { - page = numpages; - } else if (page < 1) { - page = 1; - } - - ChatColor g = ChatColor.GREEN, w = ChatColor.WHITE, r = ChatColor.RED; - - int start = 8 * (page - 1); - sender.sendMessage(ChatColor.RED + "[==== " + ChatColor.GREEN + "Page " + page + " of " + numpages + ChatColor.RED + " ====]"); - for (int i = start; i < start + 8 && i < dump.size(); ++i) { - PermissionAttachmentInfo info = dump.get(i); - - if (info.getAttachment() == null) { - sender.sendMessage(g + "Node " + w + info.getPermission() + g + "=" + w + info.getValue() + g + " (" + r + "default" + g + ")"); - } else { - sender.sendMessage(g + "Node " + w + info.getPermission() + g + "=" + w + info.getValue() + g + " (" + w + info.getAttachment().getPlugin().getDescription().getName() + g + ")"); - } - } - } - return true; - } else if (subcommand.equals("group")) { - if (split.length < 2) { - return !checkPerm(sender, "group.help") || usage(sender, command, subcommand); - } - groupCommand(sender, command, split); - return true; - } else if (subcommand.equals("player")) { - if (split.length < 2) { - return !checkPerm(sender, "player.help") || usage(sender, command, subcommand); - } - playerCommand(sender, command, split); - return true; - } else if (subcommand.equals("import")) { - if (!checkPerm(sender, "import")) return true; - if (split.length != 2) return usage(sender, command, subcommand); - String pluginName = split[1].toLowerCase(); - ImportManager manager; + if (split.length < 1) { + return !checkPerm(sender, "help") || usage(sender, command); + } - if (pluginName.equals("permissionsbukkit")) { - manager = new ImportPermBukkit(plugin); - } else if (pluginName.equals("privileges")) { - manager = new ImportPrivileges(plugin); - } else if (pluginName.equals("permissionsex")) { - manager = new ImportPermEx(plugin); - } else if (pluginName.equals("file")) { - manager = new ImportFile(plugin); - } else if (plugin.getConfig().getString("db/type") != null - && pluginName.equals(plugin.getConfig().getString("db/type").toLowerCase())) { - manager = new ImportDB(plugin); - } else { - sender.sendMessage(ChatColor.RED + "Unknown import type !"); - return true; - } + String subcommand = split[0]; + if (subcommand.equals("reload")) { + if (!checkPerm(sender, "reload")) return true; + plugin.reloadConfig(); + plugin.refreshPermissions(); + sender.sendMessage(ChatColor.GREEN + "Configuration reloaded."); + return true; + } if (subcommand.equals("check")) { + if (!checkPerm(sender, "check")) return true; + if (split.length != 2 && split.length != 3) return usage(sender, command, subcommand); - try { - manager.run(); - plugin.refreshPermissions(); - sender.sendMessage(ChatColor.GREEN + "Operation success !"); - } catch (Exception e) { - plugin.reloadConfig(); - sender.sendMessage(ChatColor.RED + "An error occurred ! Please check server log..."); - e.printStackTrace(); - } - return true; - } else { - return !checkPerm(sender, "help") || usage(sender, command); - } + String node = split[1]; + Permissible permissible; + if (split.length == 2) { + permissible = sender; + } else { + permissible = plugin.getServer().getPlayer(split[2]); + } + + String name = (permissible instanceof Player) ? ((Player) permissible).getName() : (permissible instanceof ConsoleCommandSender) ? "Console" : "Unknown"; + + if (permissible == null) { + sender.sendMessage(ChatColor.RED + "Player " + ChatColor.WHITE + split[2] + ChatColor.RED + " not found."); + } else { + boolean set = permissible.isPermissionSet(node), has = permissible.hasPermission(node); + String sets = set ? " sets " : " defaults "; + String perm = has ? " true" : " false"; + sender.sendMessage(ChatColor.GREEN + "Player " + ChatColor.WHITE + name + ChatColor.GREEN + sets + ChatColor.WHITE + node + ChatColor.GREEN + " to " + ChatColor.WHITE + perm + ChatColor.GREEN + "."); + } + return true; + } else if (subcommand.equals("info")) { + if (!checkPerm(sender, "info")) return true; + if (split.length != 2) return usage(sender, command, subcommand); + + String node = split[1]; + Permission perm = plugin.getServer().getPluginManager().getPermission(node); + + if (perm == null) { + sender.sendMessage(ChatColor.RED + "Permission " + ChatColor.WHITE + node + ChatColor.RED + " not found."); + } else { + sender.sendMessage(ChatColor.GREEN + "Info on permission " + ChatColor.WHITE + perm.getName() + ChatColor.GREEN + ":"); + sender.sendMessage(ChatColor.GREEN + "Default: " + ChatColor.WHITE + perm.getDefault()); + if (perm.getDescription() != null && perm.getDescription().length() > 0) { + sender.sendMessage(ChatColor.GREEN + "Description: " + ChatColor.WHITE + perm.getDescription()); + } + if (perm.getChildren() != null && perm.getChildren().size() > 0) { + sender.sendMessage(ChatColor.GREEN + "Children: " + ChatColor.WHITE + perm.getChildren().size()); + } + } + return true; + } else if (subcommand.equals("dump")) { + if (!checkPerm(sender, "dump")) return true; + if (split.length < 1 || split.length > 3) return usage(sender, command, subcommand); + + int page; + Permissible permissible; + if (split.length == 1) { + permissible = sender; + page = 1; + } else if (split.length == 2) { + try { + permissible = sender; + page = Integer.parseInt(split[1]); + } + catch (NumberFormatException ex) { + permissible = plugin.getServer().getPlayer(split[1]); + page = 1; + } + } else { + permissible = plugin.getServer().getPlayer(split[1]); + try { + page = Integer.parseInt(split[2]); + } + catch (NumberFormatException ex) { + page = 1; + } + } + + if (permissible == null) { + sender.sendMessage(ChatColor.RED + "Player " + ChatColor.WHITE + split[1] + ChatColor.RED + " not found."); + } else { + ArrayList dump = new ArrayList(permissible.getEffectivePermissions()); + Collections.sort(dump, new Comparator() { + public int compare(PermissionAttachmentInfo a, PermissionAttachmentInfo b) { + return a.getPermission().compareTo(b.getPermission()); + } + }); + + int numpages = 1 + (dump.size() - 1) / 8; + if (page > numpages) { + page = numpages; + } else if (page < 1) { + page = 1; + } + + ChatColor g = ChatColor.GREEN, w = ChatColor.WHITE, r = ChatColor.RED; + + int start = 8 * (page - 1); + sender.sendMessage(ChatColor.RED + "[==== " + ChatColor.GREEN + "Page " + page + " of " + numpages + ChatColor.RED + " ====]"); + for (int i = start; i < start + 8 && i < dump.size(); ++i) { + PermissionAttachmentInfo info = dump.get(i); + + if (info.getAttachment() == null) { + sender.sendMessage(g + "Node " + w + info.getPermission() + g + "=" + w + info.getValue() + g + " (" + r + "default" + g + ")"); + } else { + sender.sendMessage(g + "Node " + w + info.getPermission() + g + "=" + w + info.getValue() + g + " (" + w + info.getAttachment().getPlugin().getDescription().getName() + g + ")"); + } + } + } + return true; + } else if (subcommand.equals("group")) { + if (split.length < 2) { + return !checkPerm(sender, "group.help") || usage(sender, command, subcommand); + } + groupCommand(sender, command, split); + return true; + } else if (subcommand.equals("player")) { + if (split.length < 2) { + return !checkPerm(sender, "player.help") || usage(sender, command, subcommand); + } + playerCommand(sender, command, split); + return true; + } else if (subcommand.equals("import")) { + if (!checkPerm(sender, "import")) return true; + if (split.length != 2) return usage(sender, command, subcommand); + String pluginName = split[1].toLowerCase(); + ImportManager manager; + + if (pluginName.equals("permissionsbukkit")) { + manager = new ImportPermBukkit(plugin); + } else if (pluginName.equals("privileges")) { + manager = new ImportPrivileges(plugin); + } else if (pluginName.equals("permissionsex")) { + manager = new ImportPermEx(plugin); + } else if (pluginName.equals("file")) { + manager = new ImportFile(plugin); + } else if (plugin.getConfig().getString("db/type") != null + && pluginName.equals(plugin.getConfig().getString("db/type").toLowerCase())) { + manager = new ImportDB(plugin); + } else { + sender.sendMessage(ChatColor.RED + "Unknown import type !"); + return true; + } + + try { + manager.run(); + plugin.refreshPermissions(); + sender.sendMessage(ChatColor.GREEN + "Operation success !"); + } catch (Exception e) { + plugin.reloadConfig(); + sender.sendMessage(ChatColor.RED + "An error occurred ! Please check server log..."); + e.printStackTrace(); + } + return true; + } else { + return !checkPerm(sender, "help") || usage(sender, command); + } } - private boolean groupCommand(CommandSender sender, Command command, String[] split) { - String subcommand = split[1]; - - if (subcommand.equals("list")) { - if (!checkPerm(sender, "group.list")) return true; - if (split.length != 2) return usage(sender, command, "group list"); - - String result = "", sep = ""; - for (String key : plugin.getNode("groups").getKeys(false)) { - result += sep + key; - sep = ", "; - } - sender.sendMessage(ChatColor.GREEN + "Groups: " + ChatColor.WHITE + result); - return true; - } else if (subcommand.equals("players")) { - if (!checkPerm(sender, "group.players")) return true; - if (split.length != 3) return usage(sender, command, "group players"); - String group = split[2]; - - if (plugin.getNode("groups/" + group) == null) { - sender.sendMessage(ChatColor.RED + "No such group " + ChatColor.WHITE + group + ChatColor.RED + "."); - return true; - } - - int count = 0; - String text = "", sep = ""; - for (String user : plugin.config.getPlayers(group)) { - ++count; - text += sep + user; - sep = ", "; - } - sender.sendMessage(ChatColor.GREEN + "Users in " + ChatColor.WHITE + group + ChatColor.GREEN + " (" + ChatColor.WHITE + count + ChatColor.GREEN + "): " + ChatColor.WHITE + text); - return true; - } else if (subcommand.equals("setperm")) { - if (split.length >= 4 && !checkPerm(sender, "group.setperm", Arrays.asList(split[3].split(",")))) return true; - if (split.length != 4 && split.length != 5) return usage(sender, command, "group setperm"); - String group = split[2]; - String perm = split[3]; - boolean value = (split.length != 5) || Boolean.parseBoolean(split[4]); - - String node = "permissions"; - if (plugin.getNode("groups/" + group) == null) { - sender.sendMessage(ChatColor.RED + "No such group " + ChatColor.WHITE + group + ChatColor.RED + "."); - return true; - } - - if (perm.contains(":")) { - String world = perm.substring(0, perm.indexOf(':')); - perm = perm.substring(perm.indexOf(':') + 1); - node = "worlds/" + world; - } - if (plugin.getNode("groups/" + group + "/" + node) == null) { - plugin.getConfig().createSection("groups/" + group + "/" + node); - } + private boolean groupCommand(CommandSender sender, Command command, String[] split) { + String subcommand = split[1]; - plugin.getNode("groups/" + group + "/" + node).set(perm, value); - plugin.refreshPermissions(); - - sender.sendMessage(ChatColor.GREEN + "Group " + ChatColor.WHITE + group + ChatColor.GREEN + " now has " + ChatColor.WHITE + perm + ChatColor.GREEN + " = " + ChatColor.WHITE + value + ChatColor.GREEN + "."); - return true; - } else if (subcommand.equals("unsetperm")) { - if (split.length >= 4 && !checkPerm(sender, "group.unsetperm", Arrays.asList(split[3].split(",")))) return true; - if (split.length != 4) return usage(sender, command, "group unsetperm"); - String group = split[2].toLowerCase(); - String perm = split[3]; - - String node = "permissions"; - if (plugin.getNode("groups/" + group) == null) { - sender.sendMessage(ChatColor.RED + "No such group " + ChatColor.WHITE + group + ChatColor.RED + "."); - return true; - } - - if (perm.contains(":")) { - String world = perm.substring(0, perm.indexOf(':')); - perm = perm.substring(perm.indexOf(':') + 1); - node = "worlds/" + world; - } - if (plugin.getNode("groups/" + group + "/" + node) == null) { - plugin.getConfig().createSection("groups/" + group + "/" + node); - } + if (subcommand.equals("list")) { + if (!checkPerm(sender, "group.list")) return true; + if (split.length != 2) return usage(sender, command, "group list"); - ConfigurationSection sec = plugin.getNode("groups/" + group + "/" + node); - if (!sec.contains(perm)) { - sender.sendMessage(ChatColor.GREEN + "Group " + ChatColor.WHITE + group + ChatColor.GREEN + " did not have " + ChatColor.WHITE + perm + ChatColor.GREEN + " set."); - return true; - } - sec.set(perm, null); - plugin.refreshPermissions(); - - sender.sendMessage(ChatColor.GREEN + "Group " + ChatColor.WHITE + group + ChatColor.GREEN + " no longer has " + ChatColor.WHITE + perm + ChatColor.GREEN + " set."); - return true; - } else { - return !checkPerm(sender, "group.help") || usage(sender, command); - } - } - - private boolean playerCommand(CommandSender sender, Command command, String[] split) { - String subcommand = split[1]; - - if (subcommand.equals("groups")) { - if (!checkPerm(sender, "player.groups")) return true; - if (split.length != 3) return usage(sender, command, "player groups"); - String player = split[2].toLowerCase(); - - if (!plugin.config.isPlayerInDB(player)) { - sender.sendMessage(ChatColor.GREEN + "Player " + ChatColor.WHITE + player + ChatColor.RED + " is in the default group."); - return true; - } - - int count = 0; - String text = "", sep = ""; - for (String group : plugin.config.getPlayerGroups(player)) { - ++count; - text += sep + group; - sep = ", "; - } - sender.sendMessage(ChatColor.GREEN + "Player " + ChatColor.WHITE + player + ChatColor.GREEN + " is in groups (" + ChatColor.WHITE + count + ChatColor.GREEN + "): " + ChatColor.WHITE + text); - return true; - } else if (subcommand.equals("setgroup")) { - if (split.length == 4 && !checkPerm(sender, "player.setgroup", Arrays.asList(split[3].split(",")))) return true; - if (split.length != 4) return usage(sender, command, "player setgroup"); - String player = split[2].toLowerCase(); - String[] groups = split[3].split(","); + String result = "", sep = ""; + for (String key : plugin.getNode("groups").getKeys(false)) { + result += sep + key; + sep = ", "; + } + sender.sendMessage(ChatColor.GREEN + "Groups: " + ChatColor.WHITE + result); + return true; + } else if (subcommand.equals("players")) { + if (!checkPerm(sender, "group.players")) return true; + if (split.length != 3) return usage(sender, command, "group players"); + String group = split[2]; - plugin.config.removePlayerGroups(player); - for (String group : Arrays.asList(groups)) { - plugin.config.addPlayerGroup(player, group); - } + if (plugin.getNode("groups/" + group) == null) { + sender.sendMessage(ChatColor.RED + "No such group " + ChatColor.WHITE + group + ChatColor.RED + "."); + return true; + } - plugin.refreshPermissions(); - - sender.sendMessage(ChatColor.GREEN + "Player " + ChatColor.WHITE + player + ChatColor.GREEN + " is now in " + ChatColor.WHITE + split[3] + ChatColor.GREEN + "."); - return true; - } else if (subcommand.equals("addgroup")) { - if (split.length == 4 && !checkPerm(sender, "player.addgroup", Arrays.asList(split[3]))) return true; - if (split.length != 4) return usage(sender, command, "player addgroup"); - String player = split[2].toLowerCase(); - String group = split[3]; - - if (plugin.config.getPlayerGroups(player).contains(group)) { - sender.sendMessage(ChatColor.GREEN + "Player " + ChatColor.WHITE + player + ChatColor.GREEN + " was already in " + ChatColor.WHITE + group + ChatColor.GREEN + "."); - return true; - } - plugin.config.addPlayerGroup(player, group); + int count = 0; + String text = "", sep = ""; + for (String user : plugin.config.getPlayers(group)) { + ++count; + text += sep + user; + sep = ", "; + } + sender.sendMessage(ChatColor.GREEN + "Users in " + ChatColor.WHITE + group + ChatColor.GREEN + " (" + ChatColor.WHITE + count + ChatColor.GREEN + "): " + ChatColor.WHITE + text); + return true; + } else if (subcommand.equals("setperm")) { + if (split.length >= 4 && !checkPerm(sender, "group.setperm", Arrays.asList(split[3].split(",")))) return true; + if (split.length != 4 && split.length != 5) return usage(sender, command, "group setperm"); + String group = split[2]; + String perm = split[3]; + boolean value = (split.length != 5) || Boolean.parseBoolean(split[4]); - plugin.refreshPermissions(); - - sender.sendMessage(ChatColor.GREEN + "Player " + ChatColor.WHITE + player + ChatColor.GREEN + " is now in " + ChatColor.WHITE + group + ChatColor.GREEN + "."); - return true; - } else if (subcommand.equals("removegroup")) { - if (split.length == 4 && !checkPerm(sender, "player.removegroup", Arrays.asList(split[3]))) return true; - if (split.length != 4) return usage(sender, command, "player removegroup"); - String player = split[2].toLowerCase(); - String group = split[3]; + String node = "permissions"; + if (plugin.getNode("groups/" + group) == null) { + sender.sendMessage(ChatColor.RED + "No such group " + ChatColor.WHITE + group + ChatColor.RED + "."); + return true; + } - if (!plugin.config.getPlayerGroups(player).contains(group)) { - sender.sendMessage(ChatColor.GREEN + "Player " + ChatColor.WHITE + player + ChatColor.GREEN + " was not in " + ChatColor.WHITE + group + ChatColor.GREEN + "."); - return true; - } - plugin.config.removePlayerGroup(player, group); + if (perm.contains(":")) { + String world = perm.substring(0, perm.indexOf(':')); + perm = perm.substring(perm.indexOf(':') + 1); + node = "worlds/" + world; + } + if (plugin.getNode("groups/" + group + "/" + node) == null) { + plugin.getConfig().createSection("groups/" + group + "/" + node); + } - plugin.refreshPermissions(); - - sender.sendMessage(ChatColor.GREEN + "Player " + ChatColor.WHITE + player + ChatColor.GREEN + " is no longer in " + ChatColor.WHITE + group + ChatColor.GREEN + "."); - return true; - } else if (subcommand.equals("remove")) { - if (!checkPerm(sender, "player.remove")) return true; - if (split.length != 3) return usage(sender, command, "player remove"); - String player = split[2].toLowerCase(); + plugin.getNode("groups/" + group + "/" + node).set(perm, value); + plugin.refreshPermissions(); - if (!plugin.config.isPlayerInDB(player)) { - sender.sendMessage(ChatColor.GREEN + "Player " + ChatColor.WHITE + player + ChatColor.GREEN + " was not in config file."); - return true; - } + sender.sendMessage(ChatColor.GREEN + "Group " + ChatColor.WHITE + group + ChatColor.GREEN + " now has " + ChatColor.WHITE + perm + ChatColor.GREEN + " = " + ChatColor.WHITE + value + ChatColor.GREEN + "."); + return true; + } else if (subcommand.equals("unsetperm")) { + if (split.length >= 4 && !checkPerm(sender, "group.unsetperm", Arrays.asList(split[3].split(",")))) return true; + if (split.length != 4) return usage(sender, command, "group unsetperm"); + String group = split[2].toLowerCase(); + String perm = split[3]; - plugin.config.removePlayer(player); - plugin.refreshPermissions(); - - sender.sendMessage(ChatColor.GREEN + "Player " + ChatColor.WHITE + player + ChatColor.GREEN + " is no longer in config file."); - return true; - } else if (subcommand.equals("setperm")) { - if (split.length >= 4 && !checkPerm(sender, "player.setperm", Arrays.asList(split[3].split(",")))) return true; - if (split.length != 4 && split.length != 5) return usage(sender, command, "player setperm"); - String player = split[2].toLowerCase(); - String perm = split[3]; - boolean value = (split.length != 5) || Boolean.parseBoolean(split[4]); + String node = "permissions"; + if (plugin.getNode("groups/" + group) == null) { + sender.sendMessage(ChatColor.RED + "No such group " + ChatColor.WHITE + group + ChatColor.RED + "."); + return true; + } - String world = ""; - if (perm.contains(":")) { - world = perm.substring(0, perm.indexOf(':')); - perm = perm.substring(perm.indexOf(':') + 1); - } + if (perm.contains(":")) { + String world = perm.substring(0, perm.indexOf(':')); + perm = perm.substring(perm.indexOf(':') + 1); + node = "worlds/" + world; + } + if (plugin.getNode("groups/" + group + "/" + node) == null) { + plugin.getConfig().createSection("groups/" + group + "/" + node); + } - plugin.config.addPlayerPermission(player, world, perm, value); - plugin.refreshPermissions(); - - sender.sendMessage(ChatColor.GREEN + "Player " + ChatColor.WHITE + player + ChatColor.GREEN + " now has " + ChatColor.WHITE + perm + ChatColor.GREEN + " = " + ChatColor.WHITE + value + ChatColor.GREEN + "."); - return true; - } else if (subcommand.equals("unsetperm")) { - if (split.length >= 4 && !checkPerm(sender, "player.unsetperm", Arrays.asList(split[3].split(",")))) return true; - if (split.length != 4) return usage(sender, command, "player unsetperm"); - String player = split[2].toLowerCase(); - String perm = split[3]; + ConfigurationSection sec = plugin.getNode("groups/" + group + "/" + node); + if (!sec.contains(perm)) { + sender.sendMessage(ChatColor.GREEN + "Group " + ChatColor.WHITE + group + ChatColor.GREEN + " did not have " + ChatColor.WHITE + perm + ChatColor.GREEN + " set."); + return true; + } + sec.set(perm, null); + plugin.refreshPermissions(); - String world = ""; - if (perm.contains(":")) { - world = perm.substring(0, perm.indexOf(':')); - perm = perm.substring(perm.indexOf(':') + 1); - } + sender.sendMessage(ChatColor.GREEN + "Group " + ChatColor.WHITE + group + ChatColor.GREEN + " no longer has " + ChatColor.WHITE + perm + ChatColor.GREEN + " set."); + return true; + } else { + return !checkPerm(sender, "group.help") || usage(sender, command); + } + } - Map list = plugin.config.getPlayerPermissions(player, world); - if (!list.containsKey(perm)) { - sender.sendMessage(ChatColor.GREEN + "Player " + ChatColor.WHITE + player + ChatColor.GREEN + " did not have " + ChatColor.WHITE + perm + ChatColor.GREEN + " set."); - return true; - } - plugin.config.removePlayerPermission(player, world, perm); - plugin.refreshPermissions(); - - sender.sendMessage(ChatColor.GREEN + "Player " + ChatColor.WHITE + player + ChatColor.GREEN + " no longer has " + ChatColor.WHITE + perm + ChatColor.GREEN + " set."); - return true; - } else { - return !checkPerm(sender, "player.help") || usage(sender, command); - } - } - - // -- utilities -- - - private boolean checkPerm(CommandSender sender, String subnode) { - boolean ok = sender.hasPermission("permissions." + subnode); - if (!ok) { - sender.sendMessage(ChatColor.RED + "You do not have permissions to do that."); - } - return ok; - } - - private boolean checkPerm(CommandSender sender, String node, List subnodes) { - boolean ok = sender.hasPermission("permissions." + node); - if (!ok) { - for (String subnode : subnodes) { - String testnode = ""; - for (String sub : subnode.split(".")) { - testnode += sub; - if (sender.hasPermission("permissions." + node + "." + testnode)) { - ok = true; - break; - } - } - if (ok) break; - } - } - if (!ok) { - sender.sendMessage(ChatColor.RED + "You do not have permissions to do that."); - } - return ok; - } - - private boolean usage(CommandSender sender, Command command) { - sender.sendMessage(ChatColor.RED + "[====" + ChatColor.GREEN + " /permissons " + ChatColor.RED + "====]"); - for (String line : command.getUsage().split("\\n")) { - if ((line.startsWith("/ group") && !line.startsWith("/ group -")) || - (line.startsWith("/ player") && !line.startsWith("/ player -"))) { - continue; - } - sender.sendMessage(formatLine(line)); - } - return true; - } - - private boolean usage(CommandSender sender, Command command, String subcommand) { - sender.sendMessage(ChatColor.RED + "[====" + ChatColor.GREEN + " /permissons " + subcommand + " " + ChatColor.RED + "====]"); - for (String line : command.getUsage().split("\\n")) { - if (line.startsWith("/ " + subcommand)) { - sender.sendMessage(formatLine(line)); - } - } - return true; - } - - private String formatLine(String line) { - int i = line.indexOf(" - "); - String usage = line.substring(0, i); - String desc = line.substring(i + 3); + private boolean playerCommand(CommandSender sender, Command command, String[] split) { + String subcommand = split[1]; - usage = usage.replace("", "permissions"); - usage = usage.replaceAll("\\[[^]:]+\\]", ChatColor.AQUA + "$0" + ChatColor.GREEN); - usage = usage.replaceAll("\\[[^]]+:\\]", ChatColor.AQUA + "$0" + ChatColor.LIGHT_PURPLE); - usage = usage.replaceAll("<[^>]+>", ChatColor.LIGHT_PURPLE + "$0" + ChatColor.GREEN); + if (subcommand.equals("groups")) { + if (!checkPerm(sender, "player.groups")) return true; + if (split.length != 3) return usage(sender, command, "player groups"); + String player = split[2].toLowerCase(); - return ChatColor.GREEN + usage + " - " + ChatColor.WHITE + desc; - } + if (!plugin.config.isPlayerInDB(player)) { + sender.sendMessage(ChatColor.GREEN + "Player " + ChatColor.WHITE + player + ChatColor.RED + " is in the default group."); + return true; + } + + int count = 0; + String text = "", sep = ""; + for (String group : plugin.config.getPlayerGroups(player)) { + ++count; + text += sep + group; + sep = ", "; + } + sender.sendMessage(ChatColor.GREEN + "Player " + ChatColor.WHITE + player + ChatColor.GREEN + " is in groups (" + ChatColor.WHITE + count + ChatColor.GREEN + "): " + ChatColor.WHITE + text); + return true; + } else if (subcommand.equals("setgroup")) { + if (split.length == 4 && !checkPerm(sender, "player.setgroup", Arrays.asList(split[3].split(",")))) return true; + if (split.length != 4) return usage(sender, command, "player setgroup"); + String player = split[2].toLowerCase(); + String[] groups = split[3].split(","); + + plugin.config.removePlayerGroups(player); + for (String group : Arrays.asList(groups)) { + plugin.config.addPlayerGroup(player, group); + } + + plugin.refreshPermissions(); + + sender.sendMessage(ChatColor.GREEN + "Player " + ChatColor.WHITE + player + ChatColor.GREEN + " is now in " + ChatColor.WHITE + split[3] + ChatColor.GREEN + "."); + return true; + } else if (subcommand.equals("addgroup")) { + if (split.length == 4 && !checkPerm(sender, "player.addgroup", Arrays.asList(split[3]))) return true; + if (split.length != 4) return usage(sender, command, "player addgroup"); + String player = split[2].toLowerCase(); + String group = split[3]; + + if (plugin.config.getPlayerGroups(player).contains(group)) { + sender.sendMessage(ChatColor.GREEN + "Player " + ChatColor.WHITE + player + ChatColor.GREEN + " was already in " + ChatColor.WHITE + group + ChatColor.GREEN + "."); + return true; + } + plugin.config.addPlayerGroup(player, group); + + plugin.refreshPermissions(); + + sender.sendMessage(ChatColor.GREEN + "Player " + ChatColor.WHITE + player + ChatColor.GREEN + " is now in " + ChatColor.WHITE + group + ChatColor.GREEN + "."); + return true; + } else if (subcommand.equals("removegroup")) { + if (split.length == 4 && !checkPerm(sender, "player.removegroup", Arrays.asList(split[3]))) return true; + if (split.length != 4) return usage(sender, command, "player removegroup"); + String player = split[2].toLowerCase(); + String group = split[3]; + + if (!plugin.config.getPlayerGroups(player).contains(group)) { + sender.sendMessage(ChatColor.GREEN + "Player " + ChatColor.WHITE + player + ChatColor.GREEN + " was not in " + ChatColor.WHITE + group + ChatColor.GREEN + "."); + return true; + } + plugin.config.removePlayerGroup(player, group); + + plugin.refreshPermissions(); + + sender.sendMessage(ChatColor.GREEN + "Player " + ChatColor.WHITE + player + ChatColor.GREEN + " is no longer in " + ChatColor.WHITE + group + ChatColor.GREEN + "."); + return true; + } else if (subcommand.equals("remove")) { + if (!checkPerm(sender, "player.remove")) return true; + if (split.length != 3) return usage(sender, command, "player remove"); + String player = split[2].toLowerCase(); + + if (!plugin.config.isPlayerInDB(player)) { + sender.sendMessage(ChatColor.GREEN + "Player " + ChatColor.WHITE + player + ChatColor.GREEN + " was not in config file."); + return true; + } + + plugin.config.removePlayer(player); + plugin.refreshPermissions(); + + sender.sendMessage(ChatColor.GREEN + "Player " + ChatColor.WHITE + player + ChatColor.GREEN + " is no longer in config file."); + return true; + } else if (subcommand.equals("setperm")) { + if (split.length >= 4 && !checkPerm(sender, "player.setperm", Arrays.asList(split[3].split(",")))) return true; + if (split.length != 4 && split.length != 5) return usage(sender, command, "player setperm"); + String player = split[2].toLowerCase(); + String perm = split[3]; + boolean value = (split.length != 5) || Boolean.parseBoolean(split[4]); + + String world = ""; + if (perm.contains(":")) { + world = perm.substring(0, perm.indexOf(':')); + perm = perm.substring(perm.indexOf(':') + 1); + } + + plugin.config.addPlayerPermission(player, world, perm, value); + plugin.refreshPermissions(); + + sender.sendMessage(ChatColor.GREEN + "Player " + ChatColor.WHITE + player + ChatColor.GREEN + " now has " + ChatColor.WHITE + perm + ChatColor.GREEN + " = " + ChatColor.WHITE + value + ChatColor.GREEN + "."); + return true; + } else if (subcommand.equals("unsetperm")) { + if (split.length >= 4 && !checkPerm(sender, "player.unsetperm", Arrays.asList(split[3].split(",")))) return true; + if (split.length != 4) return usage(sender, command, "player unsetperm"); + String player = split[2].toLowerCase(); + String perm = split[3]; + + String world = ""; + if (perm.contains(":")) { + world = perm.substring(0, perm.indexOf(':')); + perm = perm.substring(perm.indexOf(':') + 1); + } + + Map list = plugin.config.getPlayerPermissions(player, world); + if (!list.containsKey(perm)) { + sender.sendMessage(ChatColor.GREEN + "Player " + ChatColor.WHITE + player + ChatColor.GREEN + " did not have " + ChatColor.WHITE + perm + ChatColor.GREEN + " set."); + return true; + } + plugin.config.removePlayerPermission(player, world, perm); + plugin.refreshPermissions(); + + sender.sendMessage(ChatColor.GREEN + "Player " + ChatColor.WHITE + player + ChatColor.GREEN + " no longer has " + ChatColor.WHITE + perm + ChatColor.GREEN + " set."); + return true; + } else { + return !checkPerm(sender, "player.help") || usage(sender, command); + } + } + + // -- utilities -- + + private boolean checkPerm(CommandSender sender, String subnode) { + boolean ok = sender.hasPermission("permissions." + subnode); + if (!ok) { + sender.sendMessage(ChatColor.RED + "You do not have permissions to do that."); + } + return ok; + } + + private boolean checkPerm(CommandSender sender, String node, List subnodes) { + boolean ok = sender.hasPermission("permissions." + node); + if (!ok) { + for (String subnode : subnodes) { + String testnode = ""; + for (String sub : subnode.split(".")) { + testnode += sub; + if (sender.hasPermission("permissions." + node + "." + testnode)) { + ok = true; + break; + } + } + if (ok) break; + } + } + if (!ok) { + sender.sendMessage(ChatColor.RED + "You do not have permissions to do that."); + } + return ok; + } + + private boolean usage(CommandSender sender, Command command) { + sender.sendMessage(ChatColor.RED + "[====" + ChatColor.GREEN + " /permissons " + ChatColor.RED + "====]"); + for (String line : command.getUsage().split("\\n")) { + if ((line.startsWith("/ group") && !line.startsWith("/ group -")) || + (line.startsWith("/ player") && !line.startsWith("/ player -"))) { + continue; + } + sender.sendMessage(formatLine(line)); + } + return true; + } + + private boolean usage(CommandSender sender, Command command, String subcommand) { + sender.sendMessage(ChatColor.RED + "[====" + ChatColor.GREEN + " /permissons " + subcommand + " " + ChatColor.RED + "====]"); + for (String line : command.getUsage().split("\\n")) { + if (line.startsWith("/ " + subcommand)) { + sender.sendMessage(formatLine(line)); + } + } + return true; + } + + private String formatLine(String line) { + int i = line.indexOf(" - "); + String usage = line.substring(0, i); + String desc = line.substring(i + 3); + + usage = usage.replace("", "permissions"); + usage = usage.replaceAll("\\[[^]:]+\\]", ChatColor.AQUA + "$0" + ChatColor.GREEN); + usage = usage.replaceAll("\\[[^]]+:\\]", ChatColor.AQUA + "$0" + ChatColor.LIGHT_PURPLE); + usage = usage.replaceAll("<[^>]+>", ChatColor.LIGHT_PURPLE + "$0" + ChatColor.GREEN); + + return ChatColor.GREEN + usage + " - " + ChatColor.WHITE + desc; + } } diff --git a/net/crystalyx/bukkit/simplyperms/SimplyPlayer.java b/net/crystalyx/bukkit/simplyperms/SimplyPlayer.java index 1d21d47..a4116de 100755 --- a/net/crystalyx/bukkit/simplyperms/SimplyPlayer.java +++ b/net/crystalyx/bukkit/simplyperms/SimplyPlayer.java @@ -11,40 +11,40 @@ import org.bukkit.event.player.PlayerQuitEvent; public class SimplyPlayer implements Listener { private SimplyPlugin plugin; - + public SimplyPlayer(SimplyPlugin plugin) { this.plugin = plugin; } - + // Keep track of player's world - - @EventHandler(priority = EventPriority.LOWEST) - public void onWorldChange(PlayerChangedWorldEvent event) { - plugin.debug("Player " + event.getPlayer().getName() + " changed world, recalculating..."); - plugin.calculateAttachment(event.getPlayer()); - } - - // Register players when needed - - @EventHandler(priority = EventPriority.LOWEST) - public void onPlayerLogin(PlayerJoinEvent event) { - plugin.debug("Player " + event.getPlayer().getName() + " joined, registering..."); - plugin.registerPlayer(event.getPlayer()); - } - // Unregister players when needed - - @EventHandler(priority = EventPriority.HIGHEST) - public void onPlayerKick(PlayerKickEvent event) { - if (event.isCancelled()) return; - plugin.debug("Player " + event.getPlayer().getName() + " was kicked, unregistering..."); - plugin.unregisterPlayer(event.getPlayer()); - } + @EventHandler(priority = EventPriority.LOWEST) + public void onWorldChange(PlayerChangedWorldEvent event) { + plugin.debug("Player " + event.getPlayer().getName() + " changed world, recalculating..."); + plugin.calculateAttachment(event.getPlayer()); + } - @EventHandler(priority = EventPriority.HIGHEST) - public void onPlayerQuit(PlayerQuitEvent event) { - plugin.debug("Player " + event.getPlayer().getName() + " quit, unregistering..."); - plugin.unregisterPlayer(event.getPlayer()); - } + // Register players when needed + + @EventHandler(priority = EventPriority.LOWEST) + public void onPlayerLogin(PlayerJoinEvent event) { + plugin.debug("Player " + event.getPlayer().getName() + " joined, registering..."); + plugin.registerPlayer(event.getPlayer()); + } + + // Unregister players when needed + + @EventHandler(priority = EventPriority.HIGHEST) + public void onPlayerKick(PlayerKickEvent event) { + if (event.isCancelled()) return; + plugin.debug("Player " + event.getPlayer().getName() + " was kicked, unregistering..."); + plugin.unregisterPlayer(event.getPlayer()); + } + + @EventHandler(priority = EventPriority.HIGHEST) + public void onPlayerQuit(PlayerQuitEvent event) { + plugin.debug("Player " + event.getPlayer().getName() + " quit, unregistering..."); + plugin.unregisterPlayer(event.getPlayer()); + } } diff --git a/net/crystalyx/bukkit/simplyperms/SimplyPlugin.java b/net/crystalyx/bukkit/simplyperms/SimplyPlugin.java index 9c17582..9dd35ba 100755 --- a/net/crystalyx/bukkit/simplyperms/SimplyPlugin.java +++ b/net/crystalyx/bukkit/simplyperms/SimplyPlugin.java @@ -23,14 +23,14 @@ import org.bukkit.plugin.java.JavaPlugin; public class SimplyPlugin extends JavaPlugin { protected PermsConfig config; - private SimplyPlayer playerListener = new SimplyPlayer(this); - private SimplyCommands commandExecutor = new SimplyCommands(this); + private SimplyPlayer playerListener = new SimplyPlayer(this); + private SimplyCommands commandExecutor = new SimplyCommands(this); private HashMap permissions = new HashMap(); private File configFile; - private YamlConfiguration YamlConfig; - - // -- Basic stuff + private YamlConfiguration YamlConfig; + + // -- Basic stuff @Override public void onEnable() { // Unregister existing PermissionsBukkit nodes @@ -47,55 +47,55 @@ public class SimplyPlugin extends JavaPlugin { } } - // Take care of configuration - configFile = new File(getDataFolder(), "config.yml"); - if (!configFile.exists()) { - saveDefaultConfig(); - } - reloadConfig(); + // Take care of configuration + configFile = new File(getDataFolder(), "config.yml"); + if (!configFile.exists()) { + saveDefaultConfig(); + } + reloadConfig(); - // Register stuff + // Register stuff getCommand("permissions").setExecutor(commandExecutor); getServer().getPluginManager().registerEvents(playerListener, this); registerEvents(); - // Register everyone online right now - for (Player p : getServer().getOnlinePlayers()) { - registerPlayer(p); - } + // Register everyone online right now + for (Player p : getServer().getOnlinePlayers()) { + registerPlayer(p); + } - // How are you gentlemen - getLogger().info("Enabled successfully, " + getServer().getOnlinePlayers().length + " players registered"); + // How are you gentlemen + getLogger().info("Enabled successfully, " + getServer().getOnlinePlayers().length + " players registered"); } - @Override - public FileConfiguration getConfig() { - return YamlConfig; - } + @Override + public FileConfiguration getConfig() { + return YamlConfig; + } - @Override - public void reloadConfig() { - YamlConfig = new YamlConfiguration(); - YamlConfig.options().pathSeparator('/'); - try { - YamlConfig.load(configFile); - } catch (Exception e) { - getLogger().severe("Unable to load configuration!"); - } + @Override + public void reloadConfig() { + YamlConfig = new YamlConfiguration(); + YamlConfig.options().pathSeparator('/'); + try { + YamlConfig.load(configFile); + } catch (Exception e) { + getLogger().severe("Unable to load configuration!"); + } // Init DB initDatabase(); - } - + } + @Override public void onDisable() { - // Unregister everyone - for (Player p : getServer().getOnlinePlayers()) { - unregisterPlayer(p); - } + // Unregister everyone + for (Player p : getServer().getOnlinePlayers()) { + unregisterPlayer(p); + } - // Good day to you! I said good day! - getLogger().info("Disabled successfully, " + getServer().getOnlinePlayers().length + " players unregistered"); + // Good day to you! I said good day! + getLogger().info("Disabled successfully, " + getServer().getOnlinePlayers().length + " players unregistered"); } private void initDatabase() { @@ -118,172 +118,172 @@ public class SimplyPlugin extends JavaPlugin { return new SimplyAPI(this); } - // -- Plugin stuff - - protected void registerPlayer(Player player) { - if (permissions.containsKey(player.getName())) { - debug("Registering " + player.getName() + ": was already registered"); - unregisterPlayer(player); - } - PermissionAttachment attachment = player.addAttachment(this); - permissions.put(player.getName(), attachment); - calculateAttachment(player); - } + // -- Plugin stuff - protected void unregisterPlayer(Player player) { - if (permissions.containsKey(player.getName())) { - try { - player.removeAttachment(permissions.get(player.getName())); - } - catch (IllegalArgumentException ex) { - debug("Unregistering " + player.getName() + ": player did not have attachment"); - } - permissions.remove(player.getName()); - } else { - debug("Unregistering " + player.getName() + ": was not registered"); - } - } + protected void registerPlayer(Player player) { + if (permissions.containsKey(player.getName())) { + debug("Registering " + player.getName() + ": was already registered"); + unregisterPlayer(player); + } + PermissionAttachment attachment = player.addAttachment(this); + permissions.put(player.getName(), attachment); + calculateAttachment(player); + } - protected void refreshPermissions() { - try { - getConfig().save(configFile); - reloadConfig(); - } catch (IOException e) { - getLogger().warning("Failed to write changed config.yml: " + e.getMessage()); - } - for (String player : permissions.keySet()) { - PermissionAttachment attachment = permissions.get(player); - for (String key : attachment.getPermissions().keySet()) { - attachment.unsetPermission(key); - } + protected void unregisterPlayer(Player player) { + if (permissions.containsKey(player.getName())) { + try { + player.removeAttachment(permissions.get(player.getName())); + } + catch (IllegalArgumentException ex) { + debug("Unregistering " + player.getName() + ": player did not have attachment"); + } + permissions.remove(player.getName()); + } else { + debug("Unregistering " + player.getName() + ": was not registered"); + } + } + + protected void refreshPermissions() { + try { + getConfig().save(configFile); + reloadConfig(); + } catch (IOException e) { + getLogger().warning("Failed to write changed config.yml: " + e.getMessage()); + } + for (String player : permissions.keySet()) { + PermissionAttachment attachment = permissions.get(player); + for (String key : attachment.getPermissions().keySet()) { + attachment.unsetPermission(key); + } + + calculateAttachment(getServer().getPlayer(player)); + } + } + + public ConfigurationSection getNode(String node) { + for (String entry : getConfig().getKeys(true)) { + if (node.equalsIgnoreCase(entry) && getConfig().isConfigurationSection(entry)) { + return getConfig().getConfigurationSection(entry); + } + } + return null; + } + + protected HashMap getAllPerms(String desc, String path) { + HashMap result = new HashMap(); + ConfigurationSection node = getNode(path); + + int failures = 0; + String firstFailure = ""; + + Set keys = node.getKeys(false); + for (String key : keys) { + if (node.isBoolean(key)) { + result.put(key, node.getBoolean(key)); + } else { + ++failures; + if (firstFailure.length() == 0) { + firstFailure = key; + } + } + } + + if (failures == 1) { + getLogger().warning("In " + desc + ": " + firstFailure + " is non-boolean."); + } else if (failures > 1) { + getLogger().warning("In " + desc + ": " + firstFailure + " is non-boolean (+" + (failures-1) + " more)."); + } + + return result; + } - calculateAttachment(getServer().getPlayer(player)); - } - } - - public ConfigurationSection getNode(String node) { - for (String entry : getConfig().getKeys(true)) { - if (node.equalsIgnoreCase(entry) && getConfig().isConfigurationSection(entry)) { - return getConfig().getConfigurationSection(entry); - } - } - return null; - } - - protected HashMap getAllPerms(String desc, String path) { - HashMap result = new HashMap(); - ConfigurationSection node = getNode(path); - - int failures = 0; - String firstFailure = ""; - - Set keys = node.getKeys(false); - for (String key : keys) { - if (node.isBoolean(key)) { - result.put(key, node.getBoolean(key)); - } else { - ++failures; - if (firstFailure.length() == 0) { - firstFailure = key; - } - } - } - - if (failures == 1) { - getLogger().warning("In " + desc + ": " + firstFailure + " is non-boolean."); - } else if (failures > 1) { - getLogger().warning("In " + desc + ": " + firstFailure + " is non-boolean (+" + (failures-1) + " more)."); - } - - return result; - } - public void debug(String message) { if (getConfig().getBoolean("debug", false)) { getLogger().info("Debug: " + message); } } - - protected void calculateAttachment(Player player) { - if (player == null) { - return; - } - PermissionAttachment attachment = permissions.get(player.getName()); - if (attachment == null) { - debug("Calculating permissions on " + player.getName() + ": attachment was null"); - return; - } - - for (String key : attachment.getPermissions().keySet()) { - attachment.unsetPermission(key); - } - for (Map.Entry entry : calculatePlayerPermissions(player.getName().toLowerCase(), player.getWorld().getName()).entrySet()) { - attachment.setPermission(entry.getKey(), entry.getValue()); - } + protected void calculateAttachment(Player player) { + if (player == null) { + return; + } + PermissionAttachment attachment = permissions.get(player.getName()); + if (attachment == null) { + debug("Calculating permissions on " + player.getName() + ": attachment was null"); + return; + } - player.recalculatePermissions(); - } + for (String key : attachment.getPermissions().keySet()) { + attachment.unsetPermission(key); + } - // -- Private stuff - - private Map calculatePlayerPermissions(String player, String world) { - String default_group = getConfig().getString("default", "default"); - if (!config.isPlayerInDB(player)) { - return calculateGroupPermissions(default_group, world); - } + for (Map.Entry entry : calculatePlayerPermissions(player.getName().toLowerCase(), player.getWorld().getName()).entrySet()) { + attachment.setPermission(entry.getKey(), entry.getValue()); + } - Map perms = new HashMap(); - List groups = config.getPlayerGroups(player); - if (groups.isEmpty()) groups.add(default_group); - - for (Entry entry : config.getPlayerPermissions(player).entrySet()) { - perms.put(entry.getKey(), entry.getValue()); - } + player.recalculatePermissions(); + } - for (Entry entry : config.getPlayerPermissions(player, world).entrySet()) { - // No containskey; world overrides non-world - perms.put(entry.getKey(), entry.getValue()); - } + // -- Private stuff - for (String group : groups) { - for (Map.Entry entry : calculateGroupPermissions(group, world).entrySet()) { - if (!perms.containsKey(entry.getKey())) { // User overrides group - perms.put(entry.getKey(), entry.getValue()); - } - } - } + private Map calculatePlayerPermissions(String player, String world) { + String default_group = getConfig().getString("default", "default"); + if (!config.isPlayerInDB(player)) { + return calculateGroupPermissions(default_group, world); + } - return perms; - } + Map perms = new HashMap(); + List groups = config.getPlayerGroups(player); + if (groups.isEmpty()) groups.add(default_group); - private Map calculateGroupPermissions(String group, String world) { - if (getNode("groups/" + group) == null) { - return new HashMap(); - } + for (Entry entry : config.getPlayerPermissions(player).entrySet()) { + perms.put(entry.getKey(), entry.getValue()); + } - Map perms = getNode("groups/" + group + "/permissions") == null ? - new HashMap() : - getAllPerms("group " + group, "groups/" + group + "/permissions"); - + for (Entry entry : config.getPlayerPermissions(player, world).entrySet()) { + // No containskey; world overrides non-world + perms.put(entry.getKey(), entry.getValue()); + } - if (getNode("groups/" + group + "/worlds/" + world) != null) { - for (Map.Entry entry : getAllPerms("group " + group, "groups/" + group + "/worlds/" + world).entrySet()) { - // No containskey; world overrides non-world - perms.put(entry.getKey(), entry.getValue()); - } - } + for (String group : groups) { + for (Map.Entry entry : calculateGroupPermissions(group, world).entrySet()) { + if (!perms.containsKey(entry.getKey())) { // User overrides group + perms.put(entry.getKey(), entry.getValue()); + } + } + } - for (String parent : getNode("groups/" + group).getStringList("inheritance")) { - for (Map.Entry entry : calculateGroupPermissions(parent, world).entrySet()) { - if (!perms.containsKey(entry.getKey())) { // Children override permissions - perms.put(entry.getKey(), entry.getValue()); - } - } - } + return perms; + } - return perms; - } + private Map calculateGroupPermissions(String group, String world) { + if (getNode("groups/" + group) == null) { + return new HashMap(); + } + + Map perms = getNode("groups/" + group + "/permissions") == null ? + new HashMap() : + getAllPerms("group " + group, "groups/" + group + "/permissions"); + + + if (getNode("groups/" + group + "/worlds/" + world) != null) { + for (Map.Entry entry : getAllPerms("group " + group, "groups/" + group + "/worlds/" + world).entrySet()) { + // No containskey; world overrides non-world + perms.put(entry.getKey(), entry.getValue()); + } + } + + for (String parent : getNode("groups/" + group).getStringList("inheritance")) { + for (Map.Entry entry : calculateGroupPermissions(parent, world).entrySet()) { + if (!perms.containsKey(entry.getKey())) { // Children override permissions + perms.put(entry.getKey(), entry.getValue()); + } + } + } + + return perms; + } private void registerEvents() { String path = getDescription().getMain().substring(0, getDescription().getMain().lastIndexOf('.')); @@ -294,6 +294,6 @@ public class SimplyPlugin extends JavaPlugin { debug(e.getMessage()); } } - } + } } diff --git a/net/crystalyx/bukkit/simplyperms/SimplyPrevents.java b/net/crystalyx/bukkit/simplyperms/SimplyPrevents.java index 3060e76..b2e5de6 100755 --- a/net/crystalyx/bukkit/simplyperms/SimplyPrevents.java +++ b/net/crystalyx/bukkit/simplyperms/SimplyPrevents.java @@ -70,7 +70,7 @@ public abstract class SimplyPrevents implements Listener { throttleTimestamps.put(player, Long.valueOf(current + 3000)); } } - + private void deny(Cancellable event, Player player, String node) { event.setCancelled(true); if (plugin.getConfig().getString("messages/" + node) != null) { diff --git a/net/crystalyx/bukkit/simplyperms/imports/ImportDB.java b/net/crystalyx/bukkit/simplyperms/imports/ImportDB.java index 0cbc2c4..d8bb4df 100644 --- a/net/crystalyx/bukkit/simplyperms/imports/ImportDB.java +++ b/net/crystalyx/bukkit/simplyperms/imports/ImportDB.java @@ -18,31 +18,31 @@ public class ImportDB extends SimplyAPI implements ImportManager { @Override public void run() throws Exception { - try { - ConfigFile importFile = new ConfigFile(plugin); - ConfigSQL importSQL = new ConfigSQL(plugin); - if (!importSQL.checkDatabase()) { - throw new Exception("Could not connect to database !"); - } - - for (String player : importSQL.getAllPlayers()) { - for (String group : importSQL.getPlayerGroups(player)) { - importFile.addPlayerGroup(player, group); - } + try { + ConfigFile importFile = new ConfigFile(plugin); + ConfigSQL importSQL = new ConfigSQL(plugin); + if (!importSQL.checkDatabase()) { + throw new Exception("Could not connect to database !"); + } - for (Entry permission : importSQL.getPlayerPermissions(player).entrySet()) { - importFile.addPlayerPermission(player, permission.getKey(), permission.getValue()); - } + for (String player : importSQL.getAllPlayers()) { + for (String group : importSQL.getPlayerGroups(player)) { + importFile.addPlayerGroup(player, group); + } - for (String world : importSQL.getPlayerWorlds(player)) { - for (Entry permission : importSQL.getPlayerPermissions(player, world).entrySet()) { - importFile.addPlayerPermission(player, world, permission.getKey(), permission.getValue()); - } - } - } - } catch (Exception e) { - throw e; - } + for (Entry permission : importSQL.getPlayerPermissions(player).entrySet()) { + importFile.addPlayerPermission(player, permission.getKey(), permission.getValue()); + } + + for (String world : importSQL.getPlayerWorlds(player)) { + for (Entry permission : importSQL.getPlayerPermissions(player, world).entrySet()) { + importFile.addPlayerPermission(player, world, permission.getKey(), permission.getValue()); + } + } + } + } catch (Exception e) { + throw e; + } } } diff --git a/net/crystalyx/bukkit/simplyperms/imports/ImportFile.java b/net/crystalyx/bukkit/simplyperms/imports/ImportFile.java index 4874d93..39037a1 100644 --- a/net/crystalyx/bukkit/simplyperms/imports/ImportFile.java +++ b/net/crystalyx/bukkit/simplyperms/imports/ImportFile.java @@ -18,31 +18,31 @@ public class ImportFile extends SimplyAPI implements ImportManager { @Override public void run() throws Exception { - try { - ConfigFile importFile = new ConfigFile(plugin); - ConfigSQL importSQL = new ConfigSQL(plugin); - if (!importSQL.checkDatabase()) { - throw new Exception("Could not connect to database !"); - } + try { + ConfigFile importFile = new ConfigFile(plugin); + ConfigSQL importSQL = new ConfigSQL(plugin); + if (!importSQL.checkDatabase()) { + throw new Exception("Could not connect to database !"); + } - for (String player : importFile.getAllPlayers()) { - for (String group : importFile.getPlayerGroups(player)) { - importSQL.addPlayerGroup(player, group); - } + for (String player : importFile.getAllPlayers()) { + for (String group : importFile.getPlayerGroups(player)) { + importSQL.addPlayerGroup(player, group); + } - for (Entry permission : importFile.getPlayerPermissions(player).entrySet()) { - importSQL.addPlayerPermission(player, permission.getKey(), permission.getValue()); - } + for (Entry permission : importFile.getPlayerPermissions(player).entrySet()) { + importSQL.addPlayerPermission(player, permission.getKey(), permission.getValue()); + } - for (String world : importFile.getPlayerWorlds(player)) { - for (Entry permission : importFile.getPlayerPermissions(player, world).entrySet()) { - importSQL.addPlayerPermission(player, world, permission.getKey(), permission.getValue()); - } - } - } - } catch (Exception e) { - throw e; - } + for (String world : importFile.getPlayerWorlds(player)) { + for (Entry permission : importFile.getPlayerPermissions(player, world).entrySet()) { + importSQL.addPlayerPermission(player, world, permission.getKey(), permission.getValue()); + } + } + } + } catch (Exception e) { + throw e; + } } } diff --git a/net/crystalyx/bukkit/simplyperms/imports/ImportPermBukkit.java b/net/crystalyx/bukkit/simplyperms/imports/ImportPermBukkit.java index 8a62508..9fc1d69 100644 --- a/net/crystalyx/bukkit/simplyperms/imports/ImportPermBukkit.java +++ b/net/crystalyx/bukkit/simplyperms/imports/ImportPermBukkit.java @@ -22,7 +22,7 @@ public class ImportPermBukkit extends SimplyAPI implements ImportManager { @Override public void run() throws Exception { try { - permBukkit.load("plugins/PermissionsBukkit/config.yml"); + permBukkit.load("plugins/PermissionsBukkit/config.yml"); plugin.getConfig().set("debug", permBukkit.getBoolean("debug")); addMessage("build", permBukkit.getString("messages/build")); @@ -30,7 +30,7 @@ public class ImportPermBukkit extends SimplyAPI implements ImportManager { for (String group : permBukkit.getStringList("users/" + player + "/groups")) { addPlayerGroup(player, group); } - + for (Entry perm : permBukkit.getConfigurationSection("users/" + player + "/permissions").getValues(false).entrySet()) { addPlayerPermission(player, perm.getKey(), (Boolean) perm.getValue()); } diff --git a/net/crystalyx/bukkit/simplyperms/imports/ImportPermEx.java b/net/crystalyx/bukkit/simplyperms/imports/ImportPermEx.java index 8e708f0..62499ab 100644 --- a/net/crystalyx/bukkit/simplyperms/imports/ImportPermEx.java +++ b/net/crystalyx/bukkit/simplyperms/imports/ImportPermEx.java @@ -9,7 +9,7 @@ public class ImportPermEx extends SimplyAPI implements ImportManager { private SimplyPlugin plugin; private YamlConfiguration permEx; - + public ImportPermEx(SimplyPlugin plugin) { super(plugin); this.plugin = plugin; @@ -22,12 +22,12 @@ public class ImportPermEx extends SimplyAPI implements ImportManager { permEx.load("plugins/PermissionsEx/config.yml"); plugin.getConfig().set("debug", permEx.getBoolean("permissions.debug")); permEx.load("plugins/PermissionsEx/" + permEx.getString("permissions.backends.file.file")); - + for (String player : getKeys(permEx, "users")) { for (String group : permEx.getStringList("users." + player + ".group")) { addPlayerGroup(player, group); } - + for (String perm : permEx.getStringList("users." + player + ".permissions")) { addPlayerPermission(player, perm.replace("-", ""), !perm.startsWith("-")); } diff --git a/net/crystalyx/bukkit/simplyperms/imports/ImportPrivileges.java b/net/crystalyx/bukkit/simplyperms/imports/ImportPrivileges.java index 9825e3e..b1e5ac3 100644 --- a/net/crystalyx/bukkit/simplyperms/imports/ImportPrivileges.java +++ b/net/crystalyx/bukkit/simplyperms/imports/ImportPrivileges.java @@ -30,7 +30,7 @@ public class ImportPrivileges extends SimplyAPI implements ImportManager { for (String permission : privileges.getStringList("users." + player + ".permissions")) { addPlayerPermission(player, permission.replace("-", ""), !permission.startsWith("-")); } - + for (String world : getKeys(privileges, "users." + player + ".worlds")) { for (String worldpermission : privileges.getStringList("users." + player + ".worlds." + world)) { addPlayerPermission(player, world, worldpermission.replace("-", ""), !worldpermission.startsWith("-")); @@ -43,13 +43,13 @@ public class ImportPrivileges extends SimplyAPI implements ImportManager { for (String permission : privileges.getStringList("groups." + group + ".permissions")) { addGroupPermission(group, permission.replace("-", ""), !permission.startsWith("-")); } - + for (String world : getKeys(privileges, "groups." + group + ".worlds")) { for (String worldpermission : privileges.getStringList("groups." + group + ".worlds." + world)) { addGroupPermission(group, world, worldpermission.replace("-", ""), !worldpermission.startsWith("-")); } } - + for (String inherit : privileges.getStringList("groups." + group + ".inheritance")) { addGroupInheritance(group, inherit); } diff --git a/net/crystalyx/bukkit/simplyperms/io/ConfigSQL.java b/net/crystalyx/bukkit/simplyperms/io/ConfigSQL.java index dfc23ea..fce801d 100755 --- a/net/crystalyx/bukkit/simplyperms/io/ConfigSQL.java +++ b/net/crystalyx/bukkit/simplyperms/io/ConfigSQL.java @@ -24,7 +24,7 @@ public class ConfigSQL implements PermsConfig { private String column_world; private String column_value; private String column_date; - + public ConfigSQL(SimplyPlugin plugin) { this.plugin = plugin; table_players = plugin.getConfig().getString("db/table/players"); @@ -55,7 +55,7 @@ public class ConfigSQL implements PermsConfig { return false; } } - + public boolean checkDatabase() { if (init()) { String date = (!column_date.isEmpty()) ? column_date + " DATETIME," : ""; @@ -77,7 +77,7 @@ public class ConfigSQL implements PermsConfig { } return false; } - + @Override public void removePlayer(String player) { removePlayerPermissions(player); @@ -126,10 +126,10 @@ public class ConfigSQL implements PermsConfig { else { plugin.debug(e.getMessage()); } - } + } } } - + @Override public void addPlayerGroup(String player, String group) { addPlayerGroup(player, group, true); @@ -152,7 +152,7 @@ public class ConfigSQL implements PermsConfig { else { plugin.debug(e.getMessage()); } - } + } } } @@ -175,7 +175,7 @@ public class ConfigSQL implements PermsConfig { sql.executeUpdate(); } catch (SQLException e) { plugin.debug(e.getMessage()); - } + } } } @@ -195,7 +195,7 @@ public class ConfigSQL implements PermsConfig { sql.executeUpdate(); } catch (SQLException e) { plugin.debug(e.getMessage()); - } + } } } @@ -280,7 +280,7 @@ public class ConfigSQL implements PermsConfig { } catch (SQLException e) { plugin.debug(e.getMessage()); return false; - } + } } return false; } diff --git a/net/crystalyx/bukkit/simplyperms/io/PermsConfig.java b/net/crystalyx/bukkit/simplyperms/io/PermsConfig.java index fef0afc..59eedfe 100755 --- a/net/crystalyx/bukkit/simplyperms/io/PermsConfig.java +++ b/net/crystalyx/bukkit/simplyperms/io/PermsConfig.java @@ -14,7 +14,7 @@ public interface PermsConfig { public void addPlayerGroup(String player, String group); public void addPlayerPermission(String player, String permission, boolean value); - + public void addPlayerPermission(String player, String world, String permission, boolean value); public void removePlayerPermissions(String player); @@ -34,7 +34,7 @@ public interface PermsConfig { public boolean isPlayerInDB(String player); public List getPlayerWorlds(String player); - + public List getAllPlayers(); - + } diff --git a/net/crystalyx/bukkit/simplyperms/preventions/Chat.java b/net/crystalyx/bukkit/simplyperms/preventions/Chat.java index 4dfb48a..7f20b4c 100644 --- a/net/crystalyx/bukkit/simplyperms/preventions/Chat.java +++ b/net/crystalyx/bukkit/simplyperms/preventions/Chat.java @@ -19,5 +19,5 @@ public class Chat extends SimplyPrevents { prevent(event, event.getPlayer(), "chat"); } } - + } diff --git a/net/crystalyx/bukkit/simplyperms/preventions/Command.java b/net/crystalyx/bukkit/simplyperms/preventions/Command.java index 88ddce8..ad6ae68 100644 --- a/net/crystalyx/bukkit/simplyperms/preventions/Command.java +++ b/net/crystalyx/bukkit/simplyperms/preventions/Command.java @@ -27,5 +27,5 @@ public class Command extends SimplyPrevents { } } } - + } diff --git a/net/crystalyx/bukkit/simplyperms/preventions/Damage.java b/net/crystalyx/bukkit/simplyperms/preventions/Damage.java index 3bb5544..ff7cf51 100644 --- a/net/crystalyx/bukkit/simplyperms/preventions/Damage.java +++ b/net/crystalyx/bukkit/simplyperms/preventions/Damage.java @@ -43,5 +43,5 @@ public class Damage extends SimplyPrevents { } } } - + } diff --git a/net/crystalyx/bukkit/simplyperms/preventions/Fight.java b/net/crystalyx/bukkit/simplyperms/preventions/Fight.java index e1d3184..1cf6bfc 100644 --- a/net/crystalyx/bukkit/simplyperms/preventions/Fight.java +++ b/net/crystalyx/bukkit/simplyperms/preventions/Fight.java @@ -29,5 +29,5 @@ public class Fight extends SimplyPrevents { } } } - + } diff --git a/net/crystalyx/bukkit/simplyperms/preventions/Hunger.java b/net/crystalyx/bukkit/simplyperms/preventions/Hunger.java index ee8c5f2..0914f9b 100644 --- a/net/crystalyx/bukkit/simplyperms/preventions/Hunger.java +++ b/net/crystalyx/bukkit/simplyperms/preventions/Hunger.java @@ -22,5 +22,5 @@ public class Hunger extends SimplyPrevents { prevent(event, (Player) entity, "hunger"); } } - + } diff --git a/net/crystalyx/bukkit/simplyperms/preventions/Item.java b/net/crystalyx/bukkit/simplyperms/preventions/Item.java index 8ded30b..b1ba4a8 100644 --- a/net/crystalyx/bukkit/simplyperms/preventions/Item.java +++ b/net/crystalyx/bukkit/simplyperms/preventions/Item.java @@ -28,5 +28,5 @@ public class Item extends SimplyPrevents { } } } - + } diff --git a/net/crystalyx/bukkit/simplyperms/preventions/Monster.java b/net/crystalyx/bukkit/simplyperms/preventions/Monster.java index 6cd488f..4ed6229 100644 --- a/net/crystalyx/bukkit/simplyperms/preventions/Monster.java +++ b/net/crystalyx/bukkit/simplyperms/preventions/Monster.java @@ -22,5 +22,5 @@ public class Monster extends SimplyPrevents { prevent(event, (Player) target, "monster"); } } - + } diff --git a/net/crystalyx/bukkit/simplyperms/preventions/Sneak.java b/net/crystalyx/bukkit/simplyperms/preventions/Sneak.java index 09c34c9..1289131 100644 --- a/net/crystalyx/bukkit/simplyperms/preventions/Sneak.java +++ b/net/crystalyx/bukkit/simplyperms/preventions/Sneak.java @@ -24,5 +24,5 @@ public class Sneak extends SimplyPrevents { } } } - + } diff --git a/net/crystalyx/bukkit/simplyperms/preventions/Vehicle.java b/net/crystalyx/bukkit/simplyperms/preventions/Vehicle.java index 505ac36..f48b5b3 100644 --- a/net/crystalyx/bukkit/simplyperms/preventions/Vehicle.java +++ b/net/crystalyx/bukkit/simplyperms/preventions/Vehicle.java @@ -66,5 +66,5 @@ public class Vehicle extends SimplyPrevents { } } } - + } diff --git a/net/crystalyx/bukkit/simplyperms/preventions/animals/Shear.java b/net/crystalyx/bukkit/simplyperms/preventions/animals/Shear.java index 184c0fb..bdcc35a 100644 --- a/net/crystalyx/bukkit/simplyperms/preventions/animals/Shear.java +++ b/net/crystalyx/bukkit/simplyperms/preventions/animals/Shear.java @@ -8,7 +8,7 @@ import org.bukkit.event.EventPriority; import org.bukkit.event.player.PlayerShearEntityEvent; public class Shear extends SimplyPrevents { - + public Shear(SimplyPlugin plugin) { super(plugin); } @@ -17,5 +17,5 @@ public class Shear extends SimplyPrevents { public void shear(PlayerShearEntityEvent event) { prevent(event, event.getPlayer(), "shear,animals,interact"); } - + } diff --git a/net/crystalyx/bukkit/simplyperms/preventions/animals/Tame.java b/net/crystalyx/bukkit/simplyperms/preventions/animals/Tame.java index 2fec576..98b11b8 100644 --- a/net/crystalyx/bukkit/simplyperms/preventions/animals/Tame.java +++ b/net/crystalyx/bukkit/simplyperms/preventions/animals/Tame.java @@ -20,5 +20,5 @@ public class Tame extends SimplyPrevents { prevent(event, (Player) event.getOwner(), "tame,animals,interact"); } } - + } diff --git a/net/crystalyx/bukkit/simplyperms/preventions/bucket/Lavabucket.java b/net/crystalyx/bukkit/simplyperms/preventions/bucket/Lavabucket.java index f24ec62..694b083 100644 --- a/net/crystalyx/bukkit/simplyperms/preventions/bucket/Lavabucket.java +++ b/net/crystalyx/bukkit/simplyperms/preventions/bucket/Lavabucket.java @@ -28,5 +28,5 @@ public class Lavabucket extends SimplyPrevents { prevent(event, event.getPlayer(), "lavabucket,bucket,interact"); } } - + } diff --git a/net/crystalyx/bukkit/simplyperms/preventions/bucket/Milking.java b/net/crystalyx/bukkit/simplyperms/preventions/bucket/Milking.java index 41d21e2..2513529 100644 --- a/net/crystalyx/bukkit/simplyperms/preventions/bucket/Milking.java +++ b/net/crystalyx/bukkit/simplyperms/preventions/bucket/Milking.java @@ -20,5 +20,5 @@ public class Milking extends SimplyPrevents { prevent(event, event.getPlayer(), "milking,bucket,interact"); } } - + } diff --git a/net/crystalyx/bukkit/simplyperms/preventions/bucket/Waterbucket.java b/net/crystalyx/bukkit/simplyperms/preventions/bucket/Waterbucket.java index 403855c..aae6237 100644 --- a/net/crystalyx/bukkit/simplyperms/preventions/bucket/Waterbucket.java +++ b/net/crystalyx/bukkit/simplyperms/preventions/bucket/Waterbucket.java @@ -28,5 +28,5 @@ public class Waterbucket extends SimplyPrevents { prevent(event, event.getPlayer(), "waterbucket,bucket,interact"); } } - + } diff --git a/net/crystalyx/bukkit/simplyperms/preventions/build/Placeblock.java b/net/crystalyx/bukkit/simplyperms/preventions/build/Placeblock.java index 563a861..a86ce01 100644 --- a/net/crystalyx/bukkit/simplyperms/preventions/build/Placeblock.java +++ b/net/crystalyx/bukkit/simplyperms/preventions/build/Placeblock.java @@ -24,5 +24,5 @@ public class Placeblock extends SimplyPrevents { public void paintingPlaceblock(PaintingPlaceEvent event) { prevent(event, event.getPlayer(), "placeblock." + Material.PAINTING.getId() + ",build." + Material.PAINTING.getId()); } - + } diff --git a/net/crystalyx/bukkit/simplyperms/preventions/craft/Brew.java b/net/crystalyx/bukkit/simplyperms/preventions/craft/Brew.java index 830cd56..65d726e 100644 --- a/net/crystalyx/bukkit/simplyperms/preventions/craft/Brew.java +++ b/net/crystalyx/bukkit/simplyperms/preventions/craft/Brew.java @@ -23,5 +23,5 @@ public class Brew extends SimplyPrevents { } } } - + } diff --git a/net/crystalyx/bukkit/simplyperms/preventions/craft/Chest.java b/net/crystalyx/bukkit/simplyperms/preventions/craft/Chest.java index 5522240..ff8c14d 100644 --- a/net/crystalyx/bukkit/simplyperms/preventions/craft/Chest.java +++ b/net/crystalyx/bukkit/simplyperms/preventions/craft/Chest.java @@ -11,7 +11,7 @@ import org.bukkit.event.block.Action; import org.bukkit.event.player.PlayerInteractEvent; public class Chest extends SimplyPrevents { - + public Chest(SimplyPlugin plugin) { super(plugin); } diff --git a/net/crystalyx/bukkit/simplyperms/preventions/craft/Dispenser.java b/net/crystalyx/bukkit/simplyperms/preventions/craft/Dispenser.java index d350b36..eaacf66 100644 --- a/net/crystalyx/bukkit/simplyperms/preventions/craft/Dispenser.java +++ b/net/crystalyx/bukkit/simplyperms/preventions/craft/Dispenser.java @@ -23,5 +23,5 @@ public class Dispenser extends SimplyPrevents { } } } - + } diff --git a/net/crystalyx/bukkit/simplyperms/preventions/craft/Enchant.java b/net/crystalyx/bukkit/simplyperms/preventions/craft/Enchant.java index c795672..61d09df 100644 --- a/net/crystalyx/bukkit/simplyperms/preventions/craft/Enchant.java +++ b/net/crystalyx/bukkit/simplyperms/preventions/craft/Enchant.java @@ -23,5 +23,5 @@ public class Enchant extends SimplyPrevents { } } } - + } diff --git a/net/crystalyx/bukkit/simplyperms/preventions/craft/Furnace.java b/net/crystalyx/bukkit/simplyperms/preventions/craft/Furnace.java index 9f0ea47..c691a18 100644 --- a/net/crystalyx/bukkit/simplyperms/preventions/craft/Furnace.java +++ b/net/crystalyx/bukkit/simplyperms/preventions/craft/Furnace.java @@ -23,5 +23,5 @@ public class Furnace extends SimplyPrevents { } } } - + } diff --git a/net/crystalyx/bukkit/simplyperms/preventions/craft/Workbench.java b/net/crystalyx/bukkit/simplyperms/preventions/craft/Workbench.java index e6a5937..e58ae4a 100644 --- a/net/crystalyx/bukkit/simplyperms/preventions/craft/Workbench.java +++ b/net/crystalyx/bukkit/simplyperms/preventions/craft/Workbench.java @@ -23,5 +23,5 @@ public class Workbench extends SimplyPrevents { } } } - + } diff --git a/net/crystalyx/bukkit/simplyperms/preventions/fire/FlintAndSteel.java b/net/crystalyx/bukkit/simplyperms/preventions/fire/FlintAndSteel.java index b175afe..53be809 100644 --- a/net/crystalyx/bukkit/simplyperms/preventions/fire/FlintAndSteel.java +++ b/net/crystalyx/bukkit/simplyperms/preventions/fire/FlintAndSteel.java @@ -23,5 +23,5 @@ public class FlintAndSteel extends SimplyPrevents { } } } - + } diff --git a/net/crystalyx/bukkit/simplyperms/preventions/interact/Button.java b/net/crystalyx/bukkit/simplyperms/preventions/interact/Button.java index f63df1e..889445a 100644 --- a/net/crystalyx/bukkit/simplyperms/preventions/interact/Button.java +++ b/net/crystalyx/bukkit/simplyperms/preventions/interact/Button.java @@ -10,7 +10,7 @@ import org.bukkit.event.block.Action; import org.bukkit.event.player.PlayerInteractEvent; public class Button extends SimplyPrevents { - + public Button(SimplyPlugin plugin) { super(plugin); } @@ -25,5 +25,5 @@ public class Button extends SimplyPrevents { } } } - + } diff --git a/net/crystalyx/bukkit/simplyperms/preventions/interact/Door.java b/net/crystalyx/bukkit/simplyperms/preventions/interact/Door.java index 898c0c3..f6b851a 100644 --- a/net/crystalyx/bukkit/simplyperms/preventions/interact/Door.java +++ b/net/crystalyx/bukkit/simplyperms/preventions/interact/Door.java @@ -10,7 +10,7 @@ import org.bukkit.event.block.Action; import org.bukkit.event.player.PlayerInteractEvent; public class Door extends SimplyPrevents { - + public Door(SimplyPlugin plugin) { super(plugin); } @@ -30,5 +30,5 @@ public class Door extends SimplyPrevents { } } } - + } diff --git a/net/crystalyx/bukkit/simplyperms/preventions/interact/Fish.java b/net/crystalyx/bukkit/simplyperms/preventions/interact/Fish.java index d785c7e..642999b 100644 --- a/net/crystalyx/bukkit/simplyperms/preventions/interact/Fish.java +++ b/net/crystalyx/bukkit/simplyperms/preventions/interact/Fish.java @@ -17,5 +17,5 @@ public class Fish extends SimplyPrevents { public void fish(PlayerFishEvent event) { prevent(event, event.getPlayer(), "fish,interact"); } - + } diff --git a/net/crystalyx/bukkit/simplyperms/preventions/interact/Jukebox.java b/net/crystalyx/bukkit/simplyperms/preventions/interact/Jukebox.java index ac66f95..5ba3b3c 100644 --- a/net/crystalyx/bukkit/simplyperms/preventions/interact/Jukebox.java +++ b/net/crystalyx/bukkit/simplyperms/preventions/interact/Jukebox.java @@ -23,5 +23,5 @@ public class Jukebox extends SimplyPrevents { } } } - + } diff --git a/net/crystalyx/bukkit/simplyperms/preventions/interact/Lever.java b/net/crystalyx/bukkit/simplyperms/preventions/interact/Lever.java index bc924b8..bc257ab 100644 --- a/net/crystalyx/bukkit/simplyperms/preventions/interact/Lever.java +++ b/net/crystalyx/bukkit/simplyperms/preventions/interact/Lever.java @@ -25,5 +25,5 @@ public class Lever extends SimplyPrevents { } } } - + } diff --git a/net/crystalyx/bukkit/simplyperms/preventions/interact/Noteblock.java b/net/crystalyx/bukkit/simplyperms/preventions/interact/Noteblock.java index 64831a8..1f72211 100644 --- a/net/crystalyx/bukkit/simplyperms/preventions/interact/Noteblock.java +++ b/net/crystalyx/bukkit/simplyperms/preventions/interact/Noteblock.java @@ -25,5 +25,5 @@ public class Noteblock extends SimplyPrevents { } } } - + } diff --git a/net/crystalyx/bukkit/simplyperms/preventions/interact/Pressureplate.java b/net/crystalyx/bukkit/simplyperms/preventions/interact/Pressureplate.java index 1c3fbd9..ec072f0 100644 --- a/net/crystalyx/bukkit/simplyperms/preventions/interact/Pressureplate.java +++ b/net/crystalyx/bukkit/simplyperms/preventions/interact/Pressureplate.java @@ -25,5 +25,5 @@ public class Pressureplate extends SimplyPrevents { } } } - + } diff --git a/net/crystalyx/bukkit/simplyperms/preventions/interact/Repeater.java b/net/crystalyx/bukkit/simplyperms/preventions/interact/Repeater.java index eb95ee7..c8b1403 100644 --- a/net/crystalyx/bukkit/simplyperms/preventions/interact/Repeater.java +++ b/net/crystalyx/bukkit/simplyperms/preventions/interact/Repeater.java @@ -25,5 +25,5 @@ public class Repeater extends SimplyPrevents { } } } - + } diff --git a/net/crystalyx/bukkit/simplyperms/preventions/loot/Pickup.java b/net/crystalyx/bukkit/simplyperms/preventions/loot/Pickup.java index fd39ee9..7ea06aa 100644 --- a/net/crystalyx/bukkit/simplyperms/preventions/loot/Pickup.java +++ b/net/crystalyx/bukkit/simplyperms/preventions/loot/Pickup.java @@ -17,5 +17,5 @@ public class Pickup extends SimplyPrevents { public void pickup(PlayerPickupItemEvent event) { prevent(event, event.getPlayer(), "pickup." + event.getItem().getItemStack().getTypeId() + ",loot." + event.getItem().getItemStack().getTypeId()); } - + } diff --git a/net/crystalyx/bukkit/simplyperms/preventions/projectile/Potion.java b/net/crystalyx/bukkit/simplyperms/preventions/projectile/Potion.java index 8602620..ced6b5d 100644 --- a/net/crystalyx/bukkit/simplyperms/preventions/projectile/Potion.java +++ b/net/crystalyx/bukkit/simplyperms/preventions/projectile/Potion.java @@ -25,5 +25,5 @@ public class Potion extends SimplyPrevents { } } } - + } diff --git a/net/crystalyx/bukkit/simplyperms/preventions/projectile/Snowball.java b/net/crystalyx/bukkit/simplyperms/preventions/projectile/Snowball.java index 1fa7db8..ed859c2 100644 --- a/net/crystalyx/bukkit/simplyperms/preventions/projectile/Snowball.java +++ b/net/crystalyx/bukkit/simplyperms/preventions/projectile/Snowball.java @@ -24,5 +24,5 @@ public class Snowball extends SimplyPrevents { } } } - + } diff --git a/net/crystalyx/bukkit/simplyperms/preventions/spam/CapsLock.java b/net/crystalyx/bukkit/simplyperms/preventions/spam/CapsLock.java index caabe07..e39e9d8 100644 --- a/net/crystalyx/bukkit/simplyperms/preventions/spam/CapsLock.java +++ b/net/crystalyx/bukkit/simplyperms/preventions/spam/CapsLock.java @@ -20,11 +20,11 @@ public class CapsLock extends SimplyPrevents { for (Player player : super.plugin.getServer().getOnlinePlayers()) { message.replace(player.getName(), ""); } - String nocaps = message.replaceAll("[A-Z]*", ""); + String nocaps = message.replaceAll("[A-Z]*", ""); if (message.length() > 5 && message.length() - nocaps.length() > message.length() / 2) { prevent(event, event.getPlayer(), "capslock,spam"); } } - + } diff --git a/net/crystalyx/bukkit/simplyperms/preventions/spam/Flood.java b/net/crystalyx/bukkit/simplyperms/preventions/spam/Flood.java index 343a147..432b93e 100644 --- a/net/crystalyx/bukkit/simplyperms/preventions/spam/Flood.java +++ b/net/crystalyx/bukkit/simplyperms/preventions/spam/Flood.java @@ -13,7 +13,7 @@ import org.bukkit.event.player.PlayerChatEvent; public class Flood extends SimplyPrevents { private HashMap chatTimestamps = new HashMap(); - + public Flood(SimplyPlugin plugin) { super(plugin); }