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:
		| @@ -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" }; | ||||||
|   | |||||||
		Reference in New Issue
	
	Block a user
	 graywolf336
					graywolf336