Fix tempranks being permanent

This commit is contained in:
UnknownShadow200 2018-07-07 19:19:19 +10:00
parent 4deb62d8b8
commit 0ef3ced067
2 changed files with 14 additions and 13 deletions

View File

@ -94,12 +94,12 @@ namespace MCGalaxy.Commands.Moderation {
}
static void Info(Player p, string target) {
string line = Server.tempRanks.FindData(target);
if (line == null) {
string data = Server.tempRanks.FindData(target);
if (data == null) {
Player.Message(p, "{0}&c has not been assigned a temp rank.",
PlayerInfo.GetColoredName(p, target));
} else {
PrintTempRankInfo(p, line);
PrintTempRankInfo(p, target, data);
}
}
@ -110,25 +110,26 @@ namespace MCGalaxy.Commands.Moderation {
} else {
Player.Message(p, "&ePlayers with a temporary rank assigned:");
foreach (string line in lines) {
PrintTempRankInfo(p, line);
string[] bits = line.SplitSpaces(2);
PrintTempRankInfo(p, bits[0], bits[1]);
}
}
}
static void PrintTempRankInfo(Player p, string line) {
string[] args = line.SplitSpaces();
static void PrintTempRankInfo(Player p, string name, string data) {
string[] args = data.SplitSpaces();
if (args.Length < 4) return;
string assigner = args[1];
DateTime assigned = long.Parse(args[2]).FromUnixTime();
DateTime expiry = long.Parse(args[3]).FromUnixTime();
string oldRank = Group.GetColoredName(args[4]);
string tempRank = Group.GetColoredName(args[5]);
string assigner = args[0];
DateTime assigned = long.Parse(args[1]).FromUnixTime();
DateTime expiry = long.Parse(args[2]).FromUnixTime();
string oldRank = Group.GetColoredName(args[3]);
string tempRank = Group.GetColoredName(args[4]);
TimeSpan assignDelta = DateTime.UtcNow - assigned;
TimeSpan expireDelta = expiry - DateTime.UtcNow;
Player.Message(p, "Temp rank information for {0}:",
PlayerInfo.GetColoredName(p, args[0]));
PlayerInfo.GetColoredName(p, name));
Player.Message(p, " From {0} %Sto {1}%S, by {2} &a{3} %Sago, expires in &a{4}",
oldRank, tempRank, assigner,
assignDelta.Shorten(), expireDelta.Shorten());

View File

@ -40,7 +40,7 @@ namespace MCGalaxy.Tasks {
internal static void TemprankCalcNextRun() { CalcNextRun(temprankTask, Server.tempRanks); }
static void TemprankCallback(string[] args) {
Command.Find("TempRank").Use(null, args[0] + " delete");
Command.Find("TempRank").Use(null, "delete " + args[0]);
// Handle case of old rank no longer existing
if (Server.tempRanks.Remove(args[0])) {
Server.tempRanks.Save();