summaryrefslogtreecommitdiffstats
path: root/EssentialsGroupManager
diff options
context:
space:
mode:
Diffstat (limited to 'EssentialsGroupManager')
-rw-r--r--EssentialsGroupManager/.classpath4
-rw-r--r--EssentialsGroupManager/nbproject/project.properties4
-rw-r--r--EssentialsGroupManager/src/Changelog.txt5
-rw-r--r--EssentialsGroupManager/src/org/anjocaido/groupmanager/GroupManager.java199
-rw-r--r--EssentialsGroupManager/src/plugin.yml2
5 files changed, 102 insertions, 112 deletions
diff --git a/EssentialsGroupManager/.classpath b/EssentialsGroupManager/.classpath
index eafae0c2b..61f808b2d 100644
--- a/EssentialsGroupManager/.classpath
+++ b/EssentialsGroupManager/.classpath
@@ -2,6 +2,6 @@
<classpath>
<classpathentry kind="src" path="src"/>
<classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER"/>
- <classpathentry kind="lib" path="../lib/bukkit-0.0.1-SNAPSHOT.jar"/>
- <classpathentry kind="lib" path="../lib/craftbukkit-0.0.1-SNAPSHOT.jar"/>
+ <classpathentry kind="lib" path="../lib/craftbukkit.jar"/>
+ <classpathentry kind="output" path="bin"/>
</classpath>
diff --git a/EssentialsGroupManager/nbproject/project.properties b/EssentialsGroupManager/nbproject/project.properties
index eefc59f51..7a333a590 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.bukkit.jar=../lib/bukkit.jar
+file.reference.bukkit.jar=../lib/craftbukkit.jar
includes=**
jar.compress=true
javac.classpath=\
- ${file.reference.bukkit.jar}
+ ${file.reference.craftbukkit.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..00df6628d 100644
--- a/EssentialsGroupManager/src/Changelog.txt
+++ b/EssentialsGroupManager/src/Changelog.txt
@@ -79,4 +79,7 @@ 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
+ - 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 d8b7a15e1..37131f888 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<User> removeList = null;
String auxString = null;
- List<Player> match = null;
+ List<String> 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! (/<command> <player> <group>)");
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! (/<command> <player>)");
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! (/<command> <player> <group>)");
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 <user> <group>)");
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! (/<command> <player> <permission>)");
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! (/<command> <player> <permission>)");
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! (/<command> <player> (+))");
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! (/<command> <user> <variable> <value>)");
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! (/<command> <user> <variable>)");
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! (/<command> <user>)");
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! (/<command> <user> <variable>)");
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! (/<command> <player>)");
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! (/<command> <player>)");
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! (/<command> <player>)");
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! (/<command> <player> <group>)");
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! (/<command> <player> <group>)");
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,49 @@ 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<String> validatePlayer(String playerName, CommandSender sender) {
+
+ List<Player> players = new ArrayList<Player>();
+ List<String> match = new ArrayList<String>();
+
+ players = this.getServer().matchPlayer(playerName);
+ if (players.isEmpty()) {
+ // 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) {
+ 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.