private void SendNotifications()
        {
            if ((bool)Config["AutomaticNotificationsEnabled"])
            {
                timer.Repeat(Convert.ToSingle(Config["NotificationIntervalInMinutes"]) * 60, 0, () =>
                {
                    foreach (var player in BasePlayer.activePlayerList)
                    {
                        BuildingPrivlidge priv = player.GetBuildingPrivilege();
                        if (!priv)
                        {
                            return;
                        }
                        if (!priv.IsAuthed(player) || !player.IsAdmin)
                        {
                            return;
                        }
                        float minutesLeft = priv.GetProtectedMinutes();

                        if (minutesLeft < Convert.ToSingle(Config["MinutesLeftNeededToSendNotification"]) && minutesLeft > 0f)
                        {
                            PrintToChat(player, String.Format(lang.GetMessage("PrimaryDecayNotification", this, player.UserIDString), minutesLeft));
                        }
                        else if (minutesLeft == 0f)
                        {
                            PrintToChat(player, lang.GetMessage("FinalDecayNotification", this, player.UserIDString));
                        }
                    }
                });
            }
        }
        void TcstatusCommand(BasePlayer player, string command, string[] args)
        {
            if (!permission.UserHasPermission(player.UserIDString, "decaynotifications.use"))
            {
                PrintToChat(player, lang.GetMessage("NoPermission", this, player.UserIDString));
                return;
            }
            BuildingPrivlidge priviledge = player.GetBuildingPrivilege();

            if (!priviledge)
            {
                PrintToChat(player, lang.GetMessage("NoPriviledge", this, player.UserIDString));
                return;
            }
            if (!priviledge.IsAuthed(player) || !player.IsAdmin)
            {
                return;
            }

            float minutesLeft = priviledge.GetProtectedMinutes();

            if (minutesLeft > 0f)
            {
                PrintToChat(player, String.Format(lang.GetMessage("PrimaryDecayNotification", this, player.UserIDString), minutesLeft));
            }
            else if (minutesLeft == 0)
            {
                PrintToChat(player, lang.GetMessage("FinalDecayNotification", this, player.UserIDString));
            }
            return;
        }
Esempio n. 3
0
 private bool IsDecaying(BuildingPrivlidge privilege) =>
 privilege == null || privilege.GetProtectedMinutes(true) <= 0;