Browse Source

I've started working on command dispatching.

* Single class is breaked for several little, but not all for now.
* Internal command code tries to use already made api methods.
* Text is recolorized :)
master
SimSonic 10 years ago
parent
commit
710245273e
  1. 2
      pom.xml
  2. 2
      src/main/java/ru/simsonic/rscPermissions/API/Settings.java
  3. 7
      src/main/java/ru/simsonic/rscPermissions/Bukkit/BukkitPermissionManager.java
  4. 337
      src/main/java/ru/simsonic/rscPermissions/Bukkit/Commands/BukkitCommands.java
  5. 38
      src/main/java/ru/simsonic/rscPermissions/Bukkit/Commands/CommandDebug.java
  6. 22
      src/main/java/ru/simsonic/rscPermissions/Bukkit/Commands/CommandFetch.java
  7. 25
      src/main/java/ru/simsonic/rscPermissions/Bukkit/Commands/CommandLock.java
  8. 23
      src/main/java/ru/simsonic/rscPermissions/Bukkit/Commands/CommandReload.java
  9. 23
      src/main/java/ru/simsonic/rscPermissions/Bukkit/Commands/CommandUnlock.java
  10. 21
      src/main/java/ru/simsonic/rscPermissions/Bukkit/PermissionsEx_YAML.java
  11. 2
      src/main/java/ru/simsonic/rscPermissions/SpongePluginMain.java

2
pom.xml

@ -4,7 +4,7 @@
<groupId>ru.simsonic</groupId> <groupId>ru.simsonic</groupId>
<artifactId>rscPermissions</artifactId> <artifactId>rscPermissions</artifactId>
<version>0.9.9a</version> <version>0.9.10a</version>
<packaging>jar</packaging> <packaging>jar</packaging>
<name>rscPermissions</name> <name>rscPermissions</name>

2
src/main/java/ru/simsonic/rscPermissions/API/Settings.java

@ -4,7 +4,7 @@ import ru.simsonic.rscUtilityLibrary.ConnectionMySQL.ConnectionParams;
public interface Settings public interface Settings
{ {
public static final String chatPrefix = "{YELLOW}[rscp] {GOLD}"; public static final String chatPrefix = "{GOLD}[rscp] {_LS}";
public static final String separator = "."; public static final String separator = ".";
public static final String separatorRegExp = "\\."; public static final String separatorRegExp = "\\.";
public static final String instantiator = "?"; public static final String instantiator = "?";

7
src/main/java/ru/simsonic/rscPermissions/Bukkit/BukkitPermissionManager.java

@ -200,6 +200,13 @@ public class BukkitPermissionManager extends RestartableThread
result.add(socketAddress.getAddress().getHostAddress()); result.add(socketAddress.getAddress().getHostAddress());
return result.toArray(new String[result.size()]); return result.toArray(new String[result.size()]);
} }
public Set<Player> getDebuggers()
{
synchronized(debug)
{
return new HashSet<>(debug);
}
}
public boolean isDebugging(Player target) public boolean isDebugging(Player target)
{ {
synchronized(debug) synchronized(debug)

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

@ -1,17 +1,14 @@
package ru.simsonic.rscPermissions.Bukkit.Commands; package ru.simsonic.rscPermissions.Bukkit.Commands;
import java.io.File;
import java.util.ArrayList; import java.util.ArrayList;
import java.util.Collections; import java.util.Collections;
import java.util.Map; import java.util.Set;
import java.util.logging.Level; import java.util.logging.Level;
import org.bukkit.command.CommandSender; import org.bukkit.command.CommandSender;
import org.bukkit.command.ConsoleCommandSender;
import org.bukkit.entity.Player; import org.bukkit.entity.Player;
import ru.simsonic.rscPermissions.API.Settings; import ru.simsonic.rscPermissions.API.Settings;
import ru.simsonic.rscPermissions.Backends.DatabaseContents; import ru.simsonic.rscPermissions.Backends.DatabaseContents;
import ru.simsonic.rscPermissions.Bukkit.PermissionsEx_YAML;
import ru.simsonic.rscPermissions.BukkitPluginMain; import ru.simsonic.rscPermissions.BukkitPluginMain;
import ru.simsonic.rscPermissions.Engine.Phrases; import ru.simsonic.rscPermissions.Engine.ResolutionResult;
import ru.simsonic.rscUtilityLibrary.Bukkit.Commands.CommandAnswerException; import ru.simsonic.rscUtilityLibrary.Bukkit.Commands.CommandAnswerException;
import ru.simsonic.rscUtilityLibrary.RestartableThread; import ru.simsonic.rscUtilityLibrary.RestartableThread;
import ru.simsonic.rscUtilityLibrary.TextProcessing.GenericChatCodes; import ru.simsonic.rscUtilityLibrary.TextProcessing.GenericChatCodes;
@ -19,15 +16,26 @@ import ru.simsonic.rscUtilityLibrary.TextProcessing.GenericChatCodes;
public class BukkitCommands public class BukkitCommands
{ {
private final BukkitPluginMain rscp; private final BukkitPluginMain rscp;
public BukkitCommands(final BukkitPluginMain rscp) private final CommandLock cmdLock;
private final CommandUnlock cmdUnlock;
private final CommandFetch cmdFetch;
private final CommandDebug cmdDebug;
private final CommandReload cmdReload;
public BukkitCommands(final BukkitPluginMain plugin)
{ {
this.rscp = rscp; this.rscp = plugin;
cmdLock = new CommandLock(rscp);
cmdUnlock = new CommandUnlock(rscp);
cmdFetch = new CommandFetch(rscp);
cmdDebug = new CommandDebug(rscp);
cmdReload = new CommandReload(rscp);
} }
public final RestartableThread threadFetchDatabaseContents = new RestartableThread() public final RestartableThread threadFetchDatabaseContents = new RestartableThread()
{ {
@Override @Override
public void run() public void run()
{ {
final long queryStartTime = System.currentTimeMillis();
Thread.currentThread().setName("rscp:DatabaseFetchingThread"); Thread.currentThread().setName("rscp:DatabaseFetchingThread");
Thread.currentThread().setPriority(Thread.MIN_PRIORITY); Thread.currentThread().setPriority(Thread.MIN_PRIORITY);
if(rscp.connection.isConnected() == false) if(rscp.connection.isConnected() == false)
@ -71,6 +79,19 @@ public class BukkitCommands
} }
} catch(InterruptedException ex) { } catch(InterruptedException ex) {
} }
final long queryTime = System.currentTimeMillis() - queryStartTime;
final Set<Player> debuggers = rscp.permissionManager.getDebuggers();
if(!debuggers.isEmpty())
rscp.getServer().getScheduler().runTask(rscp, new Runnable()
{
@Override
public void run()
{
for(Player debugger : debuggers)
debugger.sendMessage(GenericChatCodes.processStringStatic(Settings.chatPrefix
+ "Database has been fetched in " + queryTime + " milliseconds."));
}
});
} else } else
BukkitPluginMain.consoleLog.warning("[rscp] Cannot load data from database."); BukkitPluginMain.consoleLog.warning("[rscp] Cannot load data from database.");
} }
@ -130,56 +151,49 @@ 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<>(); final ArrayList<String> help = new ArrayList<>(64);
help.add(rscp.getDescription().getName() + " v" + rscp.getDescription().getVersion()
+ " © " + rscp.getDescription().getAuthors().get(0));
help.add("{_DS}Perfect permission manager for multiserver environments");
help.add("{_LB}{_U}" + rscp.getDescription().getWebsite());
if(args.length == 0)
throw new CommandAnswerException(help);
help.add("{_LS}Current serverId is \'{_LG}" + rscp.getServer().getServerId() + "{_LS}\' (server.properties)");
help.add("Usage of available commands:");
if(sender.hasPermission("rscp.admin")) if(sender.hasPermission("rscp.admin"))
help.add("/rscp (user|group) {_LS}-- PermissionsEx-like admin commands"); {
help.add("{_YL}/rscp user <user> lp {_LS}-- list user's permissions");
help.add("{_YL}/rscp user <user> lg {_LS}-- list user's groups");
help.add("{_YL}/rscp user <user> prefix {_LS}-- show user's prefix");
help.add("{_YL}/rscp user <user> suffix {_LS}-- show user's suffix");
}
if(sender.hasPermission("rscp.admin.lock")) if(sender.hasPermission("rscp.admin.lock"))
help.add("/rscp (lock [mode]|unlock) {_LS}-- maintenance mode control");
if(sender.hasPermission("rscp.admin"))
{ {
help.add("/rscp (examplerows|import) {_LS}-- possible useful things"); help.add("{_YL}/rscp lock [mode] {_LS}-- enable specific maintenance mode");
help.add("/rscp (debug|fetch|reload) {_LS}-- admin stuff"); help.add("{_YL}/rscp unlock {_LS}-- disable maintenance mode");
} }
help.add("/rscp (help) {_LS}-- show these notes");
if(help.size() > 0)
help.add(0, "{MAGENTA}Usage:");
help.add(0, rscp.getDescription().getName() + " v" + rscp.getDescription().getVersion());
help.add(1, "Perfect Superperms manager for multiserver environments");
if(sender.hasPermission("rscp.admin")) if(sender.hasPermission("rscp.admin"))
help.add(2, "{_DS}Current serverId is \'{_LS}" + rscp.getServer().getServerId() + "{_DS}\' (server.properties)"); {
help.add("{_LG}" + rscp.getDescription().getWebsite()); help.add("{_YL}/rscp examplerows {_LS}-- insert some fake rows into database");
if(args.length == 0) help.add("{_YL}/rscp import pex-sql {_LS}-- import data from pex's database (in the same schema)");
throw new CommandAnswerException(help); help.add("{_YL}/rscp debug [value] {_LS}-- show/hide some debugging info to you");
help.add("{_YL}/rscp fetch {_LS}-- reread all permissions from database");
help.add("{_YL}/rscp reload {_LS}-- reload config and restart the plugin");
}
help.add("{_YL}/rscp [help] {_LS}-- show this help page");
switch(args[0].toLowerCase()) switch(args[0].toLowerCase())
{ {
case "user": case "user":
onCommandHubUser(sender, args); onCommandHubUser(sender, args);
return; return;
case "group":
onCommandHubGroup(sender, args);
return;
case "lock": case "lock":
/* rscp lock [mMode] */ /* rscp lock [mMode] */
if(sender.hasPermission("rscp.lock")) cmdLock.execute(sender, args);
{
final String mMode = (args.length >= 2) ? args[1] : "default";
String mmon = "Maintenance mode enabled";
mmon = rscp.getConfig().getString("language.maintenance.locked.default.mmon", mmon);
mmon = rscp.getConfig().getString("language.maintenance.locked." + mMode + ".mmon", mmon);
rscp.bukkitListener.setMaintenanceMode(mMode);
throw new CommandAnswerException(mmon);
}
return; return;
case "unlock": case "unlock":
/* rscp unlock */ /* rscp unlock */
if(sender.hasPermission("rscp.lock")) cmdUnlock.execute(sender);
{ return;
String mmoff = "Maintenance mode disabled";
mmoff = rscp.getConfig().getString("language.maintenance.unlocked", mmoff);
rscp.bukkitListener.setMaintenanceMode(null);
throw new CommandAnswerException(mmoff);
}
break;
case "examplerows": case "examplerows":
/* rscp examplerows */ /* rscp examplerows */
if(sender.hasPermission("rscp.admin")) if(sender.hasPermission("rscp.admin"))
@ -195,213 +209,108 @@ public class BukkitCommands
if(args.length > 1) if(args.length > 1)
switch(args[1].toLowerCase()) switch(args[1].toLowerCase())
{ {
case "pex-yaml":
if(args.length == 2)
break;
// TO DO HERE
PermissionsEx_YAML importer_pex = new PermissionsEx_YAML(
new File(rscp.getDataFolder(), args[2]));
threadFetchDatabaseContents.startDeamon();
throw new CommandAnswerException(new String[]
{
"Data has been imported successfully!",
/*
"Entities: {MAGENTA}" + Integer.toString(importer_pex.getEntities().length),
"Permissions: {MAGENTA}" + Integer.toString(importer_pex.getPermissions().length),
"Inheritance: {MAGENTA}" + Integer.toString(importer_pex.getInheritance().length),
*/
"{_DR}{_B}IT IS FAKE :p - all this is undone yet!",
});
case "pex-sql": case "pex-sql":
threadMigrateFromPExSQL(sender); threadMigrateFromPExSQL(sender);
throw new CommandAnswerException("Trying to import PEX database into rscPermissions..."); throw new CommandAnswerException("Trying to import PEX database into rscPermissions...");
} }
throw new CommandAnswerException(new String[] throw new CommandAnswerException(new String[]
{ {
"Usage: {GOLD}/rscp import <importer> [options]", "Usage: {_YL}/rscp import <importer> [options]",
"Available importers:", "Available importers:",
"{_LR}pex-yaml{_LS} (PermissionsEx)", "{_LG}pex-sql {_LS}-- (PermissionsEx SQL Backend)",
"{_LG}pex-sql{_LS} (PermissionsEx)",
}); });
} }
return; return;
case "fetch": case "fetch":
/* rscp fetch */ /* rscp fetch */
if(sender.hasPermission("rscp.admin.reload")) cmdFetch.execute(sender);
{ return;
threadFetchDatabaseContents.startDeamon(); case "debug":
throw new CommandAnswerException(Phrases.MYSQL_FETCHED.toString()); /* rscp debug [<boolean variant>|toggle] */
} cmdDebug.execute(sender, args);
return; return;
case "reload": case "reload":
/* rscp reload */ /* rscp reload */
if(sender.hasPermission("rscp.admin.reload")) cmdReload.execute(sender);
{
rscp.getServer().getPluginManager().disablePlugin(rscp);
rscp.getServer().getPluginManager().enablePlugin(rscp);
throw new CommandAnswerException(Phrases.PLUGIN_RELOADED.toString());
}
return;
case "debug":
/* rscp debug [yes|on|no|off|toggle] */
if(sender instanceof ConsoleCommandSender)
throw new CommandAnswerException(Phrases.PLUGIN_PLAYER_ONLY.toString());
if(sender.hasPermission("rscp.admin"))
{
final Player player = (Player)sender;
boolean isDebugging = rscp.permissionManager.isDebugging(player);
if(args.length >= 2)
switch(args[1].toLowerCase())
{
case "yes":
case "on":
isDebugging = true;
break;
case "no":
case "off":
isDebugging = false;
break;
case "toggle":
isDebugging = !isDebugging;
break;
default:
throw new CommandAnswerException(help);
}
else
isDebugging = !isDebugging;
rscp.permissionManager.setDebugging(player, isDebugging);
throw new CommandAnswerException(isDebugging ? Phrases.DEBUG_ON.toString() : Phrases.DEBUG_OFF.toString());
}
return; return;
case "help": case "help":
default: default:
throw new CommandAnswerException(help); break;
} }
throw new CommandAnswerException(help);
} }
private void onCommandHubUser(CommandSender sender, String[] args) throws CommandAnswerException private void onCommandHubUser(CommandSender sender, 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.");
final String[] help = new String[]
{
"rscPermissions command hub (user section).",
"{MAGENTA}Usage:",
"/rscp user <user> list permissions",
"/rscp user <user> list groups",
// "/rscp user <user> list ranks",
"/rscp user <user> prefix [prefix]",
"/rscp user <user> suffix [suffix]",
};
if(args.length < 3) if(args.length < 3)
throw new CommandAnswerException(help); return;
final Player player = rscp.bridgeForBukkit.findPlayer(args[1]); final Player player = rscp.bridgeForBukkit.findPlayer(args[1]);
if(player == null) if(player != null)
throw new CommandAnswerException("Player should be online"); args[1] = player.getName();
final ArrayList<String> list = new ArrayList<>(); final ResolutionResult result = (player != null)
? rscp.permissionManager.getResult(player)
: rscp.permissionManager.getResult(args[1]);
final ArrayList<String> answer = new ArrayList<>();
switch(args[2].toLowerCase()) switch(args[2].toLowerCase())
{ {
case "list": case "lp":
if(args.length < 4) answer.add("Permission list for user {_YL}" + args[1] + "{_LS}:");
throw new CommandAnswerException(help); final ArrayList<String> sorted_keys = new ArrayList<>(result.permissions.keySet());
switch(args[3].toLowerCase()) Collections.sort(sorted_keys);
{ for(String perm : sorted_keys)
case "permissions": answer.add((result.permissions.get(perm) ? "{_LG}" : "{_LR}") + perm);
list.add("{MAGENTA}Permission list for {_YL}" + player.getName()); throw new CommandAnswerException(answer);
final Map<String, Boolean> pv = rscp.permissionManager.listPlayerPermissions(player); case "lg":
final ArrayList<String> sorted_keys = new ArrayList<>(pv.keySet()); answer.add("Group list for user {_YL}" + args[1] + "{_LS}:");
Collections.sort(sorted_keys); for(String group : result.groups)
for(String perm : sorted_keys) answer.add("{_LG}" + group);
if(pv.containsKey(perm)) throw new CommandAnswerException(answer);
list.add((pv.get(perm) ? "{_LG}" : "{_LR}") + perm); case "p":
throw new CommandAnswerException(list);
case "groups":
list.add("{MAGENTA}Group list for {_YL}" + player.getName() + "{MAGENTA}:");
for(String group : rscp.bridgeForBukkit.getPermission().getPlayerGroups(player))
list.add("{_LG}" + group);
throw new CommandAnswerException(list);
}
throw new CommandAnswerException(list);
case "prefix": case "prefix":
if(args.length > 3) answer.add("Calculated prefix for user {_YL}" + args[1] + "{_LS} is:");
{ answer.add("{_R}\"" + result.prefix + "{_R}\"");
/* throw new CommandAnswerException(answer);
plugin.API.setPlayerPrefix(null, player.getName(), args[3]); case "s":
list.add("{MAGENTA}Prefix for user {_YL}" + player.getName() +
" {MAGENTA}has been set to \"{_R}" + plugin.cache.userGetPrefix(player.getName()) + "{MAGENTA}\".");
*/
} else {
/*
list.add("{MAGENTA}Prefix for user {_YL}" + player.getName() +
" {MAGENTA}is \"{_R}" + plugin.cache.userGetPrefix(player.getName()) + "{MAGENTA}\".");
*/
}
throw new CommandAnswerException(list);
case "suffix": case "suffix":
if(args.length > 3) answer.add("Calculated suffix for user {_YL}" + args[1] + "{_LS} is:");
{ answer.add("{_R}\"" + result.suffix + "{_R}\"");
/* throw new CommandAnswerException(answer);
plugin.API.setPlayerSuffix(null, player.getName(), args[3]);
list.add("{MAGENTA}Suffix for user {_YL}" + player.getName() +
" {MAGENTA}has been set to \"{_R}" + plugin.cache.userGetSuffix(player.getName()) + "{MAGENTA}\".");
*/
} else {
/*
list.add("{MAGENTA}Suffix for user {_YL}" + player.getName() +
" {MAGENTA}is \"{_R}" + plugin.cache.userGetSuffix(player.getName()) + "{MAGENTA}\".");
*/
}
throw new CommandAnswerException(list);
} }
} }
private void onCommandHubGroup(CommandSender sender, String[] args) throws CommandAnswerException public static boolean argumentToBoolean(String arg, Boolean prevForToggle) throws IllegalArgumentException
{ {
if(sender.hasPermission("rscp.admin") == false) if(arg == null || "".equals(arg))
throw new CommandAnswerException("Not enough permissions."); throw new IllegalArgumentException("Argument is null or empty.");
final String[] help = new String[] switch(arg.toLowerCase())
{ {
"rscPermissions command hub (group section).", case "enable":
"{MAGENTA}Usage:", case "true":
// "/rscp group <group> list permissions", case "yes":
// "/rscp group <group> list ranks", case "on":
"/rscp group <group> prefix [prefix]", return true;
"/rscp group <group> suffix [suffix]", case "disable":
}; case "false":
if(args.length < 3) case "no":
throw new CommandAnswerException(help); case "off":
final String group = args[1]; return false;
final ArrayList<String> list = new ArrayList<>(); case "toggle":
switch(args[2].toLowerCase()) if(prevForToggle != null)
return !prevForToggle;
else
throw new IllegalArgumentException("Previous value is unknown.");
}
throw new IllegalArgumentException("Cannot understand boolean value.");
}
public static int argumentToInteger(String arg) throws IllegalArgumentException
{
if(arg == null || "".equals(arg))
throw new IllegalArgumentException("Argument is null or empty.");
try
{ {
case "prefix": return Integer.parseInt(arg);
if(args.length > 3) } catch(NumberFormatException ex) {
{ throw new IllegalArgumentException(ex.getMessage());
/*
plugin.API.setGroupPrefix(null, group, args[3]);
list.add("{MAGENTA}Prefix for group {_YL}" + group +
" {MAGENTA}has been set to \"{_R}" + plugin.cache.groupGetPrefix(group) + "{MAGENTA}\".");
*/
} else {
/*
list.add("{MAGENTA}Prefix for group {_YL}" + group +
" {MAGENTA}is \"{_R}" + plugin.cache.groupGetPrefix(group) + "{MAGENTA}\".");
*/
}
throw new CommandAnswerException(list);
case "suffix":
if(args.length > 3)
{
/*
plugin.API.setGroupSuffix(null, group, args[3]);
list.add("{MAGENTA}Suffix for group {_YL}" + group +
" {MAGENTA}has been set to \"{_R}" + plugin.cache.groupGetSuffix(group) + "{MAGENTA}\".");
*/
} else {
/*
list.add("{MAGENTA}Suffix for group {_YL}" + group +
" {MAGENTA}is \"{_R}" + plugin.cache.groupGetSuffix(group) + "{MAGENTA}\".");
*/
}
throw new CommandAnswerException(list);
} }
} }
} }

38
src/main/java/ru/simsonic/rscPermissions/Bukkit/Commands/CommandDebug.java

@ -0,0 +1,38 @@
package ru.simsonic.rscPermissions.Bukkit.Commands;
import org.bukkit.command.CommandSender;
import org.bukkit.command.ConsoleCommandSender;
import org.bukkit.entity.Player;
import ru.simsonic.rscPermissions.BukkitPluginMain;
import ru.simsonic.rscPermissions.Engine.Phrases;
import ru.simsonic.rscUtilityLibrary.Bukkit.Commands.CommandAnswerException;
public class CommandDebug
{
private final BukkitPluginMain rscp;
CommandDebug(BukkitPluginMain plugin)
{
this.rscp = plugin;
}
public void execute(CommandSender sender, String args[]) throws CommandAnswerException
{
if(sender instanceof ConsoleCommandSender)
throw new CommandAnswerException(Phrases.PLUGIN_PLAYER_ONLY.toString());
if(sender.hasPermission("rscp.admin"))
{
final Player player = (Player)sender;
boolean isDebugging = rscp.permissionManager.isDebugging(player);
if(args.length >= 2)
{
try
{
isDebugging = BukkitCommands.argumentToBoolean(args[1], isDebugging);
} catch(IllegalArgumentException ex) {
throw new CommandAnswerException("{_LR}" + ex.getMessage());
}
} else
isDebugging = !isDebugging;
rscp.permissionManager.setDebugging(player, isDebugging);
throw new CommandAnswerException(isDebugging ? Phrases.DEBUG_ON.toString() : Phrases.DEBUG_OFF.toString());
}
}
}

22
src/main/java/ru/simsonic/rscPermissions/Bukkit/Commands/CommandFetch.java

@ -0,0 +1,22 @@
package ru.simsonic.rscPermissions.Bukkit.Commands;
import org.bukkit.command.CommandSender;
import ru.simsonic.rscPermissions.BukkitPluginMain;
import ru.simsonic.rscPermissions.Engine.Phrases;
import ru.simsonic.rscUtilityLibrary.Bukkit.Commands.CommandAnswerException;
public class CommandFetch
{
private final BukkitPluginMain rscp;
CommandFetch(BukkitPluginMain plugin)
{
this.rscp = plugin;
}
public void execute(CommandSender sender) throws CommandAnswerException
{
if(sender.hasPermission("rscp.admin.reload"))
{
rscp.commandHelper.threadFetchDatabaseContents.startDeamon();
throw new CommandAnswerException(Phrases.MYSQL_FETCHED.toString());
}
}
}

25
src/main/java/ru/simsonic/rscPermissions/Bukkit/Commands/CommandLock.java

@ -0,0 +1,25 @@
package ru.simsonic.rscPermissions.Bukkit.Commands;
import org.bukkit.command.CommandSender;
import ru.simsonic.rscPermissions.BukkitPluginMain;
import ru.simsonic.rscUtilityLibrary.Bukkit.Commands.CommandAnswerException;
public class CommandLock
{
private final BukkitPluginMain rscp;
CommandLock(BukkitPluginMain plugin)
{
this.rscp = plugin;
}
public void execute(CommandSender sender, String args[]) throws CommandAnswerException
{
if(sender.hasPermission("rscp.lock"))
{
final String mMode = (args.length >= 2) ? args[1] : "default";
String mmon = "Maintenance mode enabled";
mmon = rscp.getConfig().getString("language.maintenance.locked.default.mmon", mmon);
mmon = rscp.getConfig().getString("language.maintenance.locked." + mMode + ".mmon", mmon);
rscp.bukkitListener.setMaintenanceMode(mMode);
throw new CommandAnswerException(mmon);
}
}
}

23
src/main/java/ru/simsonic/rscPermissions/Bukkit/Commands/CommandReload.java

@ -0,0 +1,23 @@
package ru.simsonic.rscPermissions.Bukkit.Commands;
import org.bukkit.command.CommandSender;
import ru.simsonic.rscPermissions.BukkitPluginMain;
import ru.simsonic.rscPermissions.Engine.Phrases;
import ru.simsonic.rscUtilityLibrary.Bukkit.Commands.CommandAnswerException;
public class CommandReload
{
private final BukkitPluginMain rscp;
CommandReload(BukkitPluginMain plugin)
{
this.rscp = plugin;
}
public void execute(CommandSender sender) throws CommandAnswerException
{
if(sender.hasPermission("rscp.admin.reload"))
{
rscp.getServer().getPluginManager().disablePlugin(rscp);
rscp.getServer().getPluginManager().enablePlugin(rscp);
throw new CommandAnswerException(Phrases.PLUGIN_RELOADED.toString());
}
}
}

23
src/main/java/ru/simsonic/rscPermissions/Bukkit/Commands/CommandUnlock.java

@ -0,0 +1,23 @@
package ru.simsonic.rscPermissions.Bukkit.Commands;
import org.bukkit.command.CommandSender;
import ru.simsonic.rscPermissions.BukkitPluginMain;
import ru.simsonic.rscUtilityLibrary.Bukkit.Commands.CommandAnswerException;
public class CommandUnlock
{
private final BukkitPluginMain rscp;
CommandUnlock(BukkitPluginMain plugin)
{
this.rscp = plugin;
}
public void execute(CommandSender sender) throws CommandAnswerException
{
if(sender.hasPermission("rscp.lock"))
{
String mmoff = "Maintenance mode disabled";
mmoff = rscp.getConfig().getString("language.maintenance.unlocked", mmoff);
rscp.bukkitListener.setMaintenanceMode(null);
throw new CommandAnswerException(mmoff);
}
}
}

21
src/main/java/ru/simsonic/rscPermissions/Bukkit/PermissionsEx_YAML.java

@ -1,21 +0,0 @@
package ru.simsonic.rscPermissions.Bukkit;
import java.io.File;
import org.bukkit.configuration.ConfigurationSection;
import org.bukkit.configuration.file.FileConfiguration;
import org.bukkit.configuration.file.YamlConfiguration;
import ru.simsonic.rscUtilityLibrary.Bukkit.Commands.CommandAnswerException;
public final class PermissionsEx_YAML
{
public PermissionsEx_YAML(File permissionsYml) throws CommandAnswerException
{
try
{
final FileConfiguration config = YamlConfiguration.loadConfiguration(permissionsYml);
final ConfigurationSection csGroups = config.getConfigurationSection("groups");
final ConfigurationSection csUsers = config.getConfigurationSection("users");
final ConfigurationSection csWorlds = config.getConfigurationSection("worlds");
} catch(NullPointerException ex) {
}
}
}

2
src/main/java/ru/simsonic/rscPermissions/SpongePluginMain.java

@ -6,7 +6,7 @@ import org.spongepowered.api.event.state.ServerStoppedEvent;
import org.spongepowered.api.event.state.ServerStoppingEvent; import org.spongepowered.api.event.state.ServerStoppingEvent;
import org.spongepowered.api.plugin.Plugin; import org.spongepowered.api.plugin.Plugin;
@Plugin(id = "rscPermissions", name = "rscPermissions", version = "0.9.9b") @Plugin(id = "rscPermissions", name = "rscPermissions", version = "0.9b")
public class SpongePluginMain public class SpongePluginMain
{ {
public void onServerStart(ServerAboutToStartEvent event) public void onServerStart(ServerAboutToStartEvent event)

Loading…
Cancel
Save