add checkRoles
This commit is contained in:
+12
-29
@@ -2,51 +2,34 @@ import {
|
|||||||
type CommandInteraction,
|
type CommandInteraction,
|
||||||
SlashCommandBuilder, EmbedBuilder, PermissionsBitField
|
SlashCommandBuilder, EmbedBuilder, PermissionsBitField
|
||||||
} from 'discord.js'
|
} from 'discord.js'
|
||||||
import { execute, obj2role } from '../db'
|
import { execute, role2obj } from '../db'
|
||||||
|
|
||||||
module.exports = {
|
module.exports = {
|
||||||
data: new SlashCommandBuilder()
|
data: new SlashCommandBuilder()
|
||||||
.setName('checkroles')
|
.setName('checkroles')
|
||||||
.setDescription('Prints all role permissions'),
|
.setDescription('Prints all roles permissions'),
|
||||||
async execute (interaction: CommandInteraction) {
|
async execute (interaction: CommandInteraction) {
|
||||||
const role = interaction.options.get('role')?.value
|
|
||||||
if (role === undefined) {
|
|
||||||
await interaction.reply({ content: 'Cannot find role', ephemeral: true })
|
|
||||||
return
|
|
||||||
}
|
|
||||||
if ((interaction.memberPermissions?.has(PermissionsBitField.Flags.ManageRoles, true)) !== true) {
|
if ((interaction.memberPermissions?.has(PermissionsBitField.Flags.ManageRoles, true)) !== true) {
|
||||||
await interaction.reply({ content: 'I am sorry dave, I cannot do that\nYou don\'t have the permission to manage roles on this server', ephemeral: true })
|
await interaction.reply({ content: 'I am sorry dave, I cannot do that\nYou don\'t have the permission to manage roles on this server', ephemeral: true })
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
// Set Role
|
|
||||||
|
|
||||||
await execute('DELETE FROM permissions WHERE guild=$guild AND role=$role',
|
const permissionList = await execute('SELECT * FROM permissions') as Array<{ guild: string, role: string, permissions: number }>
|
||||||
{
|
|
||||||
$guild: interaction.guildId,
|
|
||||||
$role: role
|
|
||||||
})
|
|
||||||
|
|
||||||
const permissions = {
|
|
||||||
create: Boolean(interaction.options.get('create_permission')?.value),
|
|
||||||
delete: Boolean(interaction.options.get('delete_permission')?.value)
|
|
||||||
}
|
|
||||||
|
|
||||||
await execute('INSERT INTO permissions (guild, role, permissions) VALUES($guild, $role, $permissions)',
|
|
||||||
{
|
|
||||||
$guild: interaction.guildId,
|
|
||||||
$role: role,
|
|
||||||
$permissions: obj2role(permissions)
|
|
||||||
})
|
|
||||||
|
|
||||||
const statusUpdate = new EmbedBuilder()
|
const statusUpdate = new EmbedBuilder()
|
||||||
.setColor(0x0099FF)
|
.setColor(0x0099FF)
|
||||||
.setTitle('Role updated successfully')
|
.setTitle('List of roles')
|
||||||
.addFields(
|
.setTimestamp()
|
||||||
{ name: 'Role', value: `<@&${role.toString()}>` },
|
|
||||||
|
permissionList.forEach(e => {
|
||||||
|
const permissions = role2obj(e.permissions)
|
||||||
|
|
||||||
|
statusUpdate.addFields(
|
||||||
|
{ name: 'Role', value: `<@&${e.role.toString()}>` },
|
||||||
{ name: 'Can add goobs', value: permissions.create ? '🟩' : '🟥', inline: true },
|
{ name: 'Can add goobs', value: permissions.create ? '🟩' : '🟥', inline: true },
|
||||||
{ name: 'Can delete goobs', value: permissions.delete ? '🟩' : '🟥', inline: true }
|
{ name: 'Can delete goobs', value: permissions.delete ? '🟩' : '🟥', inline: true }
|
||||||
)
|
)
|
||||||
.setTimestamp()
|
})
|
||||||
await interaction.reply({ embeds: [statusUpdate], ephemeral: true })
|
await interaction.reply({ embeds: [statusUpdate], ephemeral: true })
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -132,9 +132,5 @@ module.exports = {
|
|||||||
$last_message: reply.id
|
$last_message: reply.id
|
||||||
}
|
}
|
||||||
)
|
)
|
||||||
|
|
||||||
// interaction.user is the object representing the User who ran the command
|
|
||||||
// interaction.member is the GuildMember object, which represents the user in the specific guild
|
|
||||||
// await interaction.reply(`This command was run by ${interaction.user.username}`)
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user