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")
|
@Option(longName={"time", "length"}, shortName="t", description = "the amount of time")
|
||||||
public String getTime();
|
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")
|
@Option(longName={"jail", "prison"}, shortName="j", description = "the jail")
|
||||||
public String getJail();
|
public String getJail();
|
||||||
|
|
||||||
@ -27,6 +30,7 @@ public interface Jailing {
|
|||||||
@Option(longName={"reason"}, shortName="r", description = "the reason this player is being jailed")
|
@Option(longName={"reason"}, shortName="r", description = "the reason this player is being jailed")
|
||||||
public List<String> getReason();
|
public List<String> getReason();
|
||||||
|
|
||||||
|
public boolean isInfinite();
|
||||||
public boolean isTime();
|
public boolean isTime();
|
||||||
public boolean isJail();
|
public boolean isJail();
|
||||||
public boolean isCell();
|
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.
|
//from the config and if that isn't there then we default to thirty minutes.
|
||||||
Long time = 10L;
|
Long time = 10L;
|
||||||
try {
|
try {
|
||||||
if(!params.isTime()) {
|
if(params.isTime()) {
|
||||||
time = Util.getTime(jm.getPlugin().getConfig().getString(Settings.DEFAULTTIME.getPath(), "30m"));
|
|
||||||
}else if(params.getTime() == String.valueOf(-1)) {
|
|
||||||
time = -1L;
|
|
||||||
}else {
|
|
||||||
time = Util.getTime(params.getTime());
|
time = Util.getTime(params.getTime());
|
||||||
|
}else {
|
||||||
|
time = Util.getTime(jm.getPlugin().getConfig().getString(Settings.DEFAULTTIME.getPath(), "30m"));
|
||||||
}
|
}
|
||||||
}catch(Exception e) {
|
}catch(Exception e) {
|
||||||
sender.sendMessage(Lang.NUMBERFORMATINCORRECT.get());
|
sender.sendMessage(Lang.NUMBERFORMATINCORRECT.get());
|
||||||
return true;
|
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
|
//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
|
//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
|
//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());
|
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
|
@Test
|
||||||
public void testTransferForJailAndCell() {
|
public void testTransferForJailAndCell() {
|
||||||
String[] args = { "-p", "graywolf336", "-j", "hardcore", "-c", "cell_n01" };
|
String[] args = { "-p", "graywolf336", "-j", "hardcore", "-c", "cell_n01" };
|
||||||
|
Loading…
Reference in New Issue
Block a user