这是我的代码,似乎随机用户选择被破坏了,尽管它在另一个命令中完全正常,我有一个随机用户的 ping 操作
client.on('message', message => {
if (message.content.toLowerCase() === `${prefix}command`) {
const userList = message.guild.members.cache.array();
var randomNumber = Math.floor(Math.random() * userList.length)
var dm = userList[randomNumber]
console.log(dm.user.id)
dm.send("123");
}
答案 0 :(得分:2)
好的,所以你写的代码工作得很好。问题是您的机器人无法向其自身发送消息。对此有一个非常简单的解决方案。只需检查所选成员是否是机器人,如果是这种情况,请检查 return
。 注意:我将您的随机数放在 userList
的数组字段中。
const userList = message.guild.members.cache.array();
var dm = userList[Math.floor(Math.random() * userList.length)];
if (dm.user.bot) return;
console.log(dm.user.username);
dm.send("123");
注意:如果您的测试服务器上只有您自己和机器人,那么这只会向您发送 DM。在这种情况下,我建议获取一个辅助帐户并邀请一些朋友加入测试服务器。
答案 1 :(得分:1)
您是否启用了会员意图?如果您没有启用该意图,则成员列表仅显示您和机器人。阅读docs for intents了解更多信息。