javascript - 有没有办法为在 discord.js 中的消息中提到的人添加角色?
问题描述
这是我当前的代码
let person = message.mentions.users.first()
if (person === null) {
message.channel.send('Please mention someone')
return
}
let role = message.guild.roles.cache.some(role => role.name === "Muted")
person.roles.add(role)
message.channel.send(`${person.username} has been muted`)
person.send('You has been muted in DoGame')
由于某种原因它不起作用。
解决方案
person
返回第一个提到的用户的用户对象。您不能将角色添加到用户,而只能添加到GuildMember
- 这可以使用message.mentions.members.first()
.
最终代码
const person = message.mentions.members.first()
if (person === null) {
message.channel.send('Please mention someone')
return
}
const role = message.guild.roles.cache.some(role => role.name === "Muted")
person.roles.add(role)
message.channel.send(`${person.user.username} has been muted`)
person.send('You has been muted in DoGame')
推荐阅读
- django - 单选按钮呈现在表单的其余部分之上
- amazon-web-services - Lightsail+ STS 获取临时凭证
- java - MultipartFile 为空时如何接受?
- vim - 在 Vim 中将 `:vs|term` 映射到单个键没有按预期工作
- angular - 通过将参数传递给服务类来测试订阅功能
- c - Ctrl+C按下时如何恢复正常终端?
- nlp - 为什么转换器编码组件使用 6 个编码器层的堆栈?
- python - 如何在 Visual Studio 代码中让 print() 和 input() 成为不同的颜色?
- python - 为什么它不接受函数中的数据
- asp.net-mvc - Asp.Net Core Web App 从磁盘播放和下载视频