Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/node.js/36.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 发送dm消息后Discord JS bot崩溃_Javascript_Node.js_Discord.js - Fatal编程技术网

Javascript 发送dm消息后Discord JS bot崩溃

Javascript 发送dm消息后Discord JS bot崩溃,javascript,node.js,discord.js,Javascript,Node.js,Discord.js,我希望我的机器人向执行命令的人发送dm!RHelp。 为此,我编写了以下代码: if (message.content.startsWith('!RHelp')){ client.users.fetch('<User ID>').then((user) => user.send('Hello World')); message.reply('I just sent you a DM');} 我一直试图做message.author.send('

我希望我的机器人向执行命令的人发送dm
!RHelp
。 为此,我编写了以下代码:

if (message.content.startsWith('!RHelp')){
        client.users.fetch('<User ID>').then((user) => user.send('Hello World'));
        message.reply('I just sent you a DM');}
我一直试图做
message.author.send('helloworld')但这是同样的问题

我在一个单独的文件
'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;
    }
}
const Discord=require('Discord.js');
const Client=new Discord.Client();
模块.出口={
getUtiles:函数(消息){
const user=message.indications.users.first();
const member=message.guild.member(用户);
const args=message.content.trim().split(+/+/g);
const命令=args.shift().toLowerCase();
const usrTag='';//获取提到的用户标记
this.user=用户;
this.member=成员;
this.args=args;
this.usrTag=usrTag;
返回用户、成员、参数、usrTag;
}
}

由于您在DM中执行操作,因此没有
消息。guild
,因此没有成员功能。您需要检查message.guild是否为空,然后采取相应措施。尚不清楚如何/何时运行
getUtiles
函数,因此具体解决方案取决于您。

Change
const member=message.guild.member(用户)
const member=message.member
,此代码对我有效,因此将
if(command==='rhelp'){
替换为
if(message.content.startsWith('!rhelp')){
来处理您的案例

    if (command === 'rhelp') {
    let member = message.member
    member.send("Hello")
     message.reply('I just sent you a DM');
  }

错误消息表明
message.guild
的值不包含名为
member()的方法或属性
,很可能是因为
message.guild
为空或未定义。我们看不到您在显示的代码中创建了该变量。@Alex谢谢您的评论,我在问题中添加了utiles.js。在这里找到了此片段:-您可能需要将
message.guild.member(用户)
更改为
message.guild.members.get(用户)
。此外,API最近似乎完全改变了,这将打破旧代码。我不知道您最近启动了bot,但这可能会对您有所帮助:@Alex您发送给我的链接(github.com/AnIdiotsGuide/discordjs bot-guide/blob/master/…)是针对旧版本的discord.js的。我在指南中没有找到任何关于发送私人消息的新方法。但是感谢您的帮助!
    if (command === 'rhelp') {
    let member = message.member
    member.send("Hello")
     message.reply('I just sent you a DM');
  }