Browse Source

Help pages.

master
Stanislav Usenkov 9 years ago
parent
commit
7448d2a29b
  1. 46
      src/main/java/ru/simsonic/rscPermissions/Bukkit/Commands/BukkitCommands.java
  2. 81
      src/main/java/ru/simsonic/rscPermissions/Bukkit/Commands/CommandEntity.java
  3. 1
      src/main/java/ru/simsonic/rscPermissions/Engine/Phrases.java
  4. 23
      src/main/resources/languages/english.yml
  5. 25
      src/main/resources/languages/russian.yml

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

@ -26,9 +26,9 @@ public class BukkitCommands
{ {
this.rscp = plugin; this.rscp = plugin;
cmdEntity = new CommandEntity(rscp); cmdEntity = new CommandEntity(rscp);
cmdLock = new CommandLock(rscp); cmdLock = new CommandLock (rscp);
cmdFetch = new CommandFetch(rscp); cmdFetch = new CommandFetch (rscp);
cmdDebug = new CommandDebug(rscp); cmdDebug = new CommandDebug (rscp);
cmdReload = new CommandReload(rscp); cmdReload = new CommandReload(rscp);
cmdUpdate = new CommandUpdate(rscp); cmdUpdate = new CommandUpdate(rscp);
threadFetchDatabaseContents = new BukkitDatabaseFetcher(rscp); threadFetchDatabaseContents = new BukkitDatabaseFetcher(rscp);
@ -89,50 +89,44 @@ public class BukkitCommands
public void onCommandHub(CommandSender sender, String[] args) throws CommandAnswerException public void onCommandHub(CommandSender sender, String[] args) throws CommandAnswerException
{ {
final ArrayList<String> help = new ArrayList<>(64); final ArrayList<String> help = new ArrayList<>(64);
final boolean isAdmin = sender.hasPermission("rscp.admin");
final boolean isLocker = sender.hasPermission("rscp.admin.lock");
help.addAll(Tools.getPluginWelcome(rscp, Phrases.HELP_HEADER_1.toString())); help.addAll(Tools.getPluginWelcome(rscp, Phrases.HELP_HEADER_1.toString()));
if(isLocker)
help.add(Phrases.HELP_HEADER_2.toString().replace("{:SERVERID}", rscp.getServer().getServerId()));
if(args.length == 0) if(args.length == 0)
throw new CommandAnswerException(help); throw new CommandAnswerException(help);
help.add(Phrases.HELP_HEADER_2.toString().replace("{SERVER-ID}", rscp.getServer().getServerId()));
final String mmode = rscp.settings.getMaintenanceMode(); final String mmode = rscp.settings.getMaintenanceMode();
if(sender.hasPermission("rscp.admin.lock") && !"".equals(mmode)) if(isLocker && !"".equals(mmode))
help.add("{_WH}Server is in maintenance mode \'{_LG}" + mmode + "{_WH}\' now!"); help.add(Phrases.HELP_HEADER_3.toString().replace("{:MMODE}", mmode));
help.add(Phrases.HELP_USAGE.toString()); help.add(Phrases.HELP_USAGE.toString());
if(sender.hasPermission("rscp.admin")) if(isAdmin)
{ {
help.add("{_YL}/rscp {_LR}groups {_LS}-- show known groups"); help.addAll(cmdEntity.getHelp());
help.add("{_YL}/rscp {_LR}users {_LS}-- show known users"); help.add("{_YL}/rscp {_LR}examplerows {_LS}- insert some fake rows into database");
help.add(Phrases.HELP_CMD_USER_LP.toString()); help.add("{_YL}/rscp {_LR}import pex-sql {_LS}- import data from pex's database (in the same schema)");
help.addAll(cmdEntity.getHelpForType(CommandEntity.TargetType.GROUP)); help.add(Phrases.HELP_CMD_DEBUG.toString());
help.addAll(cmdEntity.getHelpForType(CommandEntity.TargetType.USER)); help.add(Phrases.HELP_CMD_FETCH.toString());
help.addAll(cmdEntity.getHelpForType(CommandEntity.TargetType.PLAYER)); help.add(Phrases.HELP_CMD_RELOAD.toString());
help.add(Phrases.HELP_CMD_USER_LG.toString());
help.add(Phrases.HELP_CMD_USER_P.toString());
help.add(Phrases.HELP_CMD_USER_S.toString());
} }
if(sender.hasPermission("rscp.admin.lock")) if(isLocker)
{ {
help.add(Phrases.HELP_CMD_LOCK.toString()); help.add(Phrases.HELP_CMD_LOCK.toString());
help.add(Phrases.HELP_CMD_UNLOCK.toString()); help.add(Phrases.HELP_CMD_UNLOCK.toString());
} }
if(sender.hasPermission("rscp.admin"))
{
help.add("{_YL}/rscp {_LR}examplerows {_LS}-- insert some fake rows into database");
help.add("{_YL}/rscp {_LR}import pex-sql {_LS}-- import data from pex's database (in the same schema)");
help.add(Phrases.HELP_CMD_DEBUG.toString());
help.add(Phrases.HELP_CMD_FETCH.toString());
help.add(Phrases.HELP_CMD_RELOAD.toString());
}
help.add(Phrases.HELP_CMD_HELP.toString()); help.add(Phrases.HELP_CMD_HELP.toString());
switch(args[0].toLowerCase()) switch(args[0].toLowerCase())
{ {
case "listgroups": case "listgroups":
case "groups": case "groups":
case "lg": case "lg":
case "gs":
cmdEntity.listGroups(sender); cmdEntity.listGroups(sender);
return; return;
case "listusers": case "listusers":
case "users": case "users":
case "lu": case "lu":
case "us":
cmdEntity.listUsers(sender); cmdEntity.listUsers(sender);
return; return;
case "group": case "group":
@ -185,7 +179,7 @@ public class BukkitCommands
{ {
"Usage: {_YL}/rscp import <importer> [options]", "Usage: {_YL}/rscp import <importer> [options]",
"Available importers:", "Available importers:",
"{_LG}pex-sql {_LS}-- (PermissionsEx's SQL backend)", "{_LG}pex-sql {_LS}- (PermissionsEx's SQL backend)",
}); });
switch(args[1].toLowerCase()) switch(args[1].toLowerCase())
{ {

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

@ -32,13 +32,47 @@ public class CommandEntity
USER, USER,
PLAYER, PLAYER,
} }
public List<String> getHelp()
{
final List<String> help = new ArrayList<>(16);
// help.add(Phrases.HELP_CMD_USER_LP.toString());
// help.add(Phrases.HELP_CMD_USER_LG.toString());
// help.add(Phrases.HELP_CMD_USER_P.toString());
// help.add(Phrases.HELP_CMD_USER_S.toString());
help.add("{_YL}/rscp groups {_LS}- show known groups");
help.addAll(getHelpForType(CommandEntity.TargetType.GROUP));
help.add("{_YL}/rscp users {_LS}- show known users");
help.addAll(getHelpForType(CommandEntity.TargetType.USER));
help.addAll(getHelpForType(CommandEntity.TargetType.PLAYER));
return help;
}
public List<String> getHelpForType(TargetType type)
{
final List<String> answer = new ArrayList<>(16);
final String typeName = type.name().toLowerCase();
switch(type)
{
case GROUP:
case USER:
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));
answer.add(String.format("{_YL}/rscp %s prefix [<value>] {_LS}- view or change %s's prefix", typeName, typeName));
answer.add(String.format("{_YL}/rscp %s suffix [<value>] {_LS}- view or change %s's suffix", typeName, typeName));
break;
case PLAYER:
answer.add(String.format("{_YL}/rscp %s listgroups {_LS}- show resulting inheritance tree", typeName));
answer.add(String.format("{_YL}/rscp %s listpermissions {_LS}- show final calculated permissions", typeName));
answer.add(String.format("{_YL}/rscp %s prefix {_LS}- show %s's prefix", typeName, typeName));
answer.add(String.format("{_YL}/rscp %s suffix {_LS}- show %s's suffix", typeName, typeName));
break;
}
return answer;
}
public void onEntityCommandHub(CommandSender sender, TargetType type, String[] args) throws CommandAnswerException public void onEntityCommandHub(CommandSender sender, TargetType type, String[] args) throws CommandAnswerException
{ {
if(sender.hasPermission("rscp.admin") == false) if(sender.hasPermission("rscp.admin") == false)
throw new CommandAnswerException("Not enough permissions."); throw new CommandAnswerException("Not enough permissions.");
args = Arrays.copyOfRange(args, 1, args.length); args = Arrays.copyOfRange(args, 1, args.length);
if(args.length <= 1)
throw new CommandAnswerException("Read help.");
ResolutionResult result = null; ResolutionResult result = null;
RowEntity entity = null; RowEntity entity = null;
switch(type) switch(type)
@ -61,11 +95,12 @@ public class CommandEntity
break; break;
} }
if(entity == null && result == null) if(entity == null && result == null)
throw new CommandAnswerException("{_LR}I don't know such name!"); throw new CommandAnswerException("{_LR}Sorry, I don't know such identifier!");
if(args[1] == null)
args[1] = "info";
final String targetName = args[0]; final String targetName = args[0];
switch(args[1].toLowerCase()) final String subcommand = args.length > 1 && args[1] != null
? args[1].toLowerCase()
: "info";
switch(subcommand)
{ {
case "info": case "info":
if(entity != null) if(entity != null)
@ -94,9 +129,7 @@ public class CommandEntity
else else
showEntityPermissions(entity); showEntityPermissions(entity);
break; break;
case "listparents":
case "listgroups": case "listgroups":
case "parents":
case "groups": case "groups":
case "lg": case "lg":
if(result != null) if(result != null)
@ -104,16 +137,18 @@ public class CommandEntity
else else
showEntityParents(entity); showEntityParents(entity);
break; break;
case "addparent": case "addpermission":
case "addgroup":
case "ap": case "ap":
break;
case "removepermission":
case "rp":
break;
case "addgroup":
case "ag": case "ag":
// TO DO HERE // TO DO HERE
addGroup(result, targetName, null, null, null); addGroup(result, targetName, null, null, null);
break; break;
case "removeparent":
case "removegroup": case "removegroup":
case "rp":
case "rg": case "rg":
// TO DO HERE // TO DO HERE
removeGroup(result, targetName, null); removeGroup(result, targetName, null);
@ -122,26 +157,10 @@ public class CommandEntity
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
{ {
if(sender.hasPermission("rscp.admin") == false)
throw new CommandAnswerException("Not enough permissions.");
final List<String> answer = new ArrayList<>(16); final List<String> answer = new ArrayList<>(16);
final Set<RowEntity> groups = rscp.internalCache.getKnownGroupObjects(); final Set<RowEntity> groups = rscp.internalCache.getKnownGroupObjects();
answer.add("There are following known groups in database:"); answer.add("There are following known groups in database:");
@ -155,6 +174,8 @@ public class CommandEntity
} }
public void listUsers(CommandSender sender) throws CommandAnswerException public void listUsers(CommandSender sender) throws CommandAnswerException
{ {
if(sender.hasPermission("rscp.admin") == false)
throw new CommandAnswerException("Not enough permissions.");
final List<String> answer = new LinkedList<>(); final List<String> answer = new LinkedList<>();
final Set<RowEntity> users = rscp.internalCache.getKnownUserObjects(); final Set<RowEntity> users = rscp.internalCache.getKnownUserObjects();
answer.add("There are following known users in database:"); answer.add("There are following known users in database:");

1
src/main/java/ru/simsonic/rscPermissions/Engine/Phrases.java

@ -38,6 +38,7 @@ public enum Phrases
FETCHED_REMOTE_DB ("database.fetched-remote"), FETCHED_REMOTE_DB ("database.fetched-remote"),
HELP_HEADER_1 ("help.header-1"), HELP_HEADER_1 ("help.header-1"),
HELP_HEADER_2 ("help.header-2"), HELP_HEADER_2 ("help.header-2"),
HELP_HEADER_3 ("help.header-3"),
HELP_USAGE ("help.usage"), HELP_USAGE ("help.usage"),
HELP_CMD_USER_LP ("help.cmd-user-lp"), HELP_CMD_USER_LP ("help.cmd-user-lp"),
HELP_CMD_USER_LG ("help.cmd-user-lg"), HELP_CMD_USER_LG ("help.cmd-user-lg"),

23
src/main/resources/languages/english.yml

@ -27,15 +27,16 @@ database:
fetched-remote: "{_LG}Fetched {:E} entities, {:P} permissions and {:I} inheritances." fetched-remote: "{_LG}Fetched {:E} entities, {:P} permissions and {:I} inheritances."
help: help:
header-1: "{_LS}Perfect permission manager for multiserver environments" header-1: "{_LS}Perfect permission manager for multiserver environments"
header-2: "{_LS}Current serverId is '{_LG}{SERVER-ID}{_LS}' (server.properties)" header-2: "{_LS}Current serverId is '{_LG}{:SERVERID}{_LS}' (server.properties)"
header-3: "{_WH}Server is in maintenance mode '{_LG}{:MMODE}{_WH}' now!"
usage: "Usage of available commands:" usage: "Usage of available commands:"
cmd-user-lp: "{_YL}/rscp user <user> lp {_LS}-- list user's permissions" cmd-user-lp: "{_YL}/rscp user <user> lp {_LS}- list user's permissions"
cmd-user-lg: "{_YL}/rscp user <user> lg {_LS}-- list user's groups" cmd-user-lg: "{_YL}/rscp user <user> lg {_LS}- list user's groups"
cmd-user-p: "{_YL}/rscp user <user> prefix {_LS}-- show user's prefix" cmd-user-p: "{_YL}/rscp user <user> prefix {_LS}- show user's prefix"
cmd-user-s: "{_YL}/rscp user <user> suffix {_LS}-- show user's suffix" cmd-user-s: "{_YL}/rscp user <user> suffix {_LS}- show user's suffix"
cmd-lock: "{_YL}/rscp lock [mode] {_LS}-- enable specific maintenance mode" cmd-lock: "{_YL}/rscp lock [mode] {_LS}- enable specific maintenance mode"
cmd-unlock: "{_YL}/rscp unlock {_LS}-- disable maintenance mode" cmd-unlock: "{_YL}/rscp unlock {_LS}- disable maintenance mode"
cmd-debug: "{_YL}/rscp debug [value] {_LS}-- show/hide some debugging info to you" cmd-debug: "{_YL}/rscp debug [value] {_LS}- show/hide some debugging info to you"
cmd-fetch: "{_YL}/rscp fetch {_LS}-- reread all permissions from database" cmd-fetch: "{_YL}/rscp fetch {_LS}- reread all permissions from database"
cmd-reload: "{_YL}/rscp reload {_LS}-- reload config and restart the plugin" cmd-reload: "{_YL}/rscp reload {_LS}- reload config and restart the plugin"
cmd-help: "{_YL}/rscp help {_LS}-- show this help page" cmd-help: "{_YL}/rscp help {_LS}- show this help page"

25
src/main/resources/languages/russian.yml

@ -27,15 +27,16 @@ database:
fetched-remote: "{_LG}Получено {:E} сущностей, {:P} прав и {:I} наследований." fetched-remote: "{_LG}Получено {:E} сущностей, {:P} прав и {:I} наследований."
help: help:
header-1: "{_LS}Идеальный плагин для мультисерверных проектов" header-1: "{_LS}Идеальный плагин для мультисерверных проектов"
header-2: "{_LS}Идентификатор этого сервера установлен в '{_LG}{SERVER-ID}{_LS}' (server.properties)" header-2: "{_LS}Идентификатор этого сервера установлен в '{_LG}{:SERVERID}{_LS}' (server.properties)"
usage: "Синтаксис доступных команд:" header-3: "{_WH}Сервер находится в режиме обслуживания '{_LG}{:MMODE}{_WH}'!"
cmd-user-lp: "{_YL}/rscp user <user> lp {_LS}-- получение списка прав игрока" usage: "Описание доступных команд:"
cmd-user-lg: "{_YL}/rscp user <user> lg {_LS}-- получение дерева групп игрока" cmd-user-lp: "{_YL}/rscp user <user> lp {_LS}- получение списка прав игрока"
cmd-user-p: "{_YL}/rscp user <user> prefix {_LS}-- просмотр префикса игрока" cmd-user-lg: "{_YL}/rscp user <user> lg {_LS}- получение дерева групп игрока"
cmd-user-s: "{_YL}/rscp user <user> suffix {_LS}-- просмотр суффикса игрока" cmd-user-p: "{_YL}/rscp user <user> prefix {_LS}- просмотр префикса игрока"
cmd-lock: "{_YL}/rscp lock [mode] {_LS}-- перевод сервера в режим обслуживания" cmd-user-s: "{_YL}/rscp user <user> suffix {_LS}- просмотр суффикса игрока"
cmd-unlock: "{_YL}/rscp unlock {_LS}-- отключение режима обслуживания" cmd-lock: "{_YL}/rscp lock [mode] {_LS}- перевод сервера в режим обслуживания"
cmd-debug: "{_YL}/rscp debug [value] {_LS}-- вкл/выкл отладочной информации о Вас" cmd-unlock: "{_YL}/rscp unlock {_LS}- отключение режима обслуживания"
cmd-fetch: "{_YL}/rscp fetch {_LS}-- получение групп и прав из базы банных" cmd-debug: "{_YL}/rscp debug [value] {_LS}- вкл/выкл отладочной информации о Вас"
cmd-reload: "{_YL}/rscp reload {_LS}-- перезагрузка плагина" cmd-fetch: "{_YL}/rscp fetch {_LS}- получение групп и прав из базы банных"
cmd-help: "{_YL}/rscp help {_LS}-- эта справка" cmd-reload: "{_YL}/rscp reload {_LS}- перезагрузка плагина"
cmd-help: "{_YL}/rscp help {_LS}- эта справка"

Loading…
Cancel
Save