Rename BotHasPermission to a more descriptive name
This commit is contained in:
parent
ca57d10f7c
commit
720755844f
@ -98,7 +98,7 @@ namespace PluralKit.Bot
|
|||||||
|
|
||||||
// Once we've sent it to Sentry, report it to the user (if we have permission to)
|
// Once we've sent it to Sentry, report it to the user (if we have permission to)
|
||||||
var reportChannel = handler.ErrorChannelFor(evt);
|
var reportChannel = handler.ErrorChannelFor(evt);
|
||||||
if (reportChannel != null && reportChannel.BotHasPermission(Permissions.SendMessages))
|
if (reportChannel != null && reportChannel.BotHasAllPermissions(Permissions.SendMessages))
|
||||||
{
|
{
|
||||||
var eid = sentryEvent.EventId;
|
var eid = sentryEvent.EventId;
|
||||||
await reportChannel.SendMessageAsync(
|
await reportChannel.SendMessageAsync(
|
||||||
|
@ -64,11 +64,11 @@ namespace PluralKit.Bot
|
|||||||
|
|
||||||
public Task<DiscordMessage> Reply(string text = null, DiscordEmbed embed = null)
|
public Task<DiscordMessage> Reply(string text = null, DiscordEmbed embed = null)
|
||||||
{
|
{
|
||||||
if (!this.BotHasPermission(Permissions.SendMessages))
|
if (!this.BotHasAllPermissions(Permissions.SendMessages))
|
||||||
// Will be "swallowed" during the error handler anyway, this message is never shown.
|
// Will be "swallowed" during the error handler anyway, this message is never shown.
|
||||||
throw new PKError("PluralKit does not have permission to send messages in this channel.");
|
throw new PKError("PluralKit does not have permission to send messages in this channel.");
|
||||||
|
|
||||||
if (embed != null && !this.BotHasPermission(Permissions.EmbedLinks))
|
if (embed != null && !this.BotHasAllPermissions(Permissions.EmbedLinks))
|
||||||
throw new PKError("PluralKit does not have permission to send embeds in this channel. Please ensure I have the **Embed Links** permission enabled.");
|
throw new PKError("PluralKit does not have permission to send embeds in this channel. Please ensure I have the **Embed Links** permission enabled.");
|
||||||
|
|
||||||
return Channel.SendMessageAsync(text, embed: embed);
|
return Channel.SendMessageAsync(text, embed: embed);
|
||||||
|
@ -118,7 +118,7 @@ namespace PluralKit.Bot
|
|||||||
catch (PKError e)
|
catch (PKError e)
|
||||||
{
|
{
|
||||||
// User-facing errors, print to the channel properly formatted
|
// User-facing errors, print to the channel properly formatted
|
||||||
if (msg.Channel.Guild == null || msg.Channel.BotHasPermission(Permissions.SendMessages))
|
if (msg.Channel.Guild == null || msg.Channel.BotHasAllPermissions(Permissions.SendMessages))
|
||||||
await msg.Channel.SendMessageAsync($"{Emojis.Error} {e.Message}");
|
await msg.Channel.SendMessageAsync($"{Emojis.Error} {e.Message}");
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -47,8 +47,7 @@ namespace PluralKit.Bot {
|
|||||||
if (channel.Type != ChannelType.Text) return;
|
if (channel.Type != ChannelType.Text) return;
|
||||||
|
|
||||||
// Bail if we don't have permission to send stuff here
|
// Bail if we don't have permission to send stuff here
|
||||||
var neededPermissions = Permissions.SendMessages | Permissions.EmbedLinks;
|
if (!channel.BotHasAllPermissions(Permissions.SendMessages | Permissions.EmbedLinks))
|
||||||
if ((channel.BotPermissions() & neededPermissions) != neededPermissions)
|
|
||||||
return;
|
return;
|
||||||
|
|
||||||
var embed = _embed.CreateLoggedMessageEmbed(system, member, messageId, originalMsgId, sender, content, originalChannel);
|
var embed = _embed.CreateLoggedMessageEmbed(system, member, messageId, originalMsgId, sender, content, originalChannel);
|
||||||
|
@ -67,7 +67,7 @@ namespace PluralKit.Bot
|
|||||||
// Bail if not enabled, or if we don't have permission here
|
// Bail if not enabled, or if we don't have permission here
|
||||||
if (!cachedGuild.LogCleanupEnabled) return;
|
if (!cachedGuild.LogCleanupEnabled) return;
|
||||||
if (msg.Channel.Type != ChannelType.Text) return;
|
if (msg.Channel.Type != ChannelType.Text) return;
|
||||||
if (!msg.Channel.BotHasPermission(Permissions.ManageMessages)) return;
|
if (!msg.Channel.BotHasAllPermissions(Permissions.ManageMessages)) return;
|
||||||
|
|
||||||
// If this message is from a *webhook*, check if the name matches one of the bots we know
|
// If this message is from a *webhook*, check if the name matches one of the bots we know
|
||||||
// TODO: do we need to do a deeper webhook origin check, or would that be too hard on the rate limit?
|
// TODO: do we need to do a deeper webhook origin check, or would that be too hard on the rate limit?
|
||||||
|
@ -287,7 +287,7 @@ namespace PluralKit.Bot
|
|||||||
await args.Channel.SendMessageAsync($"Psst, **{msg.Member.DisplayName ?? msg.Member.Name}** (<@{msg.Message.Sender}>), you have been pinged by <@{args.User.Id}>.", embed: embed.Build());
|
await args.Channel.SendMessageAsync($"Psst, **{msg.Member.DisplayName ?? msg.Member.Name}** (<@{msg.Message.Sender}>), you have been pinged by <@{args.User.Id}>.", embed: embed.Build());
|
||||||
|
|
||||||
// Finally remove the original reaction (if we can)
|
// Finally remove the original reaction (if we can)
|
||||||
if (args.Channel.BotHasPermission(Permissions.ManageMessages))
|
if (args.Channel.BotHasAllPermissions(Permissions.ManageMessages))
|
||||||
await args.Message.DeleteReactionAsync(args.Emoji, args.User);
|
await args.Message.DeleteReactionAsync(args.Emoji, args.User);
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -323,7 +323,7 @@ namespace PluralKit.Bot
|
|||||||
public async Task HandleMessageDeletionByReaction(MessageReactionAddEventArgs args)
|
public async Task HandleMessageDeletionByReaction(MessageReactionAddEventArgs args)
|
||||||
{
|
{
|
||||||
// Bail if we don't have permission to delete
|
// Bail if we don't have permission to delete
|
||||||
if (!args.Channel.BotHasPermission(Permissions.ManageMessages)) return;
|
if (!args.Channel.BotHasAllPermissions(Permissions.ManageMessages)) return;
|
||||||
|
|
||||||
// Find the message in the database
|
// Find the message in the database
|
||||||
var storedMessage = await _data.GetMessage(args.Message.Id);
|
var storedMessage = await _data.GetMessage(args.Message.Id);
|
||||||
|
@ -109,7 +109,7 @@ namespace PluralKit.Bot {
|
|||||||
if (currentPage < 0) currentPage += pageCount;
|
if (currentPage < 0) currentPage += pageCount;
|
||||||
|
|
||||||
// If we can, remove the user's reaction (so they can press again quickly)
|
// If we can, remove the user's reaction (so they can press again quickly)
|
||||||
if (ctx.BotHasPermission(Permissions.ManageMessages)) await msg.DeleteReactionAsync(reaction.Emoji, reaction.User);
|
if (ctx.BotHasAllPermissions(Permissions.ManageMessages)) await msg.DeleteReactionAsync(reaction.Emoji, reaction.User);
|
||||||
|
|
||||||
// Edit the embed with the new page
|
// Edit the embed with the new page
|
||||||
var embed = await MakeEmbedForPage(currentPage);
|
var embed = await MakeEmbedForPage(currentPage);
|
||||||
@ -119,7 +119,7 @@ namespace PluralKit.Bot {
|
|||||||
// "escape hatch", clean up as if we hit X
|
// "escape hatch", clean up as if we hit X
|
||||||
}
|
}
|
||||||
|
|
||||||
if (ctx.BotHasPermission(Permissions.ManageMessages)) await msg.DeleteAllReactionsAsync();
|
if (ctx.BotHasAllPermissions(Permissions.ManageMessages)) await msg.DeleteAllReactionsAsync();
|
||||||
}
|
}
|
||||||
// If we get a "NotFound" error, the message has been deleted and thus not our problem
|
// If we get a "NotFound" error, the message has been deleted and thus not our problem
|
||||||
catch (NotFoundException) { }
|
catch (NotFoundException) { }
|
||||||
@ -208,8 +208,8 @@ namespace PluralKit.Bot {
|
|||||||
|
|
||||||
public static Permissions BotPermissions(this Context ctx) => ctx.Channel.BotPermissions();
|
public static Permissions BotPermissions(this Context ctx) => ctx.Channel.BotPermissions();
|
||||||
|
|
||||||
public static bool BotHasPermission(this Context ctx, Permissions permission) =>
|
public static bool BotHasAllPermissions(this Context ctx, Permissions permission) =>
|
||||||
ctx.Channel.BotHasPermission(permission);
|
ctx.Channel.BotHasAllPermissions(permission);
|
||||||
|
|
||||||
public static async Task BusyIndicator(this Context ctx, Func<Task> f, string emoji = "\u23f3" /* hourglass */)
|
public static async Task BusyIndicator(this Context ctx, Func<Task> f, string emoji = "\u23f3" /* hourglass */)
|
||||||
{
|
{
|
||||||
|
@ -58,7 +58,7 @@ namespace PluralKit.Bot
|
|||||||
return Permissions.None;
|
return Permissions.None;
|
||||||
}
|
}
|
||||||
|
|
||||||
public static bool BotHasPermission(this DiscordChannel channel, Permissions permissionSet) =>
|
public static bool BotHasAllPermissions(this DiscordChannel channel, Permissions permissionSet) =>
|
||||||
(BotPermissions(channel) & permissionSet) == permissionSet;
|
(BotPermissions(channel) & permissionSet) == permissionSet;
|
||||||
|
|
||||||
public static Instant SnowflakeToInstant(ulong snowflake) =>
|
public static Instant SnowflakeToInstant(ulong snowflake) =>
|
||||||
|
Loading…
Reference in New Issue
Block a user