2013-12-16 21:21:32 +01:00
package com.graywolf336.jail.command.commands ;
2013-12-19 18:13:07 +01:00
import java.util.concurrent.TimeUnit ;
import org.bukkit.ChatColor ;
2013-12-16 21:21:32 +01:00
import org.bukkit.command.CommandSender ;
import org.bukkit.entity.Player ;
2013-12-19 00:26:39 +01:00
import com.beust.jcommander.JCommander ;
import com.beust.jcommander.ParameterException ;
2013-12-16 21:21:32 +01:00
import com.graywolf336.jail.JailManager ;
2013-12-19 18:13:07 +01:00
import com.graywolf336.jail.beans.Prisoner ;
2013-12-16 21:21:32 +01:00
import com.graywolf336.jail.command.Command ;
import com.graywolf336.jail.command.CommandInfo ;
2013-12-19 00:26:39 +01:00
import com.graywolf336.jail.command.parameters.JailParameters ;
2013-12-16 21:21:32 +01:00
@CommandInfo (
maxArgs = - 1 ,
minimumArgs = 1 ,
needsPlayer = false ,
pattern = " jail|j " ,
permission = " jail.command.jail " ,
2013-12-19 00:26:39 +01:00
usage = " /jail [-p name] (-t time) (-j JailName) (-c CellName) (-m Muted) (-r A reason for jailing) "
2013-12-16 21:21:32 +01:00
)
public class JailCommand implements Command {
public boolean execute ( JailManager jm , CommandSender sender , String . . . args ) {
2013-12-19 18:13:07 +01:00
if ( jm . getJails ( ) . size ( ) = = 0 ) {
sender . sendMessage ( ChatColor . RED + " No jails found. " ) ;
return true ;
}
2013-12-19 00:26:39 +01:00
JailParameters params = new JailParameters ( ) ;
2013-12-16 21:32:06 +01:00
2013-12-19 00:26:39 +01:00
try {
new JCommander ( params , args ) ;
} catch ( ParameterException e ) {
2013-12-19 18:13:07 +01:00
sender . sendMessage ( ChatColor . RED + e . getMessage ( ) ) ;
2013-12-19 16:19:55 +01:00
return true ;
2013-12-16 21:32:06 +01:00
}
2013-12-19 18:32:04 +01:00
Long time = 10L ;
try {
Long . parseLong ( params . time ( ) ) ;
} catch ( NumberFormatException e ) {
sender . sendMessage ( ChatColor . RED + " Number format is incorrect. " ) ;
return true ;
}
2013-12-19 00:26:39 +01:00
Player p = jm . getPlugin ( ) . getServer ( ) . getPlayer ( params . player ( ) ) ;
2013-12-19 18:13:07 +01:00
Prisoner pris = new Prisoner ( params . player ( ) , params . muted ( ) , TimeUnit . MILLISECONDS . convert ( time , TimeUnit . MINUTES ) ) ;
2013-12-16 21:21:32 +01:00
//Player is not online
if ( p = = null ) {
2013-12-19 18:13:07 +01:00
sender . sendMessage ( pris . getName ( ) + " is offline and will be jailed for " + pris . getRemainingTime ( ) + " milliseconds in the jail " + params . jail ( ) + " in the cell " + params . cell ( ) + " and will be muted: " + pris . isMuted ( ) + " . " ) ;
2013-12-19 18:32:04 +01:00
sender . sendMessage ( pris . getName ( ) + " will be jailed for " + TimeUnit . MINUTES . convert ( pris . getRemainingTime ( ) , TimeUnit . MILLISECONDS ) + " minutes. " ) ;
2013-12-16 21:21:32 +01:00
} else {
//Player *is* online
2013-12-19 18:13:07 +01:00
sender . sendMessage ( pris . getName ( ) + " is online and will be jailed for " + pris . getRemainingTime ( ) + " milliseconds in the jail " + params . jail ( ) + " in the cell " + params . cell ( ) + " and will be muted: " + pris . isMuted ( ) + " . " ) ;
2013-12-19 18:32:04 +01:00
sender . sendMessage ( pris . getName ( ) + " will be jailed for " + TimeUnit . MINUTES . convert ( pris . getRemainingTime ( ) , TimeUnit . MILLISECONDS ) + " minutes. " ) ;
2013-12-16 21:21:32 +01:00
}
return true ;
}
}