Пример #1
0
        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.");
            }
        }
Пример #2
0
        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);
        }
Пример #3
0
        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);
                }
            }
        }