78 lines
3.1 KiB
Java
78 lines
3.1 KiB
Java
package com.massivecraft.factions.cmd.grace;
|
|
|
|
import com.massivecraft.factions.Conf;
|
|
import com.massivecraft.factions.FPlayer;
|
|
import com.massivecraft.factions.FPlayers;
|
|
import com.massivecraft.factions.FactionsPlugin;
|
|
import com.massivecraft.factions.cmd.Aliases;
|
|
import com.massivecraft.factions.cmd.CommandContext;
|
|
import com.massivecraft.factions.cmd.CommandRequirements;
|
|
import com.massivecraft.factions.cmd.FCommand;
|
|
import com.massivecraft.factions.struct.Permission;
|
|
import com.massivecraft.factions.util.timer.TimerManager;
|
|
import com.massivecraft.factions.zcore.util.TL;
|
|
|
|
import java.util.concurrent.TimeUnit;
|
|
|
|
public class CmdGrace extends FCommand {
|
|
|
|
/**
|
|
* @author Driftay
|
|
*/
|
|
|
|
public CmdGrace() {
|
|
super();
|
|
this.aliases.addAll(Aliases.grace);
|
|
|
|
this.optionalArgs.put("on/off", "toggle");
|
|
|
|
this.requirements = new CommandRequirements.Builder(Permission.GRACE)
|
|
.build();
|
|
}
|
|
|
|
@Override
|
|
public void perform(CommandContext context) {
|
|
if (!Conf.useGraceSystem) {
|
|
context.msg(TL.GENERIC_DISABLED, "factions grace");
|
|
return;
|
|
}
|
|
|
|
if(context.args.size() == 1) {
|
|
if (context.sender.hasPermission(String.valueOf(Permission.GRACETOGGLE))) {
|
|
if (context.argAsString(0).equalsIgnoreCase("on") || context.argAsString(0).equalsIgnoreCase("start")) {
|
|
FactionsPlugin.getInstance().getTimerManager().graceTimer.setPaused(false);
|
|
FactionsPlugin.getInstance().getTimerManager().graceTimer.setRemaining(TimeUnit.DAYS.toMillis(Conf.gracePeriodTimeDays), true);
|
|
if (Conf.broadcastGraceToggles) {
|
|
for (FPlayer follower : FPlayers.getInstance().getOnlinePlayers())
|
|
follower.msg(TL.COMMAND_GRACE_ENABLED_FORMAT, String.valueOf(TimerManager.getRemaining(FactionsPlugin.getInstance().getTimerManager().graceTimer.getRemaining(), true)));
|
|
}
|
|
return;
|
|
}
|
|
|
|
if (context.argAsString(0).equalsIgnoreCase("off") || context.argAsString(0).equalsIgnoreCase("stop")) {
|
|
FactionsPlugin.getInstance().getTimerManager().graceTimer.setRemaining(TimeUnit.SECONDS.toMillis(0L), true);
|
|
FactionsPlugin.getInstance().getTimerManager().graceTimer.setPaused(false);
|
|
if (Conf.broadcastGraceToggles) {
|
|
for (FPlayer follower : FPlayers.getInstance().getOnlinePlayers())
|
|
follower.msg(TL.COMMAND_GRACE_DISABLED_FORMAT);
|
|
}
|
|
return;
|
|
}
|
|
}
|
|
}
|
|
|
|
if(FactionsPlugin.getInstance().getTimerManager().graceTimer.getRemaining() <= 0L) {
|
|
context.fPlayer.msg(TL.COMMAND_GRACE_DISABLED_NO_FORMAT.toString());
|
|
} else {
|
|
context.fPlayer.msg(TL.COMMAND_GRACE_TIME_REMAINING, String.valueOf(TimerManager.getRemaining(FactionsPlugin.getInstance().getTimerManager().graceTimer.getRemaining(), true)));
|
|
}
|
|
|
|
}
|
|
|
|
@Override
|
|
public TL getUsageTranslation() {
|
|
return TL.COMMAND_GRACE_DESCRIPTION;
|
|
}
|
|
|
|
}
|