Browse Source

Fix of some possible NPEs.

master
Stanislav Usenkov 9 years ago
parent
commit
9f14271154
  1. 1
      src/main/java/ru/simsonic/rscPermissions/Bukkit/BukkitPermissionManager.java
  2. 14
      src/main/java/ru/simsonic/rscPermissions/Bukkit/Commands/BukkitCommands.java
  3. 2
      src/main/java/ru/simsonic/rscPermissions/Bukkit/Commands/CommandEntity.java
  4. 2
      src/main/resources/sqlt/Deployment.sqlt

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

@ -1,6 +1,5 @@
package ru.simsonic.rscPermissions.Bukkit; package ru.simsonic.rscPermissions.Bukkit;
import java.util.Arrays;
import java.util.Collections; import java.util.Collections;
import java.util.HashMap; import java.util.HashMap;
import java.util.HashSet; import java.util.HashSet;

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

@ -3,6 +3,7 @@ package ru.simsonic.rscPermissions.Bukkit.Commands;
import java.util.ArrayList; import java.util.ArrayList;
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 ru.simsonic.rscCommonsLibrary.RestartableThread; import ru.simsonic.rscCommonsLibrary.RestartableThread;
import ru.simsonic.rscMinecraftLibrary.Bukkit.CommandAnswerException; import ru.simsonic.rscMinecraftLibrary.Bukkit.CommandAnswerException;
import ru.simsonic.rscMinecraftLibrary.Bukkit.GenericChatCodes; import ru.simsonic.rscMinecraftLibrary.Bukkit.GenericChatCodes;
@ -33,6 +34,7 @@ public class BukkitCommands
cmdUpdate = new CommandUpdate(rscp); cmdUpdate = new CommandUpdate(rscp);
threadFetchDatabaseContents = new BukkitDatabaseFetcher(rscp); threadFetchDatabaseContents = new BukkitDatabaseFetcher(rscp);
} }
@Deprecated
public Thread threadMigrateFromPExSQL(final CommandSender sender) public Thread threadMigrateFromPExSQL(final CommandSender sender)
{ {
final Thread result = new Thread() final Thread result = new Thread()
@ -64,6 +66,7 @@ public class BukkitCommands
result.start(); result.start();
return result; return result;
} }
@Deprecated
public RestartableThread threadInsertExampleRows(final CommandSender sender) public RestartableThread threadInsertExampleRows(final CommandSender sender)
{ {
final RestartableThread threadInsertExampleRows = new RestartableThread() final RestartableThread threadInsertExampleRows = new RestartableThread()
@ -91,13 +94,17 @@ public class BukkitCommands
final ArrayList<String> help = new ArrayList<>(64); final ArrayList<String> help = new ArrayList<>(64);
final boolean isAdmin = sender.hasPermission("rscp.admin"); final boolean isAdmin = sender.hasPermission("rscp.admin");
final boolean isLocker = sender.hasPermission("rscp.admin.lock"); final boolean isLocker = sender.hasPermission("rscp.admin.lock");
final boolean isPlayer = !(sender instanceof ConsoleCommandSender);
help.addAll(Tools.getPluginWelcome(rscp, Phrases.HELP_HEADER_1.toString())); help.addAll(Tools.getPluginWelcome(rscp, Phrases.HELP_HEADER_1.toString()));
if(isLocker) if(isLocker)
help.add(Phrases.HELP_HEADER_2.toString().replace("{:SERVERID}", rscp.getServer().getServerId())); help.add(Phrases.HELP_HEADER_2.toString().replace("{:SERVERID}", rscp.getServer().getServerId()));
final String mmode = rscp.settings.getMaintenanceMode(); final String mmode = rscp.settings.getMaintenanceMode();
if(isLocker && !"".equals(mmode)) if(isLocker && !"".equals(mmode))
help.add(Phrases.HELP_HEADER_3.toString().replace("{:MMODE}", mmode)); help.add(Phrases.HELP_HEADER_3.toString().replace("{:MMODE}", mmode));
if(args.length == 0) final String subcommand = args.length > 0
? args[0].toLowerCase()
: (isPlayer ? "" : "help");
if("".equals(subcommand))
throw new CommandAnswerException(help); throw new CommandAnswerException(help);
// Generating full help page // Generating full help page
help.add(Phrases.HELP_USAGE.toString()); help.add(Phrases.HELP_USAGE.toString());
@ -117,7 +124,7 @@ public class BukkitCommands
help.add(Phrases.HELP_CMD_RELOAD.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(subcommand)
{ {
case "listgroups": case "listgroups":
case "groups": case "groups":
@ -150,15 +157,12 @@ public class BukkitCommands
cmdLock.executeUnlock(sender); cmdLock.executeUnlock(sender);
return; return;
case "fetch": case "fetch":
/* rscp fetch */
cmdFetch.execute(sender); cmdFetch.execute(sender);
return; return;
case "debug": case "debug":
/* rscp debug [<boolean variant>|toggle] */
cmdDebug.execute(sender, args); cmdDebug.execute(sender, args);
return; return;
case "reload": case "reload":
/* rscp reload */
cmdReload.execute(sender); cmdReload.execute(sender);
return; return;
case "update": case "update":

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

@ -73,6 +73,8 @@ public class CommandEntity
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 == 0)
throw new CommandAnswerException(getHelpForType(type));
ResolutionResult result = null; ResolutionResult result = null;
RowEntity entity = null; RowEntity entity = null;
switch(type) switch(type)

2
src/main/resources/sqlt/Deployment.sqlt

@ -7,7 +7,7 @@ CREATE TABLE IF NOT EXISTS `{DATABASE}`.`{PREFIX}entities` (
`entity_type` TINYINT(1) NOT NULL, `entity_type` TINYINT(1) NOT NULL,
`prefix` VARCHAR(48) DEFAULT NULL, `prefix` VARCHAR(48) DEFAULT NULL,
`suffix` VARCHAR(48) DEFAULT NULL, `suffix` VARCHAR(48) DEFAULT NULL,
`lifetime` TIMESTAMP NULL DEFAULT NULL, `lifetime` TIMESTAMP NULL DEFAULT NULL,
PRIMARY KEY (`id`), PRIMARY KEY (`id`),
UNIQUE KEY `id_UNIQUE` (`id`), UNIQUE KEY `id_UNIQUE` (`id`),
UNIQUE KEY `entity_UNIQUE` (`entity`, `entity_type`) UNIQUE KEY `entity_UNIQUE` (`entity`, `entity_type`)

Loading…
Cancel
Save