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; }
private bool IsDecaying(BuildingPrivlidge privilege) => privilege == null || privilege.GetProtectedMinutes(true) <= 0;