private async Task SendMissingParametersErrorResponse(Command command, string commandName, ISocketMessageChannel channel) { EmbedResponse.Builder builder = new EmbedResponse.Builder(EmbedResponseTemplate.Error); builder.AddMessage("Not enough parameters.", "You are missing some parameters."); ParameterInfo[] parameters = command.method.GetParameters(); string usage = $"{TamaChan.Instance.botSettings.commandPrefix}{commandName}"; for (int i = 0; i < parameters.Length; i++) { ParameterInfo pi = parameters[i]; if (!pi.ParameterType.IsAssignableFrom(typeof(MessageContext))) { ParameterInfo nextParameter = (i < parameters.Length - 1) ? parameters[i + 1] : null; if (pi.IsOptionalParameter(nextParameter)) { usage += $" ({pi.Name})"; } else { usage += $" {pi.Name}"; } } } builder.AddMessage("Usage:", usage); builder.SetFooter($"Example: {command.Example}"); await responseHandler.Respond(builder.Build(), channel); }
private EmbedResponse GetSuccessResponse(APIResponse response) { if (response.query.pages[0].missing) { return(GetFailureResponse(response.query.pages[0].title)); } else { EmbedResponse.Builder builder = new EmbedResponse.Builder(EmbedResponseTemplate.Success); int resultCount = response.query.pages.Length; resultCount = resultCount > MAX_RESULTS ? MAX_RESULTS : resultCount; builder.SetTitle($"Found {resultCount} article(s)"); for (int i = 0; i < resultCount; i++) { string articleName = response.query.pages[i].title; APIResponse.Query.Redirect redirect = GetRedirectInfo(response.query, articleName); string messageTitle = articleName; if (redirect != null) { messageTitle += $" (from \"{redirect.from}\")"; } builder.AddMessage(messageTitle, response.query.pages[0].fullurl); } return(builder.Build()); } }
private EmbedResponse SetPlayingStatus(URL?streamingUrl, string playingStatus) { settings.activity.playingStatus = playingStatus; settings.activity.streamingUrl = streamingUrl.HasValue ? streamingUrl.Value.uri.ToString() : null; Console.WriteLine(settings.activity.streamingUrl); settings.MarkDirty(); Task.Run(() => UpdatePlayingStatus()); EmbedResponse.Builder builder = new EmbedResponse.Builder(EmbedResponseTemplate.Success); builder.AddMessage("Playing status updated succesfully!", playingStatus); return(builder.Build()); }
public EmbedResponse EnableCommand(MessageContext context, bool enable) { if (context.serverId == null) { return(CreateNotAServerMessage()); } SetEnabled((ulong)context.serverId, enable); EmbedResponse.Builder builder = new EmbedResponse.Builder(EmbedResponseTemplate.Info); builder.SetTitle("WordFilter"); builder.AddMessage("WordFilter has been set to:", enable.ToString()); return(builder.Build()); }
private EmbedResponse GetSuccessResponse(string query, Search results) { EmbedResponse.Builder builder = new EmbedResponse.Builder(EmbedResponseTemplate.Success); int resultCount = results.Items.Count > MAX_RESULTS ? MAX_RESULTS : results.Items.Count; builder.SetTitle($"Query \"{query}\" yielded {resultCount} results"); for (int i = 0; i < resultCount; i++) { builder.AddMessage(results.Items[i].Title, results.Items[i].Link); } return(builder.Build()); }
public EmbedResponse AboutCommand() { string[] aboutText = settings.aboutText; EmbedResponse.Builder builder; if (aboutText == null || aboutText.Length == 0) { builder = new EmbedResponse.Builder(EmbedResponseTemplate.Warning); builder.AddMessage("About TamaChanBot", "No about text was set."); return(builder.Build()); } else { string joinedText = string.Join("\r\n", aboutText); builder = new EmbedResponse.Builder(EmbedResponseTemplate.Info); builder.AddMessage($"About TamaChanBot", joinedText); return(builder.Build()); } }
public async Task OnMessageReceived(MessageReceivedArgs messageReceivedArgs) { if (messageReceivedArgs.userId.Equals(BotID)) { string[] splitContent = messageReceivedArgs.content.Split(' '); if (splitContent.Length == 2 && splitContent[0] == "Pong") { long oldTimestamp = long.Parse(splitContent[1]); long newTimestamp = ((DateTimeOffset)DateTime.Now).ToUnixTimeMilliseconds(); long difference = newTimestamp - oldTimestamp; MessageContext context = messageReceivedArgs.CreateMessageContext(); DeleteResponse deleteResponse = new DeleteResponse(context); await SendResponse(deleteResponse, context); EmbedResponse.Builder builder = new EmbedResponse.Builder(EmbedResponseTemplate.Info); builder.AddMessage("Pong!", $"My latency is {difference}ms."); await SendResponse(builder.Build(), context); } } }
public EmbedResponse RemoveWordCommand(MessageContext context, string word) { if (context.serverId == null) { return(CreateNotAServerMessage()); } EmbedResponse.Builder builder; if (RemoveWord(context.serverId, word)) { builder = new EmbedResponse.Builder(EmbedResponseTemplate.Success); builder.AddMessage("Removed word from WordFilter:", word); } else { builder = new EmbedResponse.Builder(EmbedResponseTemplate.Failure); builder.AddMessage($"Could not remove \"{word}\" from WordFilter.", "The word is not on the list to begin with."); } builder.SetTitle("WordFilter"); return(builder.Build()); }
public EmbedResponse AddWordCommand(MessageContext context, string word) { if (context.serverId == null) { return(CreateNotAServerMessage()); } EmbedResponse.Builder builder; if (AddWord(context.serverId, word)) { builder = new EmbedResponse.Builder(EmbedResponseTemplate.Success); builder.AddMessage("Added word to WordFilter:", word); } else { builder = new EmbedResponse.Builder(EmbedResponseTemplate.Failure); builder.AddMessage($"Could not add \"{word}\" to WordFilter.", "The word is already being filtered."); } builder.SetTitle("WordFilter"); return(builder.Build()); }
private EmbedResponse GetSuccessResponse(string query, SearchResult result) { EmbedResponse.Builder builder = new EmbedResponse.Builder(EmbedResponseTemplate.Success); builder.SetTitle(result.Snippet.Title); string description = result.Snippet.Description; if (string.IsNullOrWhiteSpace(description)) { description = NO_DESCRIPTION; } builder.AddMessage(result.Snippet.ChannelTitle, description); builder.SetThumbnailURL(result.Snippet.Thumbnails.Default__.Url); switch (result.Id.Kind) { case VIDEO_KIND: builder.SetURL(string.Format(VIDEO_URL_FORMAT, result.Id.VideoId)); break; case CHANNEL_KIND: builder.SetURL(string.Format(CHANNEL_URL_FORMAT, result.Id.ChannelId)); break; case PLAYLIST_KIND: builder.SetURL(string.Format(PLAYLIST_URL_FORMAT, result.Id.PlaylistId)); break; } CoreModule.Logger.LogInfo($"Title: {result.Snippet.Title}\r\n" + $"Channel: {result.Snippet.ChannelTitle}\r\n" + $"Desc: {result.Snippet.Description}\r\n" + $"Thumb url: {result.Snippet.Thumbnails.Default__.Url}\r\n" + $"URL: {string.Format(PLAYLIST_URL_FORMAT, result.Id.PlaylistId)}"); return(builder.Build()); }
private EmbedResponse CreateNotAServerMessage() { EmbedResponse.Builder builder = new EmbedResponse.Builder(EmbedResponseTemplate.Error); builder.AddMessage("Not a server!", "WordFilter commands can only be used on a server!"); return(builder.Build()); }
private async Task SendErrorResponse(string errorTitle, string errorMessage, ISocketMessageChannel channel) { EmbedResponse.Builder builder = new EmbedResponse.Builder(EmbedResponseTemplate.Error); builder.AddMessage(errorTitle, errorMessage); await responseHandler.Respond(builder.Build(), channel); }
private EmbedResponse GetFailureResponse(string failedQuery) { EmbedResponse.Builder builder = new EmbedResponse.Builder(EmbedResponseTemplate.Failure); builder.AddMessage("No results found.", $"The query \"{failedQuery}\" yielded no results."); return(builder.Build()); }