mirror of
https://github.com/TotalFreedomMC/TF-EssentialsX.git
synced 2025-06-28 18:20:31 +00:00
fixes and addition of '*' to match all unmatched users.
This commit is contained in:
parent
32099a4109
commit
0c82c61574
16 changed files with 84 additions and 23 deletions
|
@ -71,8 +71,10 @@ public class Commandlist extends EssentialsCommand
|
|||
}
|
||||
final StringBuilder groupString = new StringBuilder();
|
||||
Set<String> keys = ess.getSettings().getListGroupConfig().keySet();
|
||||
|
||||
if (args.length > 0)
|
||||
{
|
||||
|
||||
final List<User> users = new ArrayList<User>();
|
||||
String group = args[0].toLowerCase();
|
||||
for (String key : keys)
|
||||
|
@ -113,12 +115,21 @@ public class Commandlist extends EssentialsCommand
|
|||
}
|
||||
else
|
||||
{
|
||||
Map<String, String> usedGroups = new HashMap();
|
||||
List<String> usedGroups = new ArrayList<String>();
|
||||
List<String> usedGroupsAsterisk = new ArrayList<String>();
|
||||
Map<String, Boolean> asterisk = new HashMap<String, Boolean>();
|
||||
boolean hasAsterisk = false;
|
||||
for (String group : keys)
|
||||
{
|
||||
boolean userLimit = false;
|
||||
String groupValue = ess.getSettings().getListGroupConfig().get(group).toString().trim();
|
||||
usedGroups.put(group.toLowerCase(), groupValue);
|
||||
if (groupValue.equals("*"))
|
||||
{
|
||||
asterisk.put(group, true);
|
||||
hasAsterisk = true;
|
||||
continue;
|
||||
}
|
||||
usedGroups.add(group.toLowerCase());
|
||||
if (groupValue.equals("hidden"))
|
||||
{
|
||||
continue;
|
||||
|
@ -132,9 +143,10 @@ public class Commandlist extends EssentialsCommand
|
|||
List<User> u = sort.get(group);
|
||||
if (u != null && !u.isEmpty())
|
||||
{
|
||||
users.addAll(u);
|
||||
|
||||
if (userLimit)
|
||||
{
|
||||
users.addAll(u);
|
||||
int limit = Integer.parseInt(groupValue);
|
||||
if (u.size() > limit)
|
||||
{
|
||||
|
@ -158,22 +170,25 @@ public class Commandlist extends EssentialsCommand
|
|||
continue;
|
||||
}
|
||||
users.addAll(u);
|
||||
usedGroupsAsterisk.add(groupValue);
|
||||
}
|
||||
else
|
||||
else
|
||||
{
|
||||
String[] groups = groupValue.split(",");
|
||||
for (String g : groups)
|
||||
{
|
||||
g = g.trim().toLowerCase();
|
||||
if (g == null || g.equals(""))
|
||||
{
|
||||
continue;
|
||||
}
|
||||
u = sort.get(g.trim());
|
||||
u = sort.get(g);
|
||||
if (u == null || u.isEmpty())
|
||||
{
|
||||
continue;
|
||||
}
|
||||
users.addAll(u);
|
||||
usedGroupsAsterisk.add(g);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@ -181,6 +196,10 @@ public class Commandlist extends EssentialsCommand
|
|||
{
|
||||
continue;
|
||||
}
|
||||
if (ess.getPermissionsHandler().getName().equals("ConfigPermissions"))
|
||||
{
|
||||
group = _("connectedPlayers");
|
||||
}
|
||||
groupString.append(_("listGroupTag", Util.replaceFormat(group)));
|
||||
groupString.append(listUsers(users));
|
||||
groupString.setCharAt(0, Character.toTitleCase(groupString.charAt(0)));
|
||||
|
@ -189,19 +208,59 @@ public class Commandlist extends EssentialsCommand
|
|||
}
|
||||
final String[] groups = sort.keySet().toArray(new String[0]);
|
||||
Arrays.sort(groups, String.CASE_INSENSITIVE_ORDER);
|
||||
List<User> asteriskUsers = new ArrayList<User>();
|
||||
String asteriskGroup = "";
|
||||
if (hasAsterisk)
|
||||
{
|
||||
for(String key : asterisk.keySet())
|
||||
{
|
||||
if (asterisk.get(key) == true)
|
||||
{
|
||||
asteriskGroup = key.toLowerCase();
|
||||
for (String group : groups)
|
||||
{
|
||||
group = group.toLowerCase().trim();
|
||||
if (usedGroups.contains(group) || usedGroupsAsterisk.contains(group))
|
||||
{
|
||||
continue;
|
||||
}
|
||||
asteriskUsers.addAll(sort.get(group));
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
for (String group : groups)
|
||||
{
|
||||
group = group.toLowerCase();
|
||||
if (usedGroups.containsKey(group))
|
||||
group = group.toLowerCase().trim();
|
||||
if (usedGroups.contains(group))
|
||||
{
|
||||
continue;
|
||||
}
|
||||
List<User> users = sort.get(group);
|
||||
|
||||
if (ess.getPermissionsHandler().getName().equals("ConfigPermissions"))
|
||||
{
|
||||
group = _("connectedPlayers");
|
||||
}
|
||||
if (hasAsterisk)
|
||||
{
|
||||
if (asteriskUsers == null || asteriskUsers.isEmpty())
|
||||
{
|
||||
break;
|
||||
}
|
||||
users = asteriskUsers;
|
||||
group = asteriskGroup;
|
||||
}
|
||||
groupString.append(_("listGroupTag", Util.replaceFormat(group)));
|
||||
final List<User> users = sort.get(group);
|
||||
|
||||
groupString.append(listUsers(users));
|
||||
groupString.setCharAt(0, Character.toTitleCase(groupString.charAt(0)));
|
||||
sender.sendMessage(groupString.toString());
|
||||
groupString.setLength(0);
|
||||
if (hasAsterisk)
|
||||
{
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue