public void ShouldReturnCorrectColor(Int32 index, ChatColorPresets expectedColor) { MockedRandom.Setup(x => x .Next(Enum.GetValues(typeof(ChatColorPresets)).Length)) .Returns(index); String actualColor = Sut.GetNextColor(); Assert.Equal(expectedColor.ToString(), actualColor); }
public static string GetHexCode(ChatColorPresets chatColor) { switch (chatColor) { case ChatColorPresets.Blue: return("0000FF"); case ChatColorPresets.Coral: return("FF7F50"); case ChatColorPresets.DodgerBlue: return("1E90FF"); case ChatColorPresets.SpringGreen: return("00FF7F"); case ChatColorPresets.YellowGreen: return("9ACD32"); case ChatColorPresets.Green: return("008000"); case ChatColorPresets.OrangeRed: return("FF4500"); case ChatColorPresets.Red: return("FF0000"); case ChatColorPresets.GoldenRod: return("DAA520"); case ChatColorPresets.HotPink: return("FF69B4"); case ChatColorPresets.CadetBlue: return("5F9EA0"); case ChatColorPresets.SeaGreen: return("2E8B57"); case ChatColorPresets.Chocolate: return("D2691E"); case ChatColorPresets.BlueViolet: return("8A2BE2"); case ChatColorPresets.Firebrick: return("B22222"); default: return(string.Empty); } }
public virtual void SendCommandToServer(IBot bot, IServer server, string message, ChatColorPresets chatColor) { bot.SendCommand(server, message, chatColor); }
public virtual void SendCommand(IServer server, string message, ChatColorPresets chatColor) { SendCommand(server, message, TwitchNETUtils.GetHexCode(chatColor)); }
public virtual void OnTimerTick() { if (_isWaitingForColorChange) { return; } if (_messagesQueued.TryPeek(out var message)) { if (TwitchNETUtils.GetChatColor(message.ChatColor) != _botChatColor) { Task.Run(async() => { try { // Change the chat color _botChatColor = TwitchNETUtils.GetChatColor(message.ChatColor); ChangeChatColorExt.ChangeChatColor(_client, _client.JoinedChannels.FirstOrDefault(s => s.Channel.Trim().ToLower() == _serverDTO.Username.Trim().ToLower()), _botChatColor); await FireServerChatColorChangeEventAsync(this, new ServerChatColorChangeEventArgs { Bot = _bot, HexColorCode = TwitchNETUtils.GetHexCode(_botChatColor), Server = this, ServerChatColorChangeEventType = ServerChatColorChangeEventType.Initiated }); } catch (Exception ex) { await FireErrorEventAsync(this, new ErrorBotServerColorChangeEventArgs { Bot = _bot, Exception = ex, HexCode = TwitchNETUtils.GetHexCode(_botChatColor), Server = this }); } }); } else { if (_messagesQueued.TryDequeue(out message)) { Task.Run(async() => { switch (message) { case IMessageServerChat e: try { _client.SendMessage(_serverDTO.Username.Trim().ToLower(), message.MessageText); await FireMessageServerChatEventAsync(this, new MessageServerChatEventArgs { Message = e }); } catch (Exception ex) { await FireErrorEventAsync(this, new ErrorMessageServerChatEventArgs { Bot = _bot, ChatColor = TwitchNETUtils.GetHexCode(_botChatColor), ErrorMessageEventType = ErrorMessageEventType.Sending, ErrorMessageSendType = ErrorMessageSendType.QueuedSent, Exception = ex, Message = message.MessageText }); } break; case IMessageServerCommand e: try { _client.SendMessage(_serverDTO.Username.Trim().ToLower(), $"/me {message.MessageText}"); await FireMessageServerCommandEventAsync(this, new MessageServerCommandEventArgs { Message = e }); } catch (Exception ex) { await FireErrorEventAsync(this, new ErrorMessageServerCommandEventArgs { Bot = _bot, ChatColor = TwitchNETUtils.GetHexCode(_botChatColor), ErrorMessageEventType = ErrorMessageEventType.Sending, ErrorMessageSendType = ErrorMessageSendType.QueuedSent, Exception = ex, Message = message.MessageText }); } break; default: break; } }); } } } }