Discord бот, который дает человеку роль при отправке сообщения в канале

#javascript #node.js #discord #discord.js

#javascript #node.js #Discord #discord.js

Вопрос:

Я пытался закодировать бота, который добавляет роль человеку, когда он отправляет сообщение по определенному каналу, и, похоже, я не могу заставить его работать. Вот код, пожалуйста, скажите мне, где я ошибаюсь. Заранее спасибо.

 client.on("message", (receivedMessage) => {
    receivedMessage.content = receivedMessage.content.toUpperCase();
    if (receivedMessage.content.includes("PASSWORD") amp;amp; receivedMessage.channel.id === `channelId`) {
        client.guilds.cache.get("guildId").members.get(receivedMessage.author.id).addRole("roleId");
    }
});
 

Ответ №1:

GuildMemberManager не имеет members свойства. Вам нужно будет получить доступ к кешу участников.

GuildMember не имеет addRole свойства. Вам придется использовать GuildMemberRoleManager#add .


 client.on("message", (receivedMessage) => {
    receivedMessage.content = receivedMessage.content.toUpperCase();
    if (receivedMessage.content.includes("PASSWORD") amp;amp; receivedMessage.channel.id === `channelId`) {
        client.guilds.cache.get("guildId").members.cache.get(receivedMessage.author.id).roles.add("roleId");
    }
});
 

Совет: вы можете немного сократить свой код, просто используя message.member .