Как сделать так, чтобы бот выдавал роли в дискорде?

Я пишу своего бота и мне нужно чтобы когда я написал к примеру:" Выдать @ник @роль " то игроку выдавалась роль которую я указал?Пишу на JavaScript
  • Вопрос задан
  • 18508 просмотров
Пригласить эксперта
Ответы на вопрос 2
@MrLeonardos Автор вопроса
Всё,я разобрался
client.on('message', msg => {//Отвечает игроку

if(msg.content.startsWith("Выдать")) {
if(msg.member.permissions.has('MANAGE_ROLES')){
let role = msg.guild.roles.find(c => c.name === msg.content.split(" ")[1])
let user = msg.mentions.members.first();
user.addRole(role.id);
msg.reply(`Пользователю была выдана роль!` );
console.log(`Пользователю была выдана роль `)
} else {
msg.reply(`Вы не имеете право выдавать роли!`);
console.log(`Пользователь не имеет право выдавать роли!`);
}
}
});
Ответ написан
Комментировать
@EvgeniBlack
D:\Женя\DISCORD BOT\index.js:186
user.addRole(role.id);
^

TypeError: Cannot read property 'id' of null
at Client.client.on.msg (D:\Женя\DISCORD BOT\index.js:186:29)
at Client.emit (events.js:187:15)
at MessageCreateHandler.handle (D:\Женя\DISCORD BOT\node_modules\discord.js\src\client\websocket\packets\handlers\MessageCreate.js:9:34)
at WebSocketPacketManager.handle (D:\Женя\DISCORD BOT\node_modules\discord.js\src\client\websocket\packets\WebSocketPacketManager.js:103:65)
at WebSocketConnection.onPacket (D:\Женя\DISCORD BOT\node_modules\discord.js\src\client\websocket\WebSocketConnection.js:333:35)
at WebSocketConnection.onMessage (D:\Женя\DISCORD BOT\node_modules\discord.js\src\client\websocket\WebSocketConnection.js:296:17)
at WebSocket.onMessage (D:\Женя\DISCORD BOT\node_modules\ws\lib\event-target.js:120:16)
at WebSocket.emit (events.js:182:13)
at Receiver._receiver.onmessage (D:\Женя\DISCORD BOT\node_modules\ws\lib\websocket.js:137:47)
at Receiver.dataMessage (D:\Женя\DISCORD BOT\node_modules\ws\lib\receiver.js:409:14)
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы