示例#1
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);
        }
示例#2
0
        static void LoadPlayerLists(SchedulerTask task)
        {
            agreed = new PlayerList("ranks/agreed.txt");
            try {
                UpgradeTasks.UpgradeOldAgreed();
                agreed = PlayerList.Load("ranks/agreed.txt");
            } catch (Exception ex) {
                Logger.LogError(ex);
            }

            bannedIP       = PlayerList.Load("ranks/banned-ip.txt");
            ircControllers = PlayerList.Load("ranks/IRC_Controllers.txt");
            hidden         = PlayerList.Load("ranks/hidden.txt");
            vip            = PlayerList.Load("text/vip.txt");
            noEmotes       = PlayerList.Load("text/emotelist.txt");
            lockdown       = PlayerList.Load("text/lockdown.txt");
            jailed         = PlayerExtList.Load("ranks/jailed.txt");
            models         = PlayerExtList.Load("extra/models.txt");
            skins          = PlayerExtList.Load("extra/skins.txt");
            reach          = PlayerExtList.Load("extra/reach.txt");
            invalidIds     = PlayerList.Load("extra/invalidids.txt");
            rotations      = PlayerExtList.Load("extra/rotations.txt");
            modelScales    = PlayerExtList.Load("extra/modelscales.txt");

            muted     = PlayerExtList.Load("ranks/muted.txt");
            frozen    = PlayerExtList.Load("ranks/frozen.txt");
            tempRanks = PlayerExtList.Load(Paths.TempRanksFile);
            tempBans  = PlayerExtList.Load(Paths.TempBansFile);
            ModerationTasks.QueueTasks();

            if (ServerConfig.WhitelistedOnly)
            {
                whiteList = PlayerList.Load("ranks/whitelist.txt");
            }
        }
示例#3
0
        static void AddTempRank(ModAction e, Group newRank)
        {
            string data = FormatModTaskData(e) + " " + e.TargetGroup.Name + " " + newRank.Name;

            Server.tempRanks.Update(e.Target, data);
            ModerationTasks.TemprankCalcNextRun();
            Server.tempRanks.Save();
        }
示例#4
0
        static void InitPlayerLists(SchedulerTask task)
        {
            try {
                UpgradeTasks.UpgradeOldAgreed();
            } catch (Exception ex) {
                Logger.LogError("Error upgrading agreed list", ex);
            }

            LoadPlayerLists();
            ModerationTasks.QueueTasks();
        }
示例#5
0
        static void DoUnfreeze(ModAction e)
        {
            Player who = PlayerInfo.FindExact(e.Target);

            if (who != null)
            {
                who.frozen = false;
            }
            LogAction(e, who, "&adefrosted");

            Server.frozen.Remove(e.Target);
            ModerationTasks.FreezeCalcNextRun();
            Server.frozen.Save();
        }
示例#6
0
        static void DoFreeze(ModAction e)
        {
            Player who = PlayerInfo.FindExact(e.Target);

            if (who != null)
            {
                who.frozen = true;
            }
            LogAction(e, who, "&bfrozen");

            Server.frozen.Update(e.Target, FormatModTaskData(e));
            ModerationTasks.FreezeCalcNextRun();
            Server.frozen.Save();
        }
示例#7
0
        static void DoUnmute(ModAction e)
        {
            Player who = PlayerInfo.FindExact(e.Target);

            if (who != null)
            {
                who.muted = false;
            }
            LogAction(e, who, "&aun-muted");

            Server.muted.Remove(e.Target);
            ModerationTasks.MuteCalcNextRun();
            Server.muted.Save();
        }
示例#8
0
        static void DoMute(ModAction e)
        {
            Player who = PlayerInfo.FindExact(e.Target);

            if (who != null)
            {
                who.muted = true;
            }
            LogAction(e, who, "&8muted");

            Server.muted.Update(e.Target, FormatModTaskData(e));
            ModerationTasks.MuteCalcNextRun();
            Server.muted.Save();
        }