Browse Source

More fixes.

master
Stanislav Usenkov 9 years ago
parent
commit
f0ee42beaf
  1. 22
      src/main/java/ru/simsonic/rscPermissions/Bukkit/Commands/ArgumentUtilities.java
  2. 14
      src/main/java/ru/simsonic/rscPermissions/Bukkit/Commands/CommandEntity.java
  3. 10
      src/main/java/ru/simsonic/rscPermissions/Engine/Backends/BackendDatabase.java

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

@ -18,9 +18,7 @@ public class ArgumentUtilities
final CommandParams result = new CommandParams();
for(int index = 0; index < args.length && args[index] != null; index += 1)
{
final boolean isLastArg = (index != args.length - 1);
if(args[index] == null)
break;
final boolean isLastArg = (index == args.length - 1);
switch(args[index].toLowerCase())
{
case "":
@ -32,28 +30,30 @@ public class ArgumentUtilities
throw new CommandAnswerException("RequiresOneMoreArg");
try
{
result.expirience = Integer.parseInt(args[index + 1]);
index += 1;
result.expirience = Integer.parseInt(args[index]);
} catch(NumberFormatException ex) {
throw new CommandAnswerException("NumberFormatException: " + args[index + 1]);
throw new CommandAnswerException("NumberFormatException: " + args[index]);
} catch(NullPointerException ex) {
throw new CommandAnswerException("NullPointerException: args #" + (index + 1));
throw new CommandAnswerException("NullPointerException: args #" + index);
}
index += 1;
break;
case "d":
case "dest":
case "destination":
if(isLastArg)
throw new CommandAnswerException("RequiresOneMoreArg");
if(args[index + 1] == null || "".equals(args[index + 1]))
throw new CommandAnswerException("NotEnoughArguments: args #" + (index + 1));
result.destination = Destination.parseDestination(args[index + 1]);
index += 1;
if(args[index] == null || "".equals(args[index]))
throw new CommandAnswerException("NotEnoughArguments: args #" + index);
result.destination = Destination.parseDestination(args[index]);
break;
case "l":
case "lifetime":
if(isLastArg)
throw new CommandAnswerException("RequiresOneMoreArg");
result.lifetime = TimeIntervalParser.parseTimeInterval(args[index + 1]);
index += 1;
result.lifetime = TimeIntervalParser.parseTimeInterval(args[index]);
if(result.lifetime < 0)
result.lifetime = Integer.MAX_VALUE;
break;

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

@ -104,7 +104,7 @@ public class CommandEntity
case GROUP:
entity = rscp.internalCache.findGroupEntity(args[0]);
if(entity == null && forceEntityCreation)
entity = createEntity(EntityType.PLAYER, args[0]);
entity = createEntity(EntityType.GROUP, args[0]);
break;
}
if(entity == null && result == null)
@ -397,9 +397,9 @@ public class CommandEntity
{
final ArrayList<String> answer = new ArrayList<>();
final RowInheritance row = new RowInheritance();
row.entity = entity.entity;
row.entity = entity.entity;
row.entityType = entity.entityType;
row.parent = parent;
row.parent = parent;
rscp.connection.addInheritance(row);
throw new CommandAnswerException("{_LG}All is ok? I don't ready to check it myself.");
}
@ -442,7 +442,7 @@ public class CommandEntity
throw new CommandAnswerException("{_LR}There are several possibilities what to remove. Please use unique white id.");
final RowInheritance row = possibleTargets.get(0);
rscp.connection.removeInheritanceById(row.id);
answer.add("{_LR}Successfully removed inheritance record {_WH}" + row.splittedId + "{_LR}!");
answer.add("{_LG}Successfully removed inheritance record {_WH}" + row.splittedId + "{_LG}!");
throw new CommandAnswerException(answer);
}
private void removePermission(RowEntity entity, String whatToRemove) throws CommandAnswerException
@ -464,13 +464,13 @@ public class CommandEntity
if(whatToRemove.equalsIgnoreCase(row.permission))
possibleTargets.add(row);
}
if(possibleTargets.size() == 0)
if(possibleTargets.isEmpty())
throw new CommandAnswerException("{_LR}Sorry, I don't understand what I should remove from DB.");
if(possibleTargets.size() > 1)
throw new CommandAnswerException("{_LR}There are several possibilities what to remove. Please use unique white id.");
final RowPermission row = possibleTargets.get(0);
rscp.connection.removeInheritanceById(row.id);
answer.add("{_LR}Successfully removed inheritance record {_WH}" + row.splittedId + "{_LR}!");
rscp.connection.removePermissionsById(row.id);
answer.add("{_LG}Successfully removed inheritance record {_WH}" + row.splittedId + "{_LG}!");
throw new CommandAnswerException(answer);
}
}

10
src/main/java/ru/simsonic/rscPermissions/Engine/Backends/BackendDatabase.java

@ -166,17 +166,17 @@ public class BackendDatabase extends ConnectionMySQL
public synchronized void removeEntityById(long id)
{
setupQueryTemplate("{ID}", Long.toString(id));
executeUpdateT("DELETE FROM `{DATABASE}`.`{PREFIX}entities` WHERE `id` = '{ID}';");
executeUpdate("DELETE FROM `{DATABASE}`.`{PREFIX}entities` WHERE `id` = '{ID}';");
}
public synchronized void removePermissionsById(long id)
{
setupQueryTemplate("{ID}", Long.toString(id));
executeUpdateT("DELETE FROM `{DATABASE}`.`{PREFIX}permissions` WHERE `id` = '{ID}';");
executeUpdate("DELETE FROM `{DATABASE}`.`{PREFIX}permissions` WHERE `id` = '{ID}';");
}
public synchronized void removeInheritanceById(long id)
{
setupQueryTemplate("{ID}", Long.toString(id));
executeUpdateT("DELETE FROM `{DATABASE}`.`{PREFIX}inheritance` WHERE `id` = '{ID}';");
executeUpdate("DELETE FROM `{DATABASE}`.`{PREFIX}inheritance` WHERE `id` = '{ID}';");
}
public synchronized void insertEntity(
Long id,
@ -209,7 +209,7 @@ public class BackendDatabase extends ConnectionMySQL
final Map<String, String> fields = new HashMap<>();
// Required fields
fields.put("entity", quoteValue(entity));
fields.put("entity_type", type.equals(EntityType.PLAYER) ? "b'1'" : "b'0'");
fields.put("entity_type", String.format("b'%d'", type.getValue()));
fields.put("permission", quoteValue(permission));
fields.put("value", value ? "b'1'" : "b'0'");
// Optional fields
@ -273,6 +273,6 @@ public class BackendDatabase extends ConnectionMySQL
sbv.setLength(sbv.length() - sep.length());
setupQueryTemplate("{FIELDS}", sbf.toString());
setupQueryTemplate("{VALUES}", sbv.toString());
executeUpdateT("INSERT INTO `{DATABASE}`.`{PREFIX}{TABLE}` ({FIELDS}) VALUES ({VALUES});");
executeUpdate("INSERT INTO `{DATABASE}`.`{PREFIX}{TABLE}` ({FIELDS}) VALUES ({VALUES});");
}
}

Loading…
Cancel
Save