javascript - 禁止使用用户 ID discord.js 的用户
问题描述
我对不和谐机器人编码有点新,我有一个问题。我想要一个禁止命令,该命令将禁止命令中提到的用户或具有命令中提供的 ID 的用户。例如:&ban @User#0001 将禁止 User#0001 ,但 如果命令如下所示:&ban 123456789123456789(假设这是 User#0001 的 ID)它仍然会禁止 User#0001(因为它是用户的 ID)。
我有这个代码,如果我提到用户,它会起作用,但如果我输入 ID,它就不起作用。
const Discord = require('discord.js');
module.exports = {
name: 'testban',
description: "Executer will ban the mentioned user",
execute(message, args){
if (!message.member.hasPermission("BAN_MEMBERS")) return message.channel.send("Invalid Permissions")
let User = message.guild.member(message.mentions.users.first()) || message.guild.members.get(args[0])
if (!User) return message.channel.send("Invalid User")
if (User.hasPermission("BAN_MEMBERS")) return message.reply("Can't ban that one, he also can ban")
let banReason = args.join(" ").slice(22);
if (!banReason) {
banReason = "None"
}
console.log(`USER = ${User}`)
User.ban({reason: banReason})
var UserID = User.id
console.log(`USER ID = ${UserID}`)
}
}
输入 ID 时出现的错误是:
message.guild.members.get is not a function
即使我只提供身份证,我怎么能禁止这个人?
解决方案
如果您使用的是较新版本的 discord.js,您需要使用cache
,您只需将其更改为:
message.guild.members.cache.get(args[0])
推荐阅读
- cakephp - 如何使用 cakePHP 3.x 中使用准备好的语句定义的临时表
- javascript - 显示时如何将动画应用于元素?
- javascript - 如何以角度形式实现我想通过子组件动态呈现表单控件的功能?
- javascript - 通过数组索引将对象从数据传递到 Vue.js 中的组件
- javascript - 为什么 (null==undefined) 在 JavaScript 中为真?
- objective-c - 如何在录制iOS时进入后台时执行strava的操作
- javascript - Angular 表单发送空数据
- hive - 如何让 Beeline 命令行界面识别向上箭头键按下
- elasticsearch - 搜索结果的 ElasticSearch 阈值
- javascript - Webpack 中 Webpack-Manifest-Plugin 的用途