我正在尝试制作一个不和谐的机器人,DM 是一个随机用户,它要么是 DM 只是我,要么我得到一个错误

时间:2021-03-09 21:31:07

标签: discord discord.js

这是我的代码,似乎随机用户选择被破坏了,尽管它在另一个命令中完全正常,我有一个随机用户的 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");
}

2 个答案:

答案 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了解更多信息。