static void DoUnban(ModAction e) { Player who = PlayerInfo.FindExact(e.Target); LogAction(e, who, "&8unbanned"); if (Server.tempBans.Remove(e.Target)) { Server.tempBans.Save(); } if (!Group.BannedRank.Players.Contains(e.Target)) { return; } Ban.DeleteUnban(e.Target); Ban.UnbanPlayer(e.Actor, e.Target, e.Reason); ModActionCmd.ChangeRank(e.Target, Group.BannedRank, Group.DefaultRank, who, false); string ip = PlayerDB.FindIP(e.Target); if (ip != null && Server.bannedIP.Contains(ip)) { e.Actor.Message("NOTE: Their IP is still banned."); } }
static void DoRank(ModAction e) { Player who = PlayerInfo.FindExact(e.Target); Group newRank = (Group)e.Metadata; string action = newRank.Permission >= e.TargetGroup.Permission ? "promoted to " : "demoted to "; LogAction(e, who, action + newRank.ColoredName); if (who != null && e.Announce) { who.Message("You are now ranked " + newRank.ColoredName + "&S, type /Help for your new set of commands."); } if (Server.tempRanks.Remove(e.Target)) { ModerationTasks.TemprankCalcNextRun(); Server.tempRanks.Save(); } WriteRankInfo(e, newRank); if (e.Duration != TimeSpan.Zero) { AddTempRank(e, newRank); } ModActionCmd.ChangeRank(e.Target, e.TargetGroup, newRank, who); }
static void DoBan(ModAction e) { Player who = PlayerInfo.FindExact(e.Target); LogAction(e, who, "&8banned"); if (e.Duration.Ticks != 0) { string banner = e.Actor.truename; DateTime end = DateTime.UtcNow.Add(e.Duration); Server.tempBans.Update(e.Target, Ban.PackTempBanData(e.Reason, banner, end)); Server.tempBans.Save(); if (who != null) { who.Kick("Banned for " + e.Duration.Shorten(true) + "." + e.ReasonSuffixed); } } else { Ban.DeleteBan(e.Target); Ban.BanPlayer(e.Actor, e.Target, e.Reason, !e.Announce, e.TargetGroup.Name); ModActionCmd.ChangeRank(e.Target, e.targetGroup, Group.BannedRank, who); if (who != null) { string msg = e.Reason.Length == 0 ? Server.Config.DefaultBanMessage : e.Reason; who.Kick("Banned by " + e.Actor.ColoredName + ": &S" + msg, "Banned by " + e.Actor.ColoredName + ": &f" + msg); } } }