最新消息:雨落星辰是一个专注网站SEO优化、网站SEO诊断、搜索引擎研究、网络营销推广、网站策划运营及站长类的自媒体原创博客

addRole到提到的用户不起作用

运维笔记admin14浏览0评论

addRole到提到的用户不起作用

addRole到提到的用户不起作用

我正在尝试制作一个可以为用户添加特定角色的discord bot。

const Discord = require('discord.js');
const client = new Discord.Client();
client.on('ready', () => {
  console.log(`Logged in as ${client.user.tag}!`);
});

client.on('message', (message) => {
    let allowedRole = message.guild.channels.find(channel => channel.name === "Streamer");
    let gRole = message.guild.channels.find(channel => channel.name === "Stream 1");
    mention = message.mentions.users.first();
    let member = message.mentions.users.first();
  if (message.content === "addRole") {
      members.get(message.mentions.user.id).addRole(gRole);
  }
});

client.login('mytoken');

我希望机器人可以为特定的人添加角色

回答如下:

首先,您的第一个错误是,您在变量gRoleallowedRole中搜索了频道名称而不是角色名称。我更改了这两个变量,因此他们搜索角色而不是频道。

你定义了两次相同,一次提及一次和member = message.mentions.users.first()。因此,我删除了名为mention的变量并使用了变量member。我发现此变量的代码与变量的名称不匹配,因为您的代码返回了用户Object,我将其更改为成员Object(因为您的变量名为member)。

最后,我使用了您预定义的变量member并为其分配了角色gRole,因此您不必再次获取该成员。


尝试使用以下代码:

const Discord = require('discord.js');
const client = new Discord.Client();
client.on('ready', () => {
    console.log(`Logged in as ${client.user.tag}!`);
});

client.on('message', message => {
    const allowedRole = message.guild.roles.find(role => role.name === 'Streamer'); // isn't used
    const gRole = message.guild.roles.find(role => role.name === 'Stream 1');
    const member = message.mentions.members.first();
    if (message.content === 'addRole') {
        member.addRole(gRole);
    }
});

client.login('mytoken');
发布评论

评论列表(0)

  1. 暂无评论