javascript - 如何解决此问题以向用户添加命令中提到的角色?
问题描述
我正在为我的服务器编写一个自定义的不和谐机器人,我遇到了这个问题。我想为未预定义的用户添加角色。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"
}
解决方案
推荐阅读
- nestjs - NestJS 阿波罗网关错误
- android - 有谁知道 View.post { @Runnable } 到底发生了什么
- gitlab-ci-runner - 如何在 docker+machine GitLab 运行器上配置交互式 Web 终端?
- amazon-web-services - 使用无服务器在 localstack 上部署 lambda 时出错
- python - 如何将列表分组为具有四列的数据框?
- android - 创建自定义单选按钮
- reactjs - 修改我的 SPFx web 部件以引用 css 文件,而不是在 web 部件内编写 css 代码
- azure - Azure Kubernetes 保持活动 TCP 套接字
- objective-c - 如何在 iOS 上添加额外的桥接模块?
- angular - 我无法在 Angular 中使用表单按年份过滤