我想在discord js中更改邮件发件人的角色

时间:2017-12-26 13:04:55

标签: discord.js

我查了很多关于Google的信息,但我无法更改邮件发件人的角色。

    client.on('message', message => {

  var tmp;
  for(i=0; i<filter.length; i++){
    tmp = message.content.indexOf(filter[i]);
    if(tmp >= 0){
      message.reply("warning !");
      client.channels.get('395169643553095702').send(message.author.username + "warning !");

      // change roles



      return;
    };
  };
});

你能帮助我吗?

1 个答案:

答案 0 :(得分:0)

为了改变用户的角色,必须先做两件事:

  1. 此用户必须是服务器(公会)成员。
  2. 必须为该公会创建一个角色。
  3. 完成Discord.js docs我发现您首先必须create a role within the guild使用所需的role options,然后assign the role to a guild member

    编辑: OP进一步研究了这个问题并得到了一个更简单的解决方案:

    只需找到您要添加的角色

    即可
     var role = message.guild.roles.find("name", "RoleName");
    

    然后将其应用于从'message'派生的正确的'GuildMember'对象:

    message.member.addRole(role);
    

    这假设您正在寻找的角色已经存在,而且肯定的消息来自公会成员用户。

    可能看起来像:

    client.on('message', message => {
      var tmp;
      for(i=0; i<filter.length; i++) {
        tmp = message.content.indexOf(filter[i]);
        if(tmp >= 0) {
          message.reply("warning !");
          client.channels.get('395169643553095702').send(message.author.username + "warning !");
          message.guild.fetchMember(message.author).then(guildMember => {
            // Role should already exist at this point in a more stratigic place in code.
            var desiredRole = message.guild.createRole(.......);
            guildMember.addRole(desiredRole);
            // .....
          }, err => {
            // User is not a member of the guild
          });
          return;
        };
      };
    });