in src/listeners/interactionCreate.ts [32:77]
function checkPermissions(interaction: BaseInteraction): string | null {
if (!interaction.inGuild()) {
// no DM's, change if needed
if (LOG_ERRORS) {
console.log("Permissions error: No guild.");
}
return "**Error:** You don't have permission to do that.";
}
if (
interaction.guildId &&
!ALLOWED_SERVER_IDS.includes(interaction.guildId)
) {
if (LOG_ERRORS) {
console.log(
`Permissions error: Guild ${interaction.guildId} not allowed.`
);
}
return "**Error:** You don't have permission to do that.";
}
if (
!interaction.appPermissions ||
!interaction.appPermissions.has(PermissionsBitField.Flags.ViewChannel)
) {
// Even though commands don't need ViewChannel, you can't selectively allow
// commands in certain channels, so we implement permissions by using ViewChannel.
if (LOG_ERRORS) {
console.log(`Permissions error: Bot has no view perms in channel.`);
}
return "**Error:** You don't have permission to do that.";
}
if (
!interaction.memberPermissions ||
!interaction.memberPermissions.has(PermissionsBitField.Flags.SendMessages)
) {
// Match bot perms to whether user has message perm
if (LOG_ERRORS) {
console.log(`Permissions error: User has no send perms in channel.`);
}
return "**Error:** You don't have permission to do that.";
}
return null;
}