Exemplo n.º 1
0
    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);
            }
        }
Exemplo n.º 3
0
 public virtual void SendCommandToServer(IBot bot, IServer server, string message, ChatColorPresets chatColor)
 {
     bot.SendCommand(server, message, chatColor);
 }
Exemplo n.º 4
0
 public virtual void SendCommand(IServer server, string message, ChatColorPresets chatColor)
 {
     SendCommand(server, message, TwitchNETUtils.GetHexCode(chatColor));
 }
Exemplo n.º 5
0
        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;
                            }
                        });
                    }
                }
            }
        }