Add a new command /jail time
which has easy access for add/subtract
time from a prisoner's sentence. This command could be useful for commandblocks or something else, as it does not need a player context. This closes Bukkit Dev Ticket: http://dev.bukkit.org/bukkit-plugins/jail/tickets/432/
This commit is contained in:
parent
3e3f2d432e
commit
fe7cb9f5a5
@ -11,7 +11,7 @@ import org.bukkit.Location;
|
||||
*
|
||||
* @author graywolf336
|
||||
* @since 2.x.x
|
||||
* @version 3.0.0
|
||||
* @version 3.0.1
|
||||
*/
|
||||
public class Prisoner {
|
||||
private String name, jailer, reason, inventory, armor;
|
||||
@ -108,9 +108,22 @@ public class Prisoner {
|
||||
* Adds the given time to the remaining time the prisoner has left.
|
||||
*
|
||||
* @param time to add to the prisoner's remaining time.
|
||||
* @return the new remaining time the prisoner has
|
||||
*/
|
||||
public void addTime(long time) {
|
||||
public long addTime(long time) {
|
||||
this.time += time;
|
||||
return this.time;
|
||||
}
|
||||
|
||||
/**
|
||||
* Subtracts the given time from the remaining time the prisoner has left.
|
||||
*
|
||||
* @param time to subtract from the prisoner's remaining time.
|
||||
* @return the new remaining time the prisoner has
|
||||
*/
|
||||
public long subtractTime(long time) {
|
||||
this.time -= time;
|
||||
return this.time;
|
||||
}
|
||||
|
||||
/** Gets whether the player is offline or not. */
|
||||
|
@ -29,6 +29,7 @@ import com.graywolf336.jail.command.subcommands.JailStatusCommand;
|
||||
import com.graywolf336.jail.command.subcommands.JailStopCommand;
|
||||
import com.graywolf336.jail.command.subcommands.JailTeleInCommand;
|
||||
import com.graywolf336.jail.command.subcommands.JailTeleOutCommand;
|
||||
import com.graywolf336.jail.command.subcommands.JailTimeCommand;
|
||||
import com.graywolf336.jail.command.subcommands.JailTransferAllCommand;
|
||||
import com.graywolf336.jail.command.subcommands.JailTransferCommand;
|
||||
import com.graywolf336.jail.command.subcommands.JailVersionCommand;
|
||||
@ -187,6 +188,7 @@ public class JailHandler {
|
||||
load(JailStopCommand.class);
|
||||
load(JailTeleInCommand.class);
|
||||
load(JailTeleOutCommand.class);
|
||||
load(JailTimeCommand.class);
|
||||
load(JailTransferAllCommand.class);
|
||||
load(JailTransferCommand.class);
|
||||
load(JailVersionCommand.class);
|
||||
|
@ -0,0 +1,55 @@
|
||||
package com.graywolf336.jail.command.subcommands;
|
||||
|
||||
import org.bukkit.command.CommandSender;
|
||||
|
||||
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;
|
||||
import com.graywolf336.jail.enums.LangString;
|
||||
|
||||
@CommandInfo(
|
||||
maxArgs = 3,
|
||||
minimumArgs = 2,
|
||||
needsPlayer = false,
|
||||
pattern = "time|t",
|
||||
permission = "jail.command.jailtime",
|
||||
usage = "/jail time <add|remove|show> <player> <time>"
|
||||
)
|
||||
public class JailTimeCommand implements Command {
|
||||
public boolean execute(JailManager jm, CommandSender sender, String... args) throws Exception {
|
||||
if(jm.isPlayerJailed(args[2])) {
|
||||
Prisoner p = jm.getPrisoner(args[2]);
|
||||
|
||||
switch(args.length) {
|
||||
case 3:
|
||||
if(args[1].equalsIgnoreCase("show")) {
|
||||
sender.sendMessage(jm.getPlugin().getJailIO().getLanguageString(LangString.PRISONERSTIME,
|
||||
new String[] { p.getName(), 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]));
|
||||
}else {
|
||||
return false;
|
||||
}
|
||||
|
||||
sender.sendMessage(jm.getPlugin().getJailIO().getLanguageString(LangString.PRISONERSTIME,
|
||||
new String[] { p.getName(), String.valueOf(p.getRemainingTimeInMinutes()) }));
|
||||
break;
|
||||
default:
|
||||
return false;
|
||||
}
|
||||
}else {
|
||||
sender.sendMessage(jm.getPlugin().getJailIO().getLanguageString(LangString.NOTJAILED, args[2]));
|
||||
}
|
||||
|
||||
return true;
|
||||
}
|
||||
}
|
@ -60,6 +60,8 @@ public enum LangString {
|
||||
OFFLINEJAIL ("jailing"),
|
||||
/** The message sent to the jailer when they jail someone who is online. */
|
||||
ONLINEJAIL ("jailing"),
|
||||
/** The message sent when finding out how much time a prisoner has. */
|
||||
PRISONERSTIME ("jailing"),
|
||||
/** The message sent to the prisoner when they try to do something but it is protected. */
|
||||
PROTECTIONMESSAGE ("jailing"),
|
||||
/** The message sent to the prisoner when they try to do something and it is protected, but no penalty. */
|
||||
|
@ -58,6 +58,7 @@ language:
|
||||
nowunmuted: '&9%0% is now unmuted.'
|
||||
offlinejail: '&2%0% is offline and will be jailed when they next come online for %1% minutes.'
|
||||
onlinejail: '&2%0% was jailed for %1% minutes.'
|
||||
prisonerstime: '&2%0% has %1% minutes remaining.'
|
||||
protectionmessage: '&c%0% minutes have been added to your time for %1%.'
|
||||
protectionmessagenopenalty: '&cProtection enabled for %0%, do not do it again.'
|
||||
provideaplayer: '&cPlease provide a player when %0% &cthem.'
|
||||
|
Loading…
Reference in New Issue
Block a user