summaryrefslogtreecommitdiffstats
path: root/Essentials/src/com/earth2me/essentials/commands/Commandtogglejail.java
diff options
context:
space:
mode:
Diffstat (limited to 'Essentials/src/com/earth2me/essentials/commands/Commandtogglejail.java')
-rw-r--r--Essentials/src/com/earth2me/essentials/commands/Commandtogglejail.java79
1 files changed, 46 insertions, 33 deletions
diff --git a/Essentials/src/com/earth2me/essentials/commands/Commandtogglejail.java b/Essentials/src/com/earth2me/essentials/commands/Commandtogglejail.java
index 8712531fc..c180ed708 100644
--- a/Essentials/src/com/earth2me/essentials/commands/Commandtogglejail.java
+++ b/Essentials/src/com/earth2me/essentials/commands/Commandtogglejail.java
@@ -4,6 +4,7 @@ import org.bukkit.Server;
import org.bukkit.command.CommandSender;
import com.earth2me.essentials.Essentials;
import com.earth2me.essentials.User;
+import com.earth2me.essentials.Util;
public class Commandtogglejail extends EssentialsCommand
@@ -14,55 +15,67 @@ public class Commandtogglejail extends EssentialsCommand
}
@Override
- public void run(Server server, Essentials parent, CommandSender sender, String commandLabel, String[] args) throws Exception
+ public void run(Server server, CommandSender sender, String commandLabel, String[] args) throws Exception
{
- if (args.length < 1 || args.length > 2)
+ if (args.length < 1)
{
- sender.sendMessage("Usage: /" + commandLabel + " [player] [jailname]");
- return;
- }
-
- User p;
- try
- {
- p = User.get(server.matchPlayer(args[0]).get(0));
- }
- catch (Exception ex)
- {
- sender.sendMessage("§cThat player does not exist.");
- return;
+ throw new NotEnoughArgumentsException();
}
- if (p.isOp() || p.isAuthorized("essentials.jail.exempt"))
+ User p = getPlayer(server, args, 0);
+
+ if (p.isAuthorized("essentials.jail.exempt"))
{
sender.sendMessage("§cYou may not jail that person");
return;
}
-
- if (args.length == 2 && !p.isJailed()) {
- User.charge(sender, this);
- sender.sendMessage("§7Player " + p.getName() + " " + (p.toggleJailed() ? "jailed." : "unjailed."));
+
+ if (args.length >= 2 && !p.isJailed())
+ {
+ charge(sender);
+ p.setJailed(true);
p.sendMessage("§7You have been jailed");
- p.currentJail = null;
+ p.setJail(null);
Essentials.getJail().sendToJail(p, args[1]);
- p.currentJail = (args[1]);
+ p.setJail(args[1]);
+ long timeDiff = 0;
+ if (args.length > 2)
+ {
+ String time = getFinalArg(args, 2);
+ timeDiff = Util.parseDateDiff(time, true);
+ p.setJailTimeout(timeDiff);
+ }
+ sender.sendMessage("§7Player " + p.getName() + " jailed" + (timeDiff > 0 ? " for" + Util.formatDateDiff(timeDiff) : "") + ".");
return;
}
-
- if (args.length == 2 && p.isJailed() && !args[1].equalsIgnoreCase(p.currentJail)) {
- sender.sendMessage("§cPerson is already in jail "+ p.currentJail);
+
+ if (args.length == 2 && p.isJailed() && !args[1].equalsIgnoreCase(p.getJail()))
+ {
+ sender.sendMessage("§cPerson is already in jail " + p.getJail());
return;
}
-
- if (args.length == 1 || (args.length == 2 && args[1].equalsIgnoreCase(p.currentJail))) {
- if (!p.isJailed()) {
- sender.sendMessage("Usage: /" + commandLabel + " [player] [jailname]");
- return;
+
+ if (args.length >= 2 && p.isJailed() && !args[1].equalsIgnoreCase(p.getJail()))
+ {
+ String time = getFinalArg(args, 2);
+ long timeDiff = Util.parseDateDiff(time, true);
+ p.setJailTimeout(timeDiff);
+ sender.sendMessage("Jail time extend to " + Util.formatDateDiff(timeDiff));
+ return;
+ }
+
+ if (args.length == 1 || (args.length == 2 && args[1].equalsIgnoreCase(p.getJail())))
+ {
+ if (!p.isJailed())
+ {
+ throw new NotEnoughArgumentsException();
}
- sender.sendMessage("§7Player " + p.getName() + " " + (p.toggleJailed() ? "jailed." : "unjailed."));
+ p.setJailed(false);
+ p.setJailTimeout(0);
p.sendMessage("§7You have been released");
- p.currentJail = "";
- p.teleportBack();
+ p.setJail(null);
+ p.getTeleport().back();
+ sender.sendMessage("§7Player " + p.getName() + " unjailed.");
}
}
}