private void CmdIsAFK(BasePlayer player, string command, string[] args) { if (CheckPermission(player, PERMISSIONUSE)) { if (args.Length == 1) { string status = default(string); if (BasePlayer.Find(args[0]) != null) { if (AFKPlayers.Contains(BasePlayer.Find(args[0]))) { status = lang.GetMessage(misafk, this, player.UserIDString); } else { status = lang.GetMessage(misnotafk, this, player.UserIDString); } } else { status = lang.GetMessage(moffline, this, player.UserIDString); } Messenger(player, true, mplayerafk, args[0], status); } else { Messenger(player, true, merrornoargs); } } else { Messenger(player, true, mnoperm); } }
private bool IsPlayerAFK(ulong id) { #if (DEBUG) Puts($"IsPlayerAFK API method called with id:{id.ToString()}, {AFKPlayers.Any(p => p.userID == id)} returned..."); #endif return(AFKPlayers.Any(p => p.userID == id)); }
private void InitializeTimer() { if (AFKTimer != null && !AFKTimer.Destroyed) { AFKTimer.Destroy(); } AFKTimer = timer.Every(Settings.GeneralSettings.StatusRefreshInterval, () => { foreach (var trackedPlayer in TrackedPlayers.Values) { trackedPlayer.CheckPosition(Settings.CompareSettings.CompareRotation); if (trackedPlayer.TimeAFK >= Settings.GeneralSettings.SecondsToAFKStatus && !AFKPlayers.Contains(trackedPlayer.Player)) { AFKPlayers.Add(trackedPlayer.Player); } else if (trackedPlayer.TimeAFK < Settings.GeneralSettings.SecondsToAFKStatus && AFKPlayers.Contains(trackedPlayer.Player)) { AFKPlayers.Remove(trackedPlayer.Player); } if (Settings.NotificationSettings.NotifyPlayer && Settings.GeneralSettings.SecondsToAFKStatus - trackedPlayer.TimeAFK < Settings.NotificationSettings.NotifyPlayerTime) { Messenger(trackedPlayer.Player, true, mnotify); if (Settings.NotificationSettings.NotifyPlayerSound) { var beep = new Effect(); beep.Init(Effect.Type.Generic, trackedPlayer.Player.transform.position, trackedPlayer.Player.transform.forward); beep.pooledString = "assets/prefabs/tools/pager/effects/beep.prefab"; EffectNetwork.Send(beep, trackedPlayer.Player.Connection); } } } }); #if (DEBUG) Puts($"New timer initialized with {Settings.GeneralSettings.StatusRefreshInterval.ToString()} interval. " + $"Notifications are {(Settings.NotificationSettings.NotifyPlayer ? "ON" : "OFF")}. " + $"Sounds are {(Settings.NotificationSettings.NotifyPlayerSound ? "ON" : "OFF")}..."); #endif }