public static async Task <Embed> ChangePrefix(SocketCommandContext context, string newPrefix) { //If prefix lenght is more than 5 chars long if (newPrefix.Length > 5) { return(await EmbedHandler.CreateErrorEmbed("Configuration Error.", $"The prefix is to long. Must be 5 characters or less.")); } //Get Guild Config var config = GuildConfigFunctions.GetGuildConfig(context.Guild, _connection); //Get Guild Prefix from Config string oldPrefix = config.prefix; //If the Selected Prefix is already the Prefix if (oldPrefix == newPrefix) { return(await EmbedHandler.CreateErrorEmbed("Configuration Error.", $"\"{newPrefix}\" is already the prefix.")); } //Update Config GuildConfigFunctions.UpdateGuildConfig(context.Guild, "prefix", newPrefix, _connection); return(await EmbedHandler.CreateBasicEmbed("Configuration Changed.", $"The prefix was successfully changed to \"{newPrefix}\".")); }
private async Task CommandExecutedAsync(Optional <CommandInfo> command, ICommandContext context, IResult result) { //If Execution was successfull - return if (result.IsSuccess) { return; } //If an Error Occurs send to Discord if (!command.IsSpecified || !result.IsSuccess) { #if DEBUG LoggingService.Log("CommandExecution", $"{context.Message.Author.Username} => {context.Message} => {result.ErrorReason}", ConsoleColor.Red); #endif await context.Channel.SendMessageAsync(embed : await EmbedHandler.CreateErrorEmbed("Error.", result.ErrorReason)); } }
//On Guild Join Create Config public async Task JoinedGuild(SocketGuild guild) { //If the guild has config, delete it if (GuildConfigFunctions.GuildHasConfig(guild, _connection)) { GuildConfigFunctions.RemoveGuildConfig(guild, _connection); } //Guild Defualt Channel var defaultChannel = guild.DefaultChannel as SocketTextChannel; List <ulong> whitelistedChannels = new List <ulong>(); if (whitelistedChannels.Count == 0) { //Add Default Channel ID whitelistedChannels.Add(defaultChannel.Id); //Create Guild Config GuildConfigFunctions.CreateGuildConfig(guild, _connection); //Custom Embed var fields = new List <EmbedFieldBuilder>(); fields.Add(new EmbedFieldBuilder { Name = "**Please Note**", Value = $"By default, {defaultChannel.Mention} is the default bot channel.\n" + $"If you want to change it, type {GlobalData.Config.defaultPrefix}whitelist add #YourTextChannel", IsInline = false }); //Send Embed await defaultChannel.SendMessageAsync(embed : await EmbedHandler.CreateCustomEmbed( guild: guild, color: Color.DarkTeal, fields: fields, embedTitle: "I have arrived!", footer: $"Thank you for choosing {guild.CurrentUser.Username}" )); } await Task.CompletedTask; }
public static async Task <Embed> WhiteList(SocketCommandContext context, string arg, IChannel channel) { //Check if channel is specified ONLY when arg isnt list if (arg != "list") { //If no channel is specified if (channel is null) { return(await EmbedHandler.CreateErrorEmbed("Configuration Error.", $"No channel specified.")); } //Checks if the selected channel is text channel if (context.Guild.GetChannel(channel.Id) != context.Guild.GetTextChannel(channel.Id)) { return(await EmbedHandler.CreateErrorEmbed("Configuration Error.", $"{context.Guild.GetChannel(channel.Id)} is not a text channel.")); } } //Get Guild Config var guildConfig = GuildConfigFunctions.GetGuildConfig(context.Guild, _connection); //Get Whitelisted Channel List <ulong> whitelistedChannels = Array.ConvertAll(guildConfig.whitelistedChannel.Split(';'), ulong.Parse).ToList(); switch (arg) { #region Add Channel to Whitelist case "add": //Limits the whitelisted channels to 5 int limit = 5; if (whitelistedChannels.Count > limit) { return(await EmbedHandler.CreateErrorEmbed("Configuration Error.", $"You have reached the maximum of {limit} whitelisted channels.")); } //Check If the channel is already whitelisted foreach (ulong item in whitelistedChannels) { if (item == channel.Id) { return(await EmbedHandler.CreateErrorEmbed("Configuration Error.", $"{context.Guild.GetChannel(item)} is already whitelisted!")); } } //Add Channel to Whitelist whitelistedChannels.Add(channel.Id); //Update Config GuildConfigFunctions.UpdateGuildConfig(context.Guild, "whitelistedChannel", $"{string.Join(';', whitelistedChannels)}", _connection); return(await EmbedHandler.CreateBasicEmbed("Configuration Changed.", $"{context.Guild.GetChannel(channel.Id)} was whitelisted.")); #endregion #region Remove Channel from Whitelist case "remove": if (whitelistedChannels.Count == 1) { return(await EmbedHandler.CreateErrorEmbed("Configuration Error.", $"You can't have less than 1 whitelisted channel.")); } bool notFound = true; foreach (ulong item in whitelistedChannels) { if (item == channel.Id) { notFound = false; break; } } //If the Channel is not Whitelisted if (notFound) { return(await EmbedHandler.CreateErrorEmbed("Configuration Error.", $"{context.Guild.GetChannel(channel.Id)} is not whitelisted.")); } //Remove Channel from Whitelist whitelistedChannels.Remove(channel.Id); //Update Config GuildConfigFunctions.UpdateGuildConfig(context.Guild, "whitelistedChannel", $"{string.Join(';', whitelistedChannels)}", _connection); return(await EmbedHandler.CreateBasicEmbed("Configuration Changed.", $"{context.Guild.GetChannel(channel.Id)} was removed from the whitelist.")); #endregion #region List Whitelisted Channels case "list": StringBuilder builder = new StringBuilder(); builder.Append("**Whitelisted channels:**\n"); for (int i = 0; i < whitelistedChannels.Count; i++) { var whitelistedChannel = context.Guild.GetChannel(whitelistedChannels[i]); builder.Append($"{i + 1}. {whitelistedChannel.Name} (ID: {whitelistedChannel.Id})\n"); } return(await EmbedHandler.CreateBasicEmbed("Whitelist, List", $"{builder}")); #endregion default: return(await EmbedHandler.CreateErrorEmbed("Configuration Error.", $"{arg} is not a valid argument.")); } }