Discord.js 成员超时
Discord.js timing out members
我正在使用 node.js 为我的服务器制作一个 discord 机器人,我目前正试图让某人超时,例如'Me-bot.timeout'... Response-'Bot-Who would you like to timeout?' 然后你在那里输入用户名,它会超时。
我认为这段代码可以工作,但它没有,我该如何解决 it/what 我做错了吗?
message.guild.members.cache.get('username#1234').timeout(9000, 'Admin timed you out.')
首先,如 byxor 所述,您应该在 Discord.js v12 及更高版本中使用 message.guild.members.fetch
。
话虽这么说,fetch
将 return 变成用户的 Promise,而不是用户对象本身。在尝试超时之前,您需要处理此承诺以获取已解析的用户。
这一切都在 Discord.js documentation 中进行了解释,但这通常是您要查找的内容(如果您需要,会发现所有可能的错误):
message.guild.members.fetch('id')
.then(user => {
user.timeout(9000, 'Admin timed you out.')
.then(() => {
console.log('Timed user out for 9000 seconds.')
})
.catch(console.error)
})
.catch(console.error)
我强烈建议您阅读 Promises,因为 Discord.js 将大量使用它们。
我正在使用 node.js 为我的服务器制作一个 discord 机器人,我目前正试图让某人超时,例如'Me-bot.timeout'... Response-'Bot-Who would you like to timeout?' 然后你在那里输入用户名,它会超时。 我认为这段代码可以工作,但它没有,我该如何解决 it/what 我做错了吗?
message.guild.members.cache.get('username#1234').timeout(9000, 'Admin timed you out.')
首先,如 byxor 所述,您应该在 Discord.js v12 及更高版本中使用 message.guild.members.fetch
。
话虽这么说,fetch
将 return 变成用户的 Promise,而不是用户对象本身。在尝试超时之前,您需要处理此承诺以获取已解析的用户。
这一切都在 Discord.js documentation 中进行了解释,但这通常是您要查找的内容(如果您需要,会发现所有可能的错误):
message.guild.members.fetch('id')
.then(user => {
user.timeout(9000, 'Admin timed you out.')
.then(() => {
console.log('Timed user out for 9000 seconds.')
})
.catch(console.error)
})
.catch(console.error)
我强烈建议您阅读 Promises,因为 Discord.js 将大量使用它们。