From 4b43453a7442ba20796fe3b10bd38dc28c2d7c17 Mon Sep 17 00:00:00 2001 From: ElgarL Date: Mon, 12 Dec 2011 15:53:33 +0000 Subject: Update GM version to 1.7 GM now supports offline players without having to mantogglevalidate Added craftbukkit-1.0.0-SNAPSHOT.jar to lib (version 1587) Added bukkit-1.0.0-R1-SNAPSHOT.jar to lib (version 1065) Updated GM XML's to build using dev bukkit/CB build jars. --- EssentialsGroupManager/.classpath | 5 +- .../nbproject/project.properties | 4 +- EssentialsGroupManager/src/Changelog.txt | 4 +- .../org/anjocaido/groupmanager/GroupManager.java | 192 +++++++++------------ EssentialsGroupManager/src/plugin.yml | 2 +- 5 files changed, 95 insertions(+), 112 deletions(-) (limited to 'EssentialsGroupManager') diff --git a/EssentialsGroupManager/.classpath b/EssentialsGroupManager/.classpath index eafae0c2b..592e99bfe 100644 --- a/EssentialsGroupManager/.classpath +++ b/EssentialsGroupManager/.classpath @@ -2,6 +2,7 @@ - - + + + diff --git a/EssentialsGroupManager/nbproject/project.properties b/EssentialsGroupManager/nbproject/project.properties index 245766661..760b4a41e 100644 --- a/EssentialsGroupManager/nbproject/project.properties +++ b/EssentialsGroupManager/nbproject/project.properties @@ -39,11 +39,11 @@ dist.jar=${dist.dir}/EssentialsGroupManager.jar dist.javadoc.dir=${dist.dir}/javadoc endorsed.classpath= excludes= -file.reference.craftbukkit-0.0.1-SNAPSHOT.jar=..\\lib\\craftbukkit-0.0.1-SNAPSHOT.jar +file.reference.craftbukkit-1.0.0-SNAPSHOT.jar=..\\lib\\craftbukkit-1.0.0-SNAPSHOT.jar includes=** jar.compress=true javac.classpath=\ - ${file.reference.craftbukkit-0.0.1-SNAPSHOT.jar} + ${file.reference.craftbukkit-1.0.0-SNAPSHOT.jar} # Space-separated list of extra javac options javac.compilerargs= javac.deprecation=false diff --git a/EssentialsGroupManager/src/Changelog.txt b/EssentialsGroupManager/src/Changelog.txt index 71e9f4225..a5c455887 100644 --- a/EssentialsGroupManager/src/Changelog.txt +++ b/EssentialsGroupManager/src/Changelog.txt @@ -79,4 +79,6 @@ v 1.6: - Optimize sorting to speedup permission tests. - Fix superperms to pass all tests http://dev.bukkit.org/server-mods/superpermstest/ - Optimizations include changing the return of comparePermissionString. - - Added file details in error messages for loading groups/users. \ No newline at end of file + - Added file details in error messages for loading groups/users. +v 1.7: + - GM now supports offline players without having to mantogglevalidate \ No newline at end of file diff --git a/EssentialsGroupManager/src/org/anjocaido/groupmanager/GroupManager.java b/EssentialsGroupManager/src/org/anjocaido/groupmanager/GroupManager.java index d8b7a15e1..e13426716 100644 --- a/EssentialsGroupManager/src/org/anjocaido/groupmanager/GroupManager.java +++ b/EssentialsGroupManager/src/org/anjocaido/groupmanager/GroupManager.java @@ -16,6 +16,7 @@ import org.anjocaido.groupmanager.dataholder.WorldDataHolder; import java.io.File; import java.io.InputStream; import java.util.ArrayList; +import java.util.Arrays; import java.util.HashMap; import java.util.List; import java.util.Map; @@ -30,6 +31,7 @@ import org.anjocaido.groupmanager.utils.PermissionCheckResult; import org.anjocaido.groupmanager.utils.Tasks; 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.command.ConsoleCommandSender; @@ -325,7 +327,7 @@ public class GroupManager extends JavaPlugin { PermissionCheckResult permissionResult = null; ArrayList removeList = null; String auxString = null; - List match = null; + List match = null; User auxUser = null; Group auxGroup = null; Group auxGroup2 = null; @@ -373,15 +375,12 @@ public class GroupManager extends JavaPlugin { sender.sendMessage(ChatColor.RED + "Review your arguments count! (/ )"); return false; } - if (validateOnlinePlayer) { - match = this.getServer().matchPlayer(args[0]); - if (match.size() != 1) { - sender.sendMessage(ChatColor.RED + "Player not found!"); + if ((validateOnlinePlayer) && ((match = validatePlayer(args[0], sender)) == null)) { return false; - } } + if (match != null) { - auxUser = dataHolder.getUser(match.get(0).getName()); + auxUser = dataHolder.getUser(match.get(0)); } else { auxUser = dataHolder.getUser(args[0]); } @@ -427,15 +426,12 @@ public class GroupManager extends JavaPlugin { sender.sendMessage(ChatColor.RED + "Review your arguments count! (/ )"); return false; } - if (validateOnlinePlayer) { - match = this.getServer().matchPlayer(args[0]); - if (match.size() != 1) { - sender.sendMessage(ChatColor.RED + "Player not found!"); + if ((validateOnlinePlayer) && ((match = validatePlayer(args[0], sender)) == null)) { return false; - } } + if (match != null) { - auxUser = dataHolder.getUser(match.get(0).getName()); + auxUser = dataHolder.getUser(match.get(0)); } else { auxUser = dataHolder.getUser(args[0]); } @@ -467,15 +463,12 @@ public class GroupManager extends JavaPlugin { sender.sendMessage(ChatColor.RED + "Review your arguments count! (/ )"); return false; } - if (validateOnlinePlayer) { - match = this.getServer().matchPlayer(args[0]); - if (match.size() != 1) { - sender.sendMessage(ChatColor.RED + "Player not found!"); + if ((validateOnlinePlayer) && ((match = validatePlayer(args[0], sender)) == null)) { return false; - } } + if (match != null) { - auxUser = dataHolder.getUser(match.get(0).getName()); + auxUser = dataHolder.getUser(match.get(0)); } else { auxUser = dataHolder.getUser(args[0]); } @@ -509,15 +502,12 @@ public class GroupManager extends JavaPlugin { sender.sendMessage(ChatColor.RED + "Review your arguments count! (/manudelsub )"); return false; } - if (validateOnlinePlayer) { - match = this.getServer().matchPlayer(args[0]); - if (match.size() != 1) { - sender.sendMessage(ChatColor.RED + "Player not found!"); + if ((validateOnlinePlayer) && ((match = validatePlayer(args[0], sender)) == null)) { return false; - } } + if (match != null) { - auxUser = dataHolder.getUser(match.get(0).getName()); + auxUser = dataHolder.getUser(match.get(0)); } else { auxUser = dataHolder.getUser(args[0]); } @@ -596,15 +586,12 @@ public class GroupManager extends JavaPlugin { sender.sendMessage(ChatColor.RED + "Review your arguments count! (/ )"); return false; } - if (validateOnlinePlayer) { - match = this.getServer().matchPlayer(args[0]); - if (match.size() != 1) { - sender.sendMessage(ChatColor.RED + "Player not found!"); + if ((validateOnlinePlayer) && ((match = validatePlayer(args[0], sender)) == null)) { return false; - } } + if (match != null) { - auxUser = dataHolder.getUser(match.get(0).getName()); + auxUser = dataHolder.getUser(match.get(0)); } else { auxUser = dataHolder.getUser(args[0]); } @@ -664,15 +651,12 @@ public class GroupManager extends JavaPlugin { sender.sendMessage(ChatColor.RED + "Review your arguments count! (/ )"); return false; } - if (validateOnlinePlayer) { - match = this.getServer().matchPlayer(args[0]); - if (match.size() != 1) { - sender.sendMessage(ChatColor.RED + "Player not found!"); + if ((validateOnlinePlayer) && ((match = validatePlayer(args[0], sender)) == null)) { return false; - } } + if (match != null) { - auxUser = dataHolder.getUser(match.get(0).getName()); + auxUser = dataHolder.getUser(match.get(0)); } else { auxUser = dataHolder.getUser(args[0]); } @@ -718,17 +702,13 @@ public class GroupManager extends JavaPlugin { sender.sendMessage(ChatColor.RED + "Review your arguments count! (/ (+))"); return false; } - - if (validateOnlinePlayer) { - match = this.getServer().matchPlayer(args[0]); - if (match.size() != 1) { - sender.sendMessage(ChatColor.RED + "Player not found!"); + + if ((validateOnlinePlayer) && ((match = validatePlayer(args[0], sender)) == null)) { return false; - } else - targetPlayer = this.getServer().getPlayer(match.get(0).getName()); } + if (match != null) { - auxUser = dataHolder.getUser(match.get(0).getName()); + auxUser = dataHolder.getUser(match.get(0)); } else { auxUser = dataHolder.getUser(args[0]); } @@ -765,6 +745,7 @@ public class GroupManager extends JavaPlugin { // bukkit perms if ((args.length == 2) && (args[1].equalsIgnoreCase("+"))) { + targetPlayer = this.getServer().getPlayer(auxUser.getName()); if (targetPlayer != null) { sender.sendMessage(ChatColor.YELLOW + "Superperms reports: "); for (String line : BukkitPermissions.listPerms(targetPlayer)) @@ -786,19 +767,16 @@ public class GroupManager extends JavaPlugin { return false; } - if (validateOnlinePlayer) { - match = this.getServer().matchPlayer(args[0]); - if (match.size() != 1) { - sender.sendMessage(ChatColor.RED + "Player not found!"); + if ((validateOnlinePlayer) && ((match = validatePlayer(args[0], sender)) == null)) { return false; - } else - targetPlayer = this.getServer().getPlayer(match.get(0).getName()); } + if (match != null) { - auxUser = dataHolder.getUser(match.get(0).getName()); + auxUser = dataHolder.getUser(match.get(0)); } else { auxUser = dataHolder.getUser(args[0]); } + targetPlayer = this.getServer().getPlayer(auxUser.getName()); // VALIDANDO PERMISSAO permissionResult = permissionHandler.checkFullUserPermission(auxUser, args[1]); if (permissionResult.resultType.equals(PermissionCheckResult.Type.NOTFOUND)) { @@ -1089,15 +1067,12 @@ public class GroupManager extends JavaPlugin { sender.sendMessage(ChatColor.RED + "Review your arguments count! (/ )"); return false; } - if (validateOnlinePlayer) { - match = this.getServer().matchPlayer(args[0]); - if (match.size() != 1) { - sender.sendMessage(ChatColor.RED + "Player not found!"); + if ((validateOnlinePlayer) && ((match = validatePlayer(args[0], sender)) == null)) { return false; - } } + if (match != null) { - auxUser = dataHolder.getUser(match.get(0).getName()); + auxUser = dataHolder.getUser(match.get(0)); } else { auxUser = dataHolder.getUser(args[0]); } @@ -1124,15 +1099,12 @@ public class GroupManager extends JavaPlugin { sender.sendMessage(ChatColor.RED + "Review your arguments count! (/ )"); return false; } - if (validateOnlinePlayer) { - match = this.getServer().matchPlayer(args[0]); - if (match.size() != 1) { - sender.sendMessage(ChatColor.RED + "Player not found!"); + if ((validateOnlinePlayer) && ((match = validatePlayer(args[0], sender)) == null)) { return false; - } } + if (match != null) { - auxUser = dataHolder.getUser(match.get(0).getName()); + auxUser = dataHolder.getUser(match.get(0)); } else { auxUser = dataHolder.getUser(args[0]); } @@ -1155,15 +1127,11 @@ public class GroupManager extends JavaPlugin { sender.sendMessage(ChatColor.RED + "Review your arguments count! (/ )"); return false; } - if (validateOnlinePlayer) { - match = this.getServer().matchPlayer(args[0]); - if (match.size() != 1) { - sender.sendMessage(ChatColor.RED + "Player not found!"); + if ((validateOnlinePlayer) && ((match = validatePlayer(args[0], sender)) == null)) { return false; - } } if (match != null) { - auxUser = dataHolder.getUser(match.get(0).getName()); + auxUser = dataHolder.getUser(match.get(0)); } else { auxUser = dataHolder.getUser(args[0]); } @@ -1192,15 +1160,11 @@ public class GroupManager extends JavaPlugin { sender.sendMessage(ChatColor.RED + "Review your arguments count! (/ )"); return false; } - if (validateOnlinePlayer) { - match = this.getServer().matchPlayer(args[0]); - if (match.size() != 1) { - sender.sendMessage(ChatColor.RED + "Player not found!"); + if ((validateOnlinePlayer) && ((match = validatePlayer(args[0], sender)) == null)) { return false; - } } if (match != null) { - auxUser = dataHolder.getUser(match.get(0).getName()); + auxUser = dataHolder.getUser(match.get(0)); } else { auxUser = dataHolder.getUser(args[0]); } @@ -1359,15 +1323,11 @@ public class GroupManager extends JavaPlugin { sender.sendMessage(ChatColor.RED + "Review your arguments count! (/ )"); return false; } - if (validateOnlinePlayer) { - match = this.getServer().matchPlayer(args[0]); - if (match.size() != 1) { - sender.sendMessage(ChatColor.RED + "Player not found!"); + if ((validateOnlinePlayer) && ((match = validatePlayer(args[0], sender)) == null)) { return false; - } } if (match != null) { - auxUser = dataHolder.getUser(match.get(0).getName()); + auxUser = dataHolder.getUser(match.get(0)); } else { auxUser = dataHolder.getUser(args[0]); } @@ -1393,15 +1353,11 @@ public class GroupManager extends JavaPlugin { sender.sendMessage(ChatColor.RED + "Review your arguments count! (/ )"); return false; } - if (validateOnlinePlayer) { - match = this.getServer().matchPlayer(args[0]); - if (match.size() != 1) { - sender.sendMessage(ChatColor.RED + "Player not found!"); + if ((validateOnlinePlayer) && ((match = validatePlayer(args[0], sender)) == null)) { return false; - } } if (match != null) { - auxUser = dataHolder.getUser(match.get(0).getName()); + auxUser = dataHolder.getUser(match.get(0)); } else { auxUser = dataHolder.getUser(args[0]); } @@ -1431,15 +1387,11 @@ public class GroupManager extends JavaPlugin { sender.sendMessage(ChatColor.RED + "Review your arguments count! (/ )"); return false; } - if (validateOnlinePlayer) { - match = this.getServer().matchPlayer(args[0]); - if (match.size() != 1) { - sender.sendMessage(ChatColor.RED + "Player not found!"); + if ((validateOnlinePlayer) && ((match = validatePlayer(args[0], sender)) == null)) { return false; - } } if (match != null) { - auxUser = dataHolder.getUser(match.get(0).getName()); + auxUser = dataHolder.getUser(match.get(0)); } else { auxUser = dataHolder.getUser(args[0]); } @@ -1613,15 +1565,11 @@ public class GroupManager extends JavaPlugin { sender.sendMessage(ChatColor.RED + "Review your arguments count! (/ )"); return false; } - if (validateOnlinePlayer) { - match = this.getServer().matchPlayer(args[0]); - if (match.size() != 1) { - sender.sendMessage(ChatColor.RED + "Player not found!"); + if ((validateOnlinePlayer) && ((match = validatePlayer(args[0], sender)) == null)) { return false; - } } if (match != null) { - auxUser = dataHolder.getUser(match.get(0).getName()); + auxUser = dataHolder.getUser(match.get(0)); } else { auxUser = dataHolder.getUser(args[0]); } @@ -1673,15 +1621,11 @@ public class GroupManager extends JavaPlugin { sender.sendMessage(ChatColor.RED + "Review your arguments count! (/ )"); return false; } - if (validateOnlinePlayer) { - match = this.getServer().matchPlayer(args[0]); - if (match.size() != 1) { - sender.sendMessage(ChatColor.RED + "Player not found!"); + if ((validateOnlinePlayer) && ((match = validatePlayer(args[0], sender)) == null)) { return false; - } } if (match != null) { - auxUser = dataHolder.getUser(match.get(0).getName()); + auxUser = dataHolder.getUser(match.get(0)); } else { auxUser = dataHolder.getUser(args[0]); } @@ -1841,6 +1785,42 @@ public class GroupManager extends JavaPlugin { } } + + /** + * Load a List of players matching the name given. If none online, check + * Offline. + * + * @param playerName, sender + * @return true if a single match is found + */ + private List validatePlayer(String playerName, CommandSender sender) { + + List players = new ArrayList(); + List match = new ArrayList(); + + players = this.getServer().matchPlayer(playerName); + if (players.isEmpty()) { + // Check for an offline player. + if (Arrays.asList(this.getServer().getOfflinePlayers()).contains(Bukkit.getOfflinePlayer(playerName))) + match.add(playerName); + + } else { + for (Player player : players) { + match.add(player.getName()); + } + } + + if (match.isEmpty() || match == null) { + sender.sendMessage(ChatColor.RED + "Player not found!"); + return null; + } else if (match.size() > 1) { + sender.sendMessage(ChatColor.RED + "Too many matches found! (" + match.toString() + ")"); + return null; + } + + return match; + + } /** * @return the config diff --git a/EssentialsGroupManager/src/plugin.yml b/EssentialsGroupManager/src/plugin.yml index 3c8657c12..115e92ba2 100644 --- a/EssentialsGroupManager/src/plugin.yml +++ b/EssentialsGroupManager/src/plugin.yml @@ -1,5 +1,5 @@ name: GroupManager -version: "1.6 (Phoenix)" +version: "1.7 (Phoenix)" main: org.anjocaido.groupmanager.GroupManager website: http://www.anjocaido.info/ description: Provides on-the-fly system for permissions system created by Nijikokun. But all in memory, and with flat-file saving schedule. -- cgit v1.2.3 From aaf08150e679976dafe65f9a86835411c1fdbcab Mon Sep 17 00:00:00 2001 From: ElgarL Date: Mon, 12 Dec 2011 15:59:34 +0000 Subject: Fix classpath for Eclipse --- EssentialsGroupManager/.classpath | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'EssentialsGroupManager') diff --git a/EssentialsGroupManager/.classpath b/EssentialsGroupManager/.classpath index 592e99bfe..3b9d29cbd 100644 --- a/EssentialsGroupManager/.classpath +++ b/EssentialsGroupManager/.classpath @@ -3,6 +3,6 @@ - + -- cgit v1.2.3 From 0e0b441168667950d7bc85155ddcf634b2ab5017 Mon Sep 17 00:00:00 2001 From: ElgarL Date: Mon, 12 Dec 2011 16:39:15 +0000 Subject: Offline player checks now support partial name matches. --- EssentialsGroupManager/src/Changelog.txt | 3 ++- .../src/org/anjocaido/groupmanager/GroupManager.java | 11 +++++++++-- 2 files changed, 11 insertions(+), 3 deletions(-) (limited to 'EssentialsGroupManager') diff --git a/EssentialsGroupManager/src/Changelog.txt b/EssentialsGroupManager/src/Changelog.txt index a5c455887..00df6628d 100644 --- a/EssentialsGroupManager/src/Changelog.txt +++ b/EssentialsGroupManager/src/Changelog.txt @@ -81,4 +81,5 @@ v 1.6: - Optimizations include changing the return of comparePermissionString. - Added file details in error messages for loading groups/users. v 1.7: - - GM now supports offline players without having to mantogglevalidate \ No newline at end of file + - GM now supports offline players without having to mantogglevalidate + - Offline player checks now support partial name matches. \ No newline at end of file diff --git a/EssentialsGroupManager/src/org/anjocaido/groupmanager/GroupManager.java b/EssentialsGroupManager/src/org/anjocaido/groupmanager/GroupManager.java index e13426716..37131f888 100644 --- a/EssentialsGroupManager/src/org/anjocaido/groupmanager/GroupManager.java +++ b/EssentialsGroupManager/src/org/anjocaido/groupmanager/GroupManager.java @@ -1800,9 +1800,16 @@ public class GroupManager extends JavaPlugin { players = this.getServer().matchPlayer(playerName); if (players.isEmpty()) { - // Check for an offline player. - if (Arrays.asList(this.getServer().getOfflinePlayers()).contains(Bukkit.getOfflinePlayer(playerName))) + // Check for an offline player (exact match). + if (Arrays.asList(this.getServer().getOfflinePlayers()).contains(Bukkit.getOfflinePlayer(playerName))) { match.add(playerName); + } else { + //look for partial matches + for (OfflinePlayer offline : this.getServer().getOfflinePlayers()) { + if (offline.getName().toLowerCase().startsWith(playerName.toLowerCase())) + match.add(offline.getName()); + } + } } else { for (Player player : players) { -- cgit v1.2.3