Browse Source

Fix [entity] ... lp/lg subcommands.

master
Stanislav Usenkov 9 years ago
parent
commit
644a35f548
  1. 10
      src/main/java/ru/simsonic/rscPermissions/Bukkit/Commands/BukkitCommands.java
  2. 83
      src/main/java/ru/simsonic/rscPermissions/Bukkit/Commands/CommandEntity.java

10
src/main/java/ru/simsonic/rscPermissions/Bukkit/Commands/BukkitCommands.java

@ -99,6 +99,11 @@ public class BukkitCommands
help.add(Phrases.HELP_USAGE.toString()); help.add(Phrases.HELP_USAGE.toString());
if(sender.hasPermission("rscp.admin")) if(sender.hasPermission("rscp.admin"))
{ {
help.addAll(cmdEntity.getHelpForType(CommandEntity.TargetType.GROUP));
help.addAll(cmdEntity.getHelpForType(CommandEntity.TargetType.USER));
help.addAll(cmdEntity.getHelpForType(CommandEntity.TargetType.PLAYER));
help.add("{_YL}/rscp {_LR}groups {_LS}-- show known groups");
help.add("{_YL}/rscp {_LR}users {_LS}-- show known users");
help.add(Phrases.HELP_CMD_USER_LP.toString()); help.add(Phrases.HELP_CMD_USER_LP.toString());
help.add(Phrases.HELP_CMD_USER_LG.toString()); help.add(Phrases.HELP_CMD_USER_LG.toString());
help.add(Phrases.HELP_CMD_USER_P.toString()); help.add(Phrases.HELP_CMD_USER_P.toString());
@ -125,6 +130,11 @@ public class BukkitCommands
case "lg": case "lg":
cmdEntity.listGroups(sender); cmdEntity.listGroups(sender);
return; return;
case "listusers":
case "users":
case "lu":
cmdEntity.listUsers(sender);
return;
case "group": case "group":
case "g": case "g":
cmdEntity.onEntityCommandHub(sender, CommandEntity.TargetType.GROUP, args); cmdEntity.onEntityCommandHub(sender, CommandEntity.TargetType.GROUP, args);

83
src/main/java/ru/simsonic/rscPermissions/Bukkit/Commands/CommandEntity.java

@ -3,6 +3,8 @@ package ru.simsonic.rscPermissions.Bukkit.Commands;
import java.time.format.DateTimeFormatter; import java.time.format.DateTimeFormatter;
import java.util.ArrayList; import java.util.ArrayList;
import java.util.Arrays; import java.util.Arrays;
import java.util.LinkedList;
import java.util.List;
import java.util.Map; import java.util.Map;
import java.util.Set; import java.util.Set;
import org.bukkit.command.CommandSender; import org.bukkit.command.CommandSender;
@ -37,16 +39,16 @@ public class CommandEntity
args = Arrays.copyOfRange(args, 1, args.length); args = Arrays.copyOfRange(args, 1, args.length);
if(args.length <= 1) if(args.length <= 1)
throw new CommandAnswerException("Read help."); throw new CommandAnswerException("Read help.");
RowEntity entity = null;
ResolutionResult result = null; ResolutionResult result = null;
RowEntity entity = null;
switch(type) switch(type)
{ {
case PLAYER: case PLAYER:
final Player player = BukkitUtilities.findOnlinePlayer(args[0]); final Player online = BukkitUtilities.findOnlinePlayer(args[0]);
if(player != null) if(online != null)
{ {
args[0] = player.getName(); args[0] = online.getName();
result = rscp.permissionManager.getResult(player); result = rscp.permissionManager.getResult(online);
break; break;
} }
result = rscp.permissionManager.getResult(args[0]); result = rscp.permissionManager.getResult(args[0]);
@ -61,25 +63,23 @@ public class CommandEntity
if(entity == null && result == null) if(entity == null && result == null)
throw new CommandAnswerException("{_LR}I don't know such name!"); throw new CommandAnswerException("{_LR}I don't know such name!");
if(args[1] == null) if(args[1] == null)
args[1] = ""; args[1] = "help";
final String targetName = args[0];
switch(args[1].toLowerCase()) switch(args[1].toLowerCase())
{ {
case "": case "help":
case "info": throw new CommandAnswerException(getHelpForType(type));
case "i":
// INFO ?
throw new CommandAnswerException("Subcommand isn't implemented.");
case "prefix": case "prefix":
case "p": case "p":
if(result != null) if(result != null)
viewCalculatedPrefix(result, args[1]); viewCalculatedPrefix(result, targetName);
else else
viewEntityPrefix(entity); viewEntityPrefix(entity);
break; break;
case "suffix": case "suffix":
case "s": case "s":
if(result != null) if(result != null)
viewCalculatedSuffix(result, args[1]); viewCalculatedSuffix(result, targetName);
else else
viewEntitySuffix(entity); viewEntitySuffix(entity);
break; break;
@ -87,7 +87,7 @@ public class CommandEntity
case "permissions": case "permissions":
case "lp": case "lp":
if(result != null) if(result != null)
listFinalPlayerPermissions(result, args[0]); listFinalPlayerPermissions(result, targetName);
else else
showEntityPermissions(entity); showEntityPermissions(entity);
break; break;
@ -97,7 +97,7 @@ public class CommandEntity
case "groups": case "groups":
case "lg": case "lg":
if(result != null) if(result != null)
listUserGroupsTree(result, args[1]); listUserGroupsTree(result, targetName);
else else
showEntityParents(entity); showEntityParents(entity);
break; break;
@ -106,30 +106,55 @@ public class CommandEntity
case "ap": case "ap":
case "ag": case "ag":
// TO DO HERE // TO DO HERE
addGroup(result, args[1], null, null, null); addGroup(result, targetName, null, null, null);
break; break;
case "removeparent": case "removeparent":
case "removegroup": case "removegroup":
case "rp": case "rp":
case "rg": case "rg":
// TO DO HERE // TO DO HERE
removeGroup(result, args[1], null); removeGroup(result, targetName, null);
break; break;
default: default:
break; break;
} }
} }
public List<String> getHelpForType(TargetType type)
{
final List<String> answer = new ArrayList<>(16);
final String typeName = type.name().toLowerCase();
answer.add(String.format("{_YL}/rscp %s prefix {_LS}-- show entity's prefix", typeName));
answer.add(String.format("{_YL}/rscp %s suffix {_LS}-- show entity's suffix", typeName));
answer.add(String.format("{_YL}/rscp %s listgroups {_LS}-- show list of parent groups", typeName));
answer.add(String.format("{_YL}/rscp %s listpermissions {_LS}-- show list of explicit permissions", typeName));
switch(type)
{
case GROUP:
case USER:
break;
case PLAYER:
break;
}
return answer;
}
public void listGroups(CommandSender sender) throws CommandAnswerException public void listGroups(CommandSender sender) throws CommandAnswerException
{ {
final ArrayList<String> answer = new ArrayList<>(16); final List<String> answer = new ArrayList<>(16);
final Set<String> groups = rscp.internalCache.getKnownGroups(); final Set<String> groups = rscp.internalCache.getKnownGroups();
answer.add("There are following known groups in database:"); answer.add("There are following known groups in database:");
for(String group : groups) for(String group : groups)
{ if(!"".equals(group))
if("".equals(group)) answer.add("{_WH}" + group);
group = "{_LS}<implicit group>"; throw new CommandAnswerException(answer);
answer.add("{_WH}" + group); }
} public void listUsers(CommandSender sender) throws CommandAnswerException
{
final List<String> answer = new LinkedList<>();
final Set<String> users = rscp.internalCache.getKnownUsers();
answer.add("There are following known users in database:");
for(String user : users)
if(!"".equals(user))
answer.add("{_WH}" + user);
throw new CommandAnswerException(answer); throw new CommandAnswerException(answer);
} }
private void viewEntityPrefix(RowEntity entity) throws CommandAnswerException private void viewEntityPrefix(RowEntity entity) throws CommandAnswerException
@ -198,7 +223,7 @@ public class CommandEntity
final ArrayList<String> answer = new ArrayList<>(); final ArrayList<String> answer = new ArrayList<>();
answer.add("Parent groups for " + entity.entityType.name().toLowerCase() + " {_YL}" + entity.entity + "{_LS}:"); answer.add("Parent groups for " + entity.entityType.name().toLowerCase() + " {_YL}" + entity.entity + "{_LS}:");
for(RowInheritance parent : entity.inheritance) for(RowInheritance parent : entity.inheritance)
answer.add("{_WH}" + parent.splittedId + " {_LG}" + parent.parent); answer.add("{_WH}" + parent.splittedId + " {_LG}" + parent.getParentWithInstance());
throw new CommandAnswerException(answer); throw new CommandAnswerException(answer);
} }
private void listFinalPlayerPermissions(ResolutionResult result, String user) throws CommandAnswerException private void listFinalPlayerPermissions(ResolutionResult result, String user) throws CommandAnswerException
@ -211,12 +236,12 @@ public class CommandEntity
answer.add((entry.getValue() ? "{_LG}" : "{_LR}") + entry.getKey()); answer.add((entry.getValue() ? "{_LG}" : "{_LR}") + entry.getKey());
throw new CommandAnswerException(answer); throw new CommandAnswerException(answer);
} }
private void listUserGroupsTree(ResolutionResult result, String user) throws CommandAnswerException private void listUserGroupsTree(ResolutionResult result, String player) throws CommandAnswerException
{ {
if(Matchers.isCorrectDashlessUUID(user)) if(Matchers.isCorrectDashlessUUID(player))
user = Matchers.uuidAddDashes(user); player = Matchers.uuidAddDashes(player);
final ArrayList<String> answer = new ArrayList<>(); final ArrayList<String> answer = new ArrayList<>();
answer.add("Group list for user {_YL}" + user + "{_LS}:"); answer.add("List of parent groups for player {_YL}" + player + "{_LS}:");
for(String group : result.getOrderedGroups()) for(String group : result.getOrderedGroups())
answer.add("{_LG}" + group); answer.add("{_LG}" + group);
throw new CommandAnswerException(answer); throw new CommandAnswerException(answer);

Loading…
Cancel
Save