首页 > 解决方案 > 如何解决此问题以向用户添加命令中提到的角色?

问题描述

我正在为我的服务器编写一个自定义的不和谐机器人,我遇到了这个问题。我想为未预定义的用户添加角色。IE:我希望能够 &addrole @user anyrole 并将该角色添加到用户。这是代码:

const Discord = require("discord.js");

module.exports.run = async (bot, message, args) => {

//!addrole @andrew anyrole
if(!message.member.hasPermission("MANAGE_MEMBERS")) return 
message.reply("Sorry pal, you can't do that.");
let rMember = message.guild.member(message.mentions.users.first()) || 
message.guild.members.get(args[0]);
if(!rMember) return message.reply("Couldn't find that user, yo.");
let role = args.join(" ").slice(22);
if(!role) return message.reply("Specify a role!");
let gRole = message.guild.roles.find('name', any);
if(!gRole) return message.reply("Couldn't find that role.");

if(rMember.roles.has(gRole.id)) return message.reply("They already have 
that role.");
await(rMember.addRole(gRole.id));

try{
await rMember.send(`Congrats, you have been given the role 
${gRole.name}`)
}catch(e){
message.channel.send(`Congrats to <@${rMember.id}>, they have been given 
the role ${gRole.name}. We tried to DM them, but their DMs are locked.`)
}
}

module.exports.help = {
name: "addrole"
}

标签: javascriptnode.js

解决方案


推荐阅读