public static async Task BanAsync(ILoggerFactory factory, ICommandContext context, string message, string trigger, Emote emote = null, bool autoDelete = false) { var logger = factory.CreateLogger(typeof(BanPenalty)); var self = await context.Guild.GetCurrentUserAsync(); if (context.Channel.CheckChannelPermission(ChannelPermission.ManageMessages, self)) { if (self.GuildPermissions.BanMembers) { try { await context.Guild.AddBanAsync(context.User, 1, $"Banned for Advertisement in {context.Channel}. Trigger: {trigger}"); IUserMessage msg; if (emote == null) { emote = Emote.Parse("<:Ban:330793436309487626>"); } if (self.GuildPermissions.UseExternalEmojis && emote != null) { msg = await context.Channel.SendMessageAsync($"{emote} {context.User.Mention} {message}! Trigger: {trigger} {emote}"); } else { msg = await context.Channel.SendMessageAsync($":no_entry: {context.User.Mention} {message}! Trigger: {trigger} :no_entry:"); } logger.LogInformation(new EventId(200), $"{context.User} has been banned from {context.Guild}"); if (msg != null) { if (autoDelete) { await JobQueue.QueueTrigger(msg, logger); } } } catch (Exception e) { if (context.Channel.CheckChannelPermission(ChannelPermission.SendMessages, self)) { var msg = await context.Channel.SendMessageAsync( $":anger: Unable to Ban {context.User}.\n`{e.Message}`"); await JobQueue.QueueTrigger(msg, logger); } else { logger.LogWarning(new EventId(403), $"Unable to send Ban penalty message in {context.Guild}/{context.Channel} missing permissions!"); } logger.LogWarning(new EventId(400), e, $"Unable to Ban {context.User} from {context.Guild}"); } } else { if (context.Channel.CheckChannelPermission(ChannelPermission.SendMessages, self)) { var msg = await context.Channel.SendMessageAsync( $":anger: Unable to Ban {context.User}.\n`Missing Ban Permission`"); await JobQueue.QueueTrigger(msg, logger); } else { logger.LogWarning(new EventId(403), $"Unable to send Ban penalty message in {context.Guild}/{context.Channel} missing permissions!"); } logger.LogWarning(new EventId(403), $"Unable to ban {context.User} from {context.Guild}, not enoguh permissions to ban"); } } }
public static async Task KickAsync(ILoggerFactory factory, ICommandContext context, string message, string trigger, Emote emote = null, bool autoDelete = false) { var logger = factory.CreateLogger(typeof(KickPenalty)); var self = await context.Guild.GetCurrentUserAsync(); if (context.Channel.CheckChannelPermission(ChannelPermission.ManageMessages, self)) { if (self.GuildPermissions.KickMembers) { try { await((IGuildUser)context.User).KickAsync($"Kicked for Advertisement in {context.Channel}. Trigger: {trigger}"); IUserMessage msg; if (emote == null) { emote = Emote.Parse("<:Kick:330793607919566852>"); } if (self.GuildPermissions.UseExternalEmojis && emote != null) { msg = await context.Channel.SendMessageAsync($"{emote} {context.User.Mention} {message}! Trigger: {trigger} {emote}"); } else { msg = await context.Channel.SendMessageAsync($":boot: {context.User.Mention} {message}! Trigger: {trigger} :boot:"); } logger.LogInformation(new EventId(200), $"{context.User} has been kicked from {context.Guild}."); if (msg != null) { if (autoDelete) { await JobQueue.QueueTrigger(msg, logger); } } } catch (Exception e) { if (context.Channel.CheckChannelPermission(ChannelPermission.SendMessages, self)) { var msg = await context.Channel.SendMessageAsync( $":anger: Unable to kick {context.User}.\n`{e.Message}`"); await JobQueue.QueueTrigger(msg, logger); } else { logger.LogWarning(new EventId(403), $"Unable to send Kick penalty message in {context.Guild}/{context.Channel} missing permissions!"); } logger.LogWarning(new EventId(400), e, $"Unable to kick {context.User} from {context.Guild}"); } } else { if (context.Channel.CheckChannelPermission(ChannelPermission.SendMessages, self)) { var msg = await context.Channel.SendMessageAsync( $":anger: Unable to kick {context.User}.\n`Missing Kick Permission`"); await JobQueue.QueueTrigger(msg, logger); } else { logger.LogWarning(new EventId(403), $"Unable to send Kick penalty message in {context.Guild}/{context.Channel} missing permissions!"); } logger.LogWarning(new EventId(403), $"Unable to kick {context.User} from {context.Guild}, not enough permissions to kick"); } } }