Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/411.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 响应discord.js中的消息_Javascript_Discord_Discord.js - Fatal编程技术网

Javascript 响应discord.js中的消息

Javascript 响应discord.js中的消息,javascript,discord,discord.js,Javascript,Discord,Discord.js,我想向有人发送以s#开头的消息的频道发送消息“E”。我有两个问题: 我有一个函数: 我不知道如何用某人发送的消息“msg”调用这个函数 当我弄明白如何做到这一点时,我想添加一个channel.send(“E”),但我不知道如何获取消息发送到的频道的id client.on('message',message=>{ if(message.content.startsWith('s#'))console.log('s#')//检查消息是否以s开头# }); message.channel.sen

我想向有人发送以s#开头的消息的频道发送消息“E”。我有两个问题:

  • 我有一个函数:
  • 我不知道如何用某人发送的消息“msg”调用这个函数

  • 当我弄明白如何做到这一点时,我想添加一个
    channel.send(“E”),但我不知道如何获取消息发送到的频道的id
  • client.on('message',message=>{
    if(message.content.startsWith('s#'))console.log('s#')//检查消息是否以s开头#
    });
    
  • message.channel.send('这是对在该频道中发送的消息的回复');
    
    见文件:

    编辑(带读取功能的整个代码):

    const Discord=require('Discord.js');
    const client=new Discord.client();
    client.on('message',message=>{
    阅读(信息);
    });
    函数读取(消息){
    if(message.content.startsWith('s#'))console.log('s#');
    }
    client.login('your-token-here');
    
    如果要使用读取功能,有两种方法

    正如“病童”所说

    function read(msg){
    if(msg.content.startsWith('s#'){
    return true;
    }
    else{
    return false;
    }
    }
    
    否则,

    function read(msg){
    const data = msg.content.split('')
    if(data[0] === 's' && data[1] === '#'){
    return true;
    }
    else{
    return false;
    }
    }
    
    要调用此函数,只需添加消息事件

    client.on('message' , message=> {
    const res = read(message)
    if(res){
    //The message starts with s#
    }
    else{
    //It doesn't start with s#
    }
    })
    

    有一个名为
    message
    的事件,每当有人在服务器中发送消息时就会发出该事件。此事件返回一个
    消息
    对象,该对象包含有关该消息的所有信息,如内容、作者、频道、成员等。因此,要将内容作为回复发送回来,可以执行以下操作:

    client.on('message', message => {
        if (message.content.startsWith('s#')) {
            message.channel.send('E');
        }
    }
    

    另外,我看到您在
    ready
    函数中执行此操作:
    msg[0]
    。这不是访问
    消息
    对象内容的方式。它不是数组。您可以使用
    let text=message.content
    获取消息的内容。此文本为字符串类型并存储消息文本。

    这不是问题,只需将message.content作为参数传递即可。如何操作?非常感谢,但为什么不将
    client.on('message',read(message))?我不知道为什么它不起作用。如果条件为真,您可以添加任何需要的内容。好的,但是每次有人发送消息时我如何调用该函数?好的,但对于
    client.on('message',read(message.content))它表示消息未定义。
    
    client.on('message', message => {
        if (message.content.startsWith('s#')) {
            message.channel.send('E');
        }
    }