【发布时间】:2021-02-20 07:30:57
【问题描述】:
我希望我的机器人向执行命令 !RHelp 的人发送 dm。
为此,我编写了以下代码:
if (message.content.startsWith('!RHelp')){
client.users.fetch('<User ID>').then((user) => user.send('Hello World'));
message.reply('I just sent you a DM');}
机器人正在正确执行代码,但在发送消息后,他因以下错误而崩溃:
const member = message.guild.member(user);
^
TypeError: Cannot read property 'member' of null
我已经尝试过message.author.send('Hello World'); 但这是同样的问题......
我在一个单独的文件 'utiles.js' 中声明用户和成员:
const Discord = require('discord.js');
const Client = new Discord.Client();
module.exports ={
getUtiles: function (message){
const user = message.mentions.users.first();
const member = message.guild.member(user);
const args = message.content.trim().split(/ +/g);
const command = args.shift().toLowerCase();
const usrTag ='<@'+ member + '>'; //get the mentionned user tag
this.user = user;
this.member = member;
this.args = args;
this.usrTag = usrTag;
return user, member, args, usrTag;
}
}
【问题讨论】:
-
您的错误消息表明
message.guild的值不包含名为member()的方法或属性,很可能是因为message.guild为空或未定义。在您显示的代码中,我们看不到您在何处创建了该变量。 -
@Alex 感谢您的评论,我在问题中添加了 utiles.js。
-
在此处找到此 sn-p:github.com/AnIdiotsGuide/discordjs-bot-guide/blob/master/… - 您可能需要将
message.guild.member(user)更改为message.guild.members.get(user)。 -
另外,看起来 API 最近已经完全改变了,这会破坏旧代码。我不知道您最近多久开始使用机器人,但这可能会对您有所帮助:discordjs.guide/additional-info/changes-in-v12.html
-
@Alex 你发给我的链接 (github.com/AnIdiotsGuide/discordjs-bot-guide/blob/master/...) 是针对旧版本的 discord.js。而且我没有在指南中找到有关发送私人消息的新方法的任何信息。但是感谢您的帮助!????
标签: javascript node.js discord.js