2018-03-27 01:42:26 +02:00
|
|
|
package com.massivecraft.factions.cmd;
|
|
|
|
|
|
|
|
import com.massivecraft.factions.*;
|
|
|
|
import com.massivecraft.factions.struct.Permission;
|
|
|
|
import com.massivecraft.factions.util.WarmUpUtil;
|
|
|
|
import com.massivecraft.factions.zcore.util.TL;
|
|
|
|
|
|
|
|
public class CmdCheckpoint extends FCommand {
|
2019-12-02 19:55:38 +01:00
|
|
|
|
|
|
|
/**
|
|
|
|
* @author Illyria Team
|
|
|
|
*/
|
|
|
|
|
2019-09-15 11:19:06 +02:00
|
|
|
public CmdCheckpoint() {
|
|
|
|
super();
|
2020-01-02 02:59:31 +01:00
|
|
|
this.aliases.addAll(Aliases.checkpoint);
|
2018-03-27 01:42:26 +02:00
|
|
|
|
2019-09-15 11:19:06 +02:00
|
|
|
this.optionalArgs.put("set", "");
|
2018-03-27 01:42:26 +02:00
|
|
|
|
2019-09-15 11:19:06 +02:00
|
|
|
this.requirements = new CommandRequirements.Builder(Permission.CHECKPOINT)
|
|
|
|
.playerOnly()
|
|
|
|
.memberOnly()
|
|
|
|
.build();
|
|
|
|
}
|
2018-03-27 01:42:26 +02:00
|
|
|
|
2019-09-15 11:19:06 +02:00
|
|
|
@Override
|
|
|
|
public void perform(CommandContext context) {
|
|
|
|
if (!FactionsPlugin.getInstance().getConfig().getBoolean("checkpoints.Enabled")) {
|
|
|
|
context.msg(TL.COMMAND_CHECKPOINT_DISABLED);
|
|
|
|
return;
|
|
|
|
}
|
|
|
|
if (context.args.size() == 1) {
|
|
|
|
FLocation myLocation = new FLocation(context.player.getLocation());
|
|
|
|
Faction myLocFaction = Board.getInstance().getFactionAt(myLocation);
|
|
|
|
if (myLocFaction == Factions.getInstance().getWilderness() || myLocFaction == context.faction) {
|
|
|
|
context.faction.setCheckpoint(context.player.getLocation());
|
|
|
|
context.msg(TL.COMMAND_CHECKPOINT_SET);
|
|
|
|
return;
|
|
|
|
} else {
|
|
|
|
context.msg(TL.COMMAND_CHECKPOINT_INVALIDLOCATION);
|
|
|
|
return;
|
|
|
|
}
|
|
|
|
}
|
|
|
|
if (context.faction.getCheckpoint() == null) {
|
|
|
|
context.msg(TL.COMMAND_CHECKPOINT_NOT_SET);
|
|
|
|
return;
|
|
|
|
}
|
|
|
|
FLocation checkLocation = new FLocation(context.faction.getCheckpoint());
|
|
|
|
Faction checkfaction = Board.getInstance().getFactionAt(checkLocation);
|
2018-03-27 01:42:26 +02:00
|
|
|
|
2019-09-15 11:19:06 +02:00
|
|
|
if (checkfaction.getId().equals(Factions.getInstance().getWilderness().getId()) || checkfaction.getId().equals(context.faction.getId())) {
|
|
|
|
context.msg(TL.COMMAND_CHECKPOINT_GO);
|
2019-09-14 21:13:01 +02:00
|
|
|
|
2019-09-15 11:19:06 +02:00
|
|
|
context.doWarmUp(WarmUpUtil.Warmup.CHECKPOINT, TL.WARMUPS_NOTIFY_TELEPORT, "Checkpoint", () -> {
|
|
|
|
context.player.teleport(context.faction.getCheckpoint());
|
|
|
|
}, FactionsPlugin.getInstance().getConfig().getLong("warmups.f-checkpoint", 0));
|
|
|
|
} else {
|
|
|
|
context.msg(TL.COMMAND_CHECKPOINT_CLAIMED);
|
|
|
|
}
|
2018-03-27 15:17:55 +02:00
|
|
|
|
2018-03-27 01:42:26 +02:00
|
|
|
|
2019-09-15 11:19:06 +02:00
|
|
|
}
|
2018-03-27 01:42:26 +02:00
|
|
|
|
2019-09-15 11:19:06 +02:00
|
|
|
@Override
|
|
|
|
public TL getUsageTranslation() {
|
|
|
|
return TL.COMMAND_CHECKPOINT_DESCRIPTION;
|
|
|
|
}
|
2018-03-27 01:42:26 +02:00
|
|
|
}
|