Add a method to jail someone forever, resolves #49.
Include -i in the command and the player will be jailed forever.
This commit is contained in:
parent
64f6ce8a64
commit
9ecfb92252
@ -12,6 +12,9 @@ public interface Jailing {
|
||||
@Option(longName={"time", "length"}, shortName="t", description = "the amount of time")
|
||||
public String getTime();
|
||||
|
||||
@Option(longName={"forever", "eternity", "infinite"}, shortName="i", description = "jail the player for eternity")
|
||||
public boolean getInfinite();
|
||||
|
||||
@Option(longName={"jail", "prison"}, shortName="j", description = "the jail")
|
||||
public String getJail();
|
||||
|
||||
@ -27,6 +30,7 @@ public interface Jailing {
|
||||
@Option(longName={"reason"}, shortName="r", description = "the reason this player is being jailed")
|
||||
public List<String> getReason();
|
||||
|
||||
public boolean isInfinite();
|
||||
public boolean isTime();
|
||||
public boolean isJail();
|
||||
public boolean isCell();
|
||||
|
@ -83,18 +83,22 @@ public class JailCommand implements Command {
|
||||
//from the config and if that isn't there then we default to thirty minutes.
|
||||
Long time = 10L;
|
||||
try {
|
||||
if(!params.isTime()) {
|
||||
time = Util.getTime(jm.getPlugin().getConfig().getString(Settings.DEFAULTTIME.getPath(), "30m"));
|
||||
}else if(params.getTime() == String.valueOf(-1)) {
|
||||
time = -1L;
|
||||
}else {
|
||||
if(params.isTime()) {
|
||||
time = Util.getTime(params.getTime());
|
||||
}else {
|
||||
time = Util.getTime(jm.getPlugin().getConfig().getString(Settings.DEFAULTTIME.getPath(), "30m"));
|
||||
}
|
||||
}catch(Exception e) {
|
||||
sender.sendMessage(Lang.NUMBERFORMATINCORRECT.get());
|
||||
return true;
|
||||
}
|
||||
|
||||
//Check if they provided the infinite argument
|
||||
//if so, then set the time jailed forever
|
||||
if(params.isInfinite()) {
|
||||
time = -1L;
|
||||
}
|
||||
|
||||
//Check the jail params. If it is empty, let's get the default jail
|
||||
//from the config. If that is nearest, let's make a call to getting the nearest jail to
|
||||
//the sender but otherwise if it isn't nearest then let's set it to the default jail
|
||||
|
@ -162,6 +162,27 @@ public class TestJailCommandInfo {
|
||||
assertEquals("This is a reason", sb.toString());
|
||||
}
|
||||
|
||||
@Test
|
||||
public void testForInfiniteJailTime() {
|
||||
String[] args = { "-p", "graywolf336", "-j", "hardcore", "-iamr", "This", "should", "be", "a", "reason." };
|
||||
Jailing j = CliFactory.parseArguments(Jailing.class, args);
|
||||
|
||||
assertEquals("The player parsed doesn't match.", "graywolf336", j.getPlayer());
|
||||
assertTrue("No jail was parsed.", j.isJail());
|
||||
assertEquals("The jail parsed doesn't match.", "hardcore", j.getJail());
|
||||
assertTrue("The time isn't infinite.", j.isInfinite());
|
||||
assertTrue("The any cell wasn't parsed.", j.isAnyCell());
|
||||
assertTrue("The player wouldn't be muted.", j.isMuted());
|
||||
assertTrue("The reason wasn't provided?", j.isReason());
|
||||
StringBuilder sb = new StringBuilder();
|
||||
for(String s : j.getReason()) {
|
||||
sb.append(s).append(' ');
|
||||
}
|
||||
|
||||
sb.deleteCharAt(sb.length() - 1);
|
||||
assertEquals("The reason doesn't match.", "This should be a reason.", sb.toString());
|
||||
}
|
||||
|
||||
@Test
|
||||
public void testTransferForJailAndCell() {
|
||||
String[] args = { "-p", "graywolf336", "-j", "hardcore", "-c", "cell_n01" };
|
||||
|
Loading…
Reference in New Issue
Block a user