diff --git a/src/main/java/com/massivecraft/factions/cmd/CmdStatus.java b/src/main/java/com/massivecraft/factions/cmd/CmdStatus.java new file mode 100644 index 00000000..570fb68c --- /dev/null +++ b/src/main/java/com/massivecraft/factions/cmd/CmdStatus.java @@ -0,0 +1,37 @@ +package com.massivecraft.factions.cmd; + +import com.massivecraft.factions.FPlayer; +import com.massivecraft.factions.struct.Permission; +import org.apache.commons.lang.time.DurationFormatUtils; +import org.bukkit.ChatColor; + +import java.util.ArrayList; + +public class CmdStatus extends FCommand { + + public CmdStatus() { + super(); + this.aliases.add("status"); + this.aliases.add("s"); + + this.permission = Permission.STATUS.node; + + senderMustBePlayer = true; + senderMustBeMember = true; + senderMustBeModerator = false; + senderMustBeAdmin = false; + } + + @Override + public void perform() { + ArrayList ret = new ArrayList(); + for (FPlayer fp : myFaction.getFPlayers()) { + String humanized = DurationFormatUtils.formatDurationWords(System.currentTimeMillis() - fp.getLastLoginTime(), true, true) + " ago"; + String last = fp.isOnline() ? ChatColor.GREEN + "Online" : (System.currentTimeMillis() - fp.getLastLoginTime() < 432000000 ? ChatColor.YELLOW + humanized : ChatColor.RED + humanized); + String power = ChatColor.YELLOW + String.valueOf(fp.getPowerRounded()) + " / " + String.valueOf(fp.getPowerMaxRounded()) + ChatColor.RESET; + ret.add(String.format("%s Power: %s Last Seen: %s", ChatColor.GOLD + fp.getRole().getPrefix() + fp.getName() + ChatColor.RESET, power, last).trim()); + } + fme.sendMessage(ret); + } + +} diff --git a/src/main/java/com/massivecraft/factions/cmd/FCmdRoot.java b/src/main/java/com/massivecraft/factions/cmd/FCmdRoot.java index 54e7aaae..15cb4e9a 100644 --- a/src/main/java/com/massivecraft/factions/cmd/FCmdRoot.java +++ b/src/main/java/com/massivecraft/factions/cmd/FCmdRoot.java @@ -45,6 +45,7 @@ public class FCmdRoot extends FCommand { public CmdSaveAll cmdSaveAll = new CmdSaveAll(); public CmdSethome cmdSethome = new CmdSethome(); public CmdShow cmdShow = new CmdShow(); + public CmdStatus cmdStatus = new CmdStatus(); public CmdTag cmdTag = new CmdTag(); public CmdTitle cmdTitle = new CmdTitle(); public CmdUnclaim cmdUnclaim = new CmdUnclaim(); @@ -114,6 +115,7 @@ public class FCmdRoot extends FCommand { this.addSubCommand(this.cmdSaveAll); this.addSubCommand(this.cmdSethome); this.addSubCommand(this.cmdShow); + this.addSubCommand(this.cmdStatus); this.addSubCommand(this.cmdTag); this.addSubCommand(this.cmdTitle); this.addSubCommand(this.cmdUnclaim); diff --git a/src/main/java/com/massivecraft/factions/struct/Permission.java b/src/main/java/com/massivecraft/factions/struct/Permission.java index c252c88c..90d9f0b5 100644 --- a/src/main/java/com/massivecraft/factions/struct/Permission.java +++ b/src/main/java/com/massivecraft/factions/struct/Permission.java @@ -60,6 +60,7 @@ public enum Permission { SETHOME("sethome"), SETHOME_ANY("sethome.any"), SHOW("show"), + STATUS("status"), TAG("tag"), TITLE("title"), UNCLAIM("unclaim"),