Permisos de comando de barra

Los comandos de barra tienen su propio sistema de permisos, lo que le permite controlar quién tiene acceso para usar qué comandos. A diferencia de la configuración de permisos de los comandos de barra inclinada dentro del cliente de Discord, puede ajustar el acceso a los comandos sin evitar que el usuario o rol seleccionado use todos los comandos.

TIP

Si establece defaultPermission: false al crear un comando, puede deshabilitarlo inmediatamente para todos, incluidos los administradores del gremio y usted mismo.

Permisos de usuario

Para comenzar, obtenga un ApplicationCommand y luego configure los permisos usando el método ApplicationCommandPermissionsManager#add():

if (!client.application?.owner) await client.application?.fetch();

const command = await client.guilds.cache.get('123456789012345678')?.commands.fetch('876543210987654321');

const permissions = [
	{
		id: '224617799434108928',
		type: 'USER',
		permission: false,
	},
];

await command.permissions.add({ permissions });
1
2
3
4
5
6
7
8
9
10
11
12
13

Ahora ha denegado con éxito al usuario cuyo id utilizó el acceso a este comando de aplicación.

TIP

Si desea actualizar los permisos para un comando global, su variable comando sería:

const command = client.application?.commands.fetch('123456789012345678');
1

Si tiene un comando que está deshabilitado de manera predeterminada y desea otorgar acceso a alguien para usarlo, haga lo siguiente:

const permissions = [
	{
		id: '224617799434108928',
		type: 'USER',
		permission: true,
	},
];

await command.permissions.set({ permissions });




 




1
2
3
4
5
6
7
8
9

Permisos para roles

Los permisos también se pueden denegar (o permitir) a un rol en lugar de un solo usuario:

const permissions = [
	{
		id: '464464090157416448',
		type: 'ROLE',
		permission: false,
	},
];

await command.permissions.add({ permissions });



 
 




1
2
3
4
5
6
7
8
9

Permisos de actualización masiva

Si tiene muchos comandos, es probable que desee actualizar sus permisos de una vez en lugar de uno por uno. Para este enfoque, puede utilizar el método ApplicationCommandPermissionsManager#set():

const fullPermissions = [
	{
		id: '123456789012345678',
		permissions: [{
			id: '224617799434108928',
			type: 'USER',
			permission: false,
		}],
	},
	{
		id: '876543210987654321',
		permissions: [{
			id: '464464090157416448',
			type: 'ROLE',
			permission: true,
		}],
	},
];

await client.guilds.cache.get('123456789012345678')?.commands.permissions.set({ fullPermissions });
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20

¡Y eso es todo lo que necesita saber sobre los permisos en comandos de barra!