2014-06-12 10:44:13 -05:00
|
|
|
package com.graywolf336.jail.command.subcommands;
|
|
|
|
|
2015-06-02 12:32:34 -05:00
|
|
|
import java.util.ArrayList;
|
2015-06-01 21:14:01 -05:00
|
|
|
import java.util.Collections;
|
|
|
|
import java.util.List;
|
|
|
|
|
2014-06-12 10:44:13 -05:00
|
|
|
import org.bukkit.command.CommandSender;
|
2015-06-02 12:32:34 -05:00
|
|
|
import org.bukkit.util.StringUtil;
|
2014-06-12 10:44:13 -05:00
|
|
|
|
|
|
|
import com.graywolf336.jail.JailManager;
|
|
|
|
import com.graywolf336.jail.Util;
|
|
|
|
import com.graywolf336.jail.beans.Prisoner;
|
|
|
|
import com.graywolf336.jail.command.Command;
|
|
|
|
import com.graywolf336.jail.command.CommandInfo;
|
2014-07-24 21:16:57 -05:00
|
|
|
import com.graywolf336.jail.enums.Lang;
|
2014-06-12 10:44:13 -05:00
|
|
|
|
|
|
|
@CommandInfo(
|
2014-07-27 14:46:25 -05:00
|
|
|
maxArgs = 3,
|
|
|
|
minimumArgs = 2,
|
|
|
|
needsPlayer = false,
|
|
|
|
pattern = "time|t",
|
|
|
|
permission = "jail.command.jailtime",
|
2015-02-20 23:10:05 -06:00
|
|
|
usage = "/jail time [add|remove|set|show] [name] <time>"
|
2014-07-27 14:46:25 -05:00
|
|
|
)
|
2014-06-12 10:44:13 -05:00
|
|
|
public class JailTimeCommand implements Command {
|
2015-06-03 10:01:24 -05:00
|
|
|
private static final String[] options = new String[] { "add", "remove", "set", "show" };
|
|
|
|
|
2014-07-27 14:46:25 -05:00
|
|
|
public boolean execute(JailManager jm, CommandSender sender, String... args) throws Exception {
|
|
|
|
if(jm.isPlayerJailedByLastKnownUsername(args[2])) {
|
|
|
|
Prisoner p = jm.getPrisonerByLastKnownName(args[2]);
|
|
|
|
|
|
|
|
switch(args.length) {
|
|
|
|
case 3:
|
|
|
|
if(args[1].equalsIgnoreCase("show")) {
|
|
|
|
sender.sendMessage(Lang.PRISONERSTIME.get(new String[] { p.getLastKnownName(), String.valueOf(p.getRemainingTimeInMinutes()) }));
|
|
|
|
}else {
|
|
|
|
return false;
|
|
|
|
}
|
|
|
|
break;
|
|
|
|
case 4:
|
|
|
|
if(args[1].equalsIgnoreCase("add")) {
|
|
|
|
p.addTime(Util.getTime(args[3]));
|
|
|
|
}else if(args[1].equalsIgnoreCase("remove")) {
|
|
|
|
p.subtractTime(Util.getTime(args[3]));
|
2015-02-20 23:10:05 -06:00
|
|
|
}else if(args[1].equalsIgnoreCase("set")) {
|
|
|
|
p.setRemainingTime(Util.getTime(args[3]));
|
2014-07-27 14:46:25 -05:00
|
|
|
}else {
|
|
|
|
return false;
|
|
|
|
}
|
|
|
|
|
|
|
|
sender.sendMessage(Lang.PRISONERSTIME.get(new String[] { p.getLastKnownName(), String.valueOf(p.getRemainingTimeInMinutes()) }));
|
|
|
|
break;
|
|
|
|
default:
|
|
|
|
return false;
|
|
|
|
}
|
|
|
|
}else {
|
|
|
|
sender.sendMessage(Lang.NOTJAILED.get(args[2]));
|
|
|
|
}
|
|
|
|
|
|
|
|
return true;
|
|
|
|
}
|
2015-06-01 21:14:01 -05:00
|
|
|
|
|
|
|
public List<String> provideTabCompletions(JailManager jm, CommandSender sender, String... args) throws Exception {
|
2015-06-02 12:32:34 -05:00
|
|
|
List<String> results = new ArrayList<String>();
|
|
|
|
|
|
|
|
switch(args.length) {
|
|
|
|
case 2:
|
2015-06-03 10:01:24 -05:00
|
|
|
for(String s : options)
|
2015-06-02 12:32:34 -05:00
|
|
|
if(args[1].isEmpty() || StringUtil.startsWithIgnoreCase(s, args[1]))
|
|
|
|
results.add(s);
|
|
|
|
break;
|
|
|
|
case 3:
|
|
|
|
for(Prisoner p : jm.getAllPrisoners().values())
|
|
|
|
if(StringUtil.startsWithIgnoreCase(p.getLastKnownName(), args[2]))
|
|
|
|
results.add(p.getLastKnownName());
|
|
|
|
break;
|
|
|
|
default:
|
|
|
|
break;
|
|
|
|
}
|
|
|
|
|
|
|
|
Collections.sort(results);
|
|
|
|
|
|
|
|
return results;
|
2015-06-01 21:14:01 -05:00
|
|
|
}
|
2014-06-12 10:44:13 -05:00
|
|
|
}
|