Example #1
0
 public SlateBotControllerLifecycleStates OnMessageReadyToSend(Commands.Response message, Discord.IMessageChannel destination)
 {
     lifecycle.ErrorLogger.LogError(new Error(ErrorCode.UnexpectedEvent, ErrorSeverity.Information, $"{nameof(SlateBotControllerDisconnectedState)} {nameof(OnMessageReadyToSend)}: Storing message."));
     lifecycle.StorePendingMessage(message, destination);
     return(StateId);
 }
 public SlateBotControllerLifecycleStates OnMessageReadyToSend(Commands.Response message, Discord.IMessageChannel destination)
 {
     lifecycle.ErrorLogger.LogError(new Error(ErrorCode.NotSendingMessage, ErrorSeverity.Debug, $"{nameof(SlateBotControllerConnectedReceivingOnlyState)} {nameof(OnMessageReadyToSend)} dest {destination.Id} message {message}"));
     return(StateId);
 }
        public SlateBotControllerLifecycleStates OnMessageReadyToSend(Commands.Response message, Discord.IMessageChannel destination)
        {
            bool tts = message.ResponseType == ResponseType.Default_TTS;

            if (message.ResponseType == Commands.ResponseType.PleaseWaitMessage)
            {
                // We need to run this asynchronously.
                Task.Run(async() =>
                {
                    try
                    {
                        Discord.IUserMessage m;
                        if (message.Embed == null)
                        {
                            if (message.FilePath == null)
                            {
                                m = await destination.SendMessageAsync(message.Message);
                            }
                            else
                            {
                                m = await destination.SendFileAsync(message.FilePath, message.Message);
                            }
                        }
                        else
                        {
                            if (message.FilePath == null)
                            {
                                m = await destination.SendMessageAsync("", false, message.Embed.Build());
                            }
                            else
                            {
                                m = await destination.SendFileAsync(message.FilePath, "", false, message.Embed.Build());
                            }
                        }
                        lifecycle.PleaseWaitHandler.PushToStack(m);
                    }
                    catch (Exception ex)
                    {
                        lifecycle.ErrorLogger.LogException(ex, ErrorSeverity.Error);
                    }
                });
            }
            else
            {
                // This can be fired and forgotten.
                if (message.Embed == null)
                {
                    if (message.FilePath == null)
                    {
                        destination.SendMessageAsync(message.Message, tts);
                    }
                    else
                    {
                        destination.SendFileAsync(message.FilePath, message.Message, tts);
                    }
                }
                else
                {
                    if (message.FilePath == null)
                    {
                        destination.SendMessageAsync("", tts, message.Embed.Build());
                    }
                    else
                    {
                        destination.SendFileAsync(message.FilePath, "", tts, message.Embed.Build());
                    }
                }
            }

            return(StateId);
        }