发送某些单词时如何让我的不和谐机器人发送附件

Posted

技术标签:

【中文标题】发送某些单词时如何让我的不和谐机器人发送附件【英文标题】:How do I make my discord bot send an attachment when certain word is sent 【发布时间】:2021-08-17 18:43:32 【问题描述】:

我是使用不和谐机器人的新手,并决定尝试一下,一开始我只是想让机器人发送附件(图像、视频等),例如,“sendpicture”是在聊天中写的。

我已多次更改代码,但每次都收到相同的错误,“附件不是构造函数”或“Discord.Attachment 不是构造函数”。

我当前的代码如下所示:


const client = new Discord.Client();

client.once(`ready`, () => 
    console.log("online");
);

const PREFIX = "!"

//replying with a text message
client.on('message', msg => 
    if (msg.content === 'test1') 
      msg.channel.send('working');
    
  );
  
//replying with attachment
client.on("message", function(message)
   
    let args = message.content.substring(PREFIX.lenght).split(" ");

    switch(args[0])  
        case "test2": 
            message.channel.send(new Discord.Attachment(`.a/this/bestpic.png`, `bestpic.png`) )
            .then(msg => 
                //aaaaaaaa
            )
            .catch(console.error);
            break;
    
)

提亚

【问题讨论】:

【参考方案1】:

你有没有试过看官方的documentation

我认为你不应该使用new Discord.Attachment(),试试这个吧:

switch(args[0])  
    case "test2": 
        message.channel.send(
            files: [
                attachment: '.a/this/bestpic.png',
                name: 'bestpic.png'
            ]
        ).then(msg => 
                //aaaaaaaa
        ).catch(console.error);
    break;

【讨论】:

【参考方案2】:

Discord.Attachment() 不是一个东西,我相信你正在寻找的答案是这个:)

new Discord.MessageAttachment()

【讨论】:

【参考方案3】:

试试这个代码,简短易用。

if (message.content.toLowerCase() === 'word')  //only word, without prefix
        message.channel.send( files: ['./path_to_your_file'] )
    

【讨论】:

以上是关于发送某些单词时如何让我的不和谐机器人发送附件的主要内容,如果未能解决你的问题,请参考以下文章

如何让我的不和谐机器人在聊天中显示,例如“机器人正在打字”

如何让我的不和谐机器人回复“跟进”消息

我如何向不和谐请求添加附件?

如何让我的不和谐机器人响应没有前缀的消息

Bot 不发送附件 |不和谐.js

单词列表python不和谐中的表情符号