public static void Send(DotaChatHook.ChatMessage dotaChat) { if (DoNotSend(dotaChat)) { return; } ProcessChat(dotaChat); }
public static bool DoNotSend(DotaChatHook.ChatMessage dotaChat) { if (dotaChat.Type == "DOTA_Chat_All" && AllEnabled == true) { return(false); } if (dotaChat.Type == "DOTA_Chat_Team" && AlliesEnabled == true) { return(false); } if (EnabledUsers.ContainsKey(dotaChat.Username)) { return(false); } else { return(true); } }
private static bool ProcessChat(DotaChatHook.ChatMessage dotaChat) { var user = EnabledUsers[dotaChat.Username]; if (dotaChat.Message.StartsWith("@")) { if (!CheckTime(user) && user.Admin == false) { return(true); } string message = dotaChat.Message.Substring(1); var discordMessage = new DiscordMessage() { content = message, tts = false, username = dotaChat.Username }; user.LastUsed = DateTime.Now; Send(discordMessage); return(true); } if (dotaChat.Message.StartsWith("!")) { if (!CheckTime(user)) { return(true); } user.LastUsed = DateTime.Now; string message = dotaChat.Message.Substring(1); if (EnabledUsers[dotaChat.Username].MangoMode) { var discordMessage = new DiscordMessage() { content = "?smarttts " + message, tts = false, username = dotaChat.Username }; Send(discordMessage); } else { var discordMessage = new DiscordMessage() { content = message, tts = true, username = dotaChat.Username }; Send(discordMessage); } return(true); } if (dotaChat.Message.StartsWith("~")) { if (!CheckTime(user)) { return(true); } user.LastUsed = DateTime.Now; string message = dotaChat.Message.Substring(1); var discordMessage = new DiscordMessage() { content = "?dota " + message, tts = false, username = dotaChat.Username }; Send(discordMessage); return(true); } if (dotaChat.Message.StartsWith("#") && user.Admin == true) { try { var splitMessage = dotaChat.Message.Split(new char[] { ':' }, StringSplitOptions.RemoveEmptyEntries); switch (splitMessage[0]) { case "#mute": if (splitMessage.Length < 2) { return(false); } if (splitMessage[1] == "myteam") { AlliesEnabled = true; } else if (splitMessage[1] == "enemyteam") { AllEnabled = true; } else { EnabledUsers.Remove(splitMessage[1]); } break; case "#unmute": if (splitMessage.Length < 2) { return(false); } if (splitMessage[1] == "myteam") { AlliesEnabled = false; } else if (splitMessage[1] == "enemyteam") { AllEnabled = false; } else { EnabledUsers.Add(splitMessage[1], new User { Name = splitMessage[1] }); } break; case "#mango": if (splitMessage.Length < 2) { return(false); } EnabledUsers[splitMessage[1]].MangoMode = true; break; case "#unmango": if (splitMessage.Length < 2) { return(false); } EnabledUsers[splitMessage[1]].MangoMode = false; break; default: return(false); } return(true); } catch { } } return(false); }