private void FillDictionary(Dictionary <string, MuteSettings> muteItems, Dictionary <string, MuteItem> dict) { foreach (var pair in muteItems) { dict.Add(pair.Key, MuteItem.Create(pair.Key, pair.Value.TimeToMute, pair.Value.Type)); } }
void cmdChatMutes(BasePlayer player, string command, string[] args) { if (args.Length > 1) { player.ChatMessage(m_configData.Messages["invalid_arguments"]); return; } List <ulong> contextPlayers = new List <ulong>(); foreach (ulong userID in m_configData.MutedPlayers.Keys) { string playerName = PlayerName(userID); if (args.Length == 1 && !playerName.Contains(args[0], System.Globalization.CompareOptions.IgnoreCase)) { continue; } MuteItem muteItem = m_configData.MutedPlayers[userID]; contextPlayers.Add(userID); string message = m_configData.Messages["player_was_muted"]; message = message.Replace("%player_name", playerName); message = message.Replace("%player_steamid", userID.ToString()); message = message.Replace("%reason", muteItem.reason); message = message.Replace("%until_datetime", muteItem.untilDatetime().ToString("yyyy-MM-dd HH:mm:ss")); message = message.Replace("%level", m_configData.Messages[muteItem.level.ToString()]); player.ChatMessage(contextPlayers.Count.ToString() + ") " + muteItem.timestamp + " " + message); } SetContextPlayers(player.userID, contextPlayers); }
void cmdChatUnnute(BasePlayer player, string command, string[] args) { if (player.net.connection.authLevel == 0 && !permission.UserHasPermission(player.userID.ToString(), "SSNNotifier.unmute")) { player.ChatMessage(m_configData.Messages["have_not_permission"]); return; } if (args.Length != 1) { player.ChatMessage(m_configData.Messages["invalid_arguments"]); return; } ulong userID = UserIdByAlias(player.userID, args[0]); if (userID == 0) { player.ChatMessage(m_configData.Messages["player_not_found"]); return; } string playerName = PlayerName(userID); if (m_configData.MutedPlayers.ContainsKey(userID)) { MuteItem muteItem = m_configData.MutedPlayers[userID]; if (muteItem.level == TimeRange.Hour) { m_configData.MutedPlayers.Remove(userID); } else { muteItem.level = (TimeRange)((int)muteItem.level - 1); } SaveConfig(); string message = m_configData.Messages["player_was_unmuted"]; message = message.Replace("%player_name", playerName); message = message.Replace("%player_steamid", userID.ToString()); PrintToChat(message); } else { string message = m_configData.Messages["player_was_not_muted"]; message = message.Replace("%player_name", playerName); message = message.Replace("%player_steamid", userID.ToString()); player.ChatMessage(message); } }
private async Task ProcessMessageFromQueue(SlackNotificationRequestMsg msg, string queueName) { try { MuteItem muteItem = await _notificationFilter.GetMutedItem(msg); if (muteItem != null && string.IsNullOrEmpty(muteItem.Type)) { muteItem.MutedMessagesCount++; if (muteItem.MutedMessagesCount > 1) { return; } await _srvSlackNotifications.SendNotificationAsync( msg.Type, $"*[This message is muted for {muteItem.TimeToMute.TotalMinutes} minute(s)! (using: '{muteItem.Value}')]*: {msg.Message}", $"*[:tired_face: muted :tired_face: ]* {msg.Sender}"); return; } string message = msg.Message; if (muteItem?.Type != null && muteItem.Type != msg.Type) { message = $"[redirected from {msg.Type}] {message}"; } await _srvSlackNotifications.SendNotificationAsync(muteItem?.Type ?? msg.Type, message, msg.Sender); } catch (Exception ex) { _log.WriteError($"ProcessMessageFromQueue: {queueName}", msg, ex); throw; } }
object OnPlayerChat(ConsoleSystem.Arg arg) { BasePlayer player = arg.Player(); string message = ""; foreach (string line in arg.Args) { message += line + " "; } message = message.Trim(); if (m_configData.MutedPlayers.ContainsKey(player.userID)) { MuteItem muteItem = m_configData.MutedPlayers[player.userID]; if (muteItem.untilDatetime() > DateTime.Now) { message = m_configData.Messages["player_was_muted"]; message = message.Replace("%player_name", player.displayName); message = message.Replace("%player_steamid", player.userID.ToString()); message = message.Replace("%reason", muteItem.reason); message = message.Replace("%until_datetime", muteItem.untilDatetime().ToString("yyyy-MM-dd HH:mm:ss")); message = message.Replace("%level", m_configData.Messages[muteItem.level.ToString()]); player.ChatMessage(message); return("handled"); } } if (message != "" && message[0] != '/') { NotifyPlayerChatMessage(player.userID, player.displayName, message); } return(null); }
void cmdChatMute(BasePlayer player, string command, string[] args) { string message; if (player.net.connection.authLevel == 0 && !permission.UserHasPermission(player.userID.ToString(), "SSNMutes.mute")) { return; } if (args.Length < 2) { player.ChatMessage(m_configData.Messages["invalid_arguments"]); return; } ulong userID = UserIdByAlias(player.userID, args[0]); if (userID == 0) { player.ChatMessage(m_configData.Messages["player_not_found"]); return; } string playerName = PlayerName(userID); string reason = ""; for (int i = 1; i < args.Length; ++i) { reason += args[i]; if (i < args.Length - 1) { reason += " "; } } MuteItem muteItem; if (m_configData.MutedPlayers.ContainsKey(userID)) { muteItem = m_configData.MutedPlayers[userID]; if (muteItem.untilDatetime() > DateTime.Now) { message = m_configData.Messages["player_is_muted_already"]; message = message.Replace("%player_name", playerName); message = message.Replace("%player_steamid", userID.ToString()); message = message.Replace("%reason", muteItem.reason); message = message.Replace("%until_datetime", muteItem.untilDatetime().ToString("yyyy-MM-dd HH:mm:ss")); message = message.Replace("%level", m_configData.Messages[muteItem.level.ToString()]); player.ChatMessage(message); return; } int intLevel = (int)muteItem.level + 1; if (intLevel > (int)TimeRange.Year) { intLevel = (int)TimeRange.Year; } muteItem.level = (TimeRange)intLevel; } else { muteItem = new MuteItem(); } muteItem.reason = reason; muteItem.timestamp = DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss"); m_configData.MutedPlayers[userID] = muteItem; SaveConfig(); message = m_configData.Messages["player_was_muted"]; message = message.Replace("%player_name", playerName); message = message.Replace("%player_steamid", userID.ToString()); message = message.Replace("%reason", muteItem.reason); message = message.Replace("%until_datetime", muteItem.untilDatetime().ToString("yyyy-MM-dd HH:mm:ss")); message = message.Replace("%level", m_configData.Messages[muteItem.level.ToString()]); ConsoleSystem.Broadcast("chat.add", 0, message, 1.0); NotifyPlayerMute(userID, playerName, reason); }
void cmdChatMute(BasePlayer player, string command, string[] args) { string message; if (player != null) { if (player.net.connection.authLevel == 0 && !permission.UserHasPermission(player.userID.ToString(), "SSNNotifier.mute")) { player.ChatMessage(m_configData.Messages["have_not_permission"]); return; } } if (args.Length < 2) { if (player != null) { player.ChatMessage(m_configData.Messages["invalid_arguments"]); } return; } ulong userID = UserIdByAlias(player.userID, args[0]); if (userID == 0) { if (player != null) { player.ChatMessage(m_configData.Messages["player_not_found"]); } return; } int level = -1; if (!int.TryParse(args[1], out level)) { level = -1; } string reason = ""; int reasonOffset = 1 + (level > -1 ? 1 : 0); for (int i = reasonOffset; i < args.Length; ++i) { reason += args[i]; if (i < args.Length - 1) { reason += " "; } } MuteItem muteItem; if (m_configData.MutedPlayers.ContainsKey(userID)) { muteItem = m_configData.MutedPlayers[userID]; if (muteItem.untilDatetime() > DateTime.Now) { message = m_configData.Messages["player_is_muted_already"]; message = message.Replace("%player_name", CustomOrRealPlayerName(userID)); message = message.Replace("%player_steamid", userID.ToString()); message = message.Replace("%reason", muteItem.reason); message = message.Replace("%until_datetime", muteItem.untilDatetime().ToString("yyyy-MM-dd HH:mm:ss")); message = message.Replace("%level", m_configData.Messages[muteItem.level.ToString()]); if (player != null) { player.ChatMessage(message); } return; } if (level == -1) { level = (int)muteItem.level + 1; } } else { muteItem = new MuteItem(); } if (level > (int)TimeRange.Year) { level = (int)TimeRange.Year; } muteItem.level = (TimeRange)level; muteItem.reason = reason; muteItem.timestamp = DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss"); m_configData.MutedPlayers[userID] = muteItem; SaveConfig(); message = m_configData.Messages["player_was_muted"]; message = message.Replace("%player_name", CustomOrRealPlayerName(userID)); message = message.Replace("%player_steamid", userID.ToString()); message = message.Replace("%reason", muteItem.reason); message = message.Replace("%until_datetime", muteItem.untilDatetime().ToString("yyyy-MM-dd HH:mm:ss")); message = message.Replace("%level", m_configData.Messages[muteItem.level.ToString()]); PrintToChat(message); NotifyPlayerMute(userID, reason); }
public void MuteRegexMessage(MuteItem item) { _mutedMessagesRegex[item.Value] = item; }
public void MuteMessagePrefix(MuteItem item) { _mutedPrefixes[item.Value] = item; }
public void MuteSender(MuteItem item) { _mutedSenders[item.Value] = item; }
public MuteItem ToDomain() => MuteItem.Create(Value, TimeToMute, Type);