Javascript 如何将文件从一个不协调频道转移到另一个不协调频道?

Javascript 如何将文件从一个不协调频道转移到另一个不协调频道?,javascript,discord,discord.js,Javascript,Discord,Discord.js,我已经做了以下几点: if(message.channel.id=='channel id 1'){ 如果(message.attachments.size>=1){ client.channels.cache.get('CHANNEL ID 2').send(`${message.author}:TEST successfull`); } } 但是现在我想要的不是“TEST successfull”而是文件,因此它会将文件发送到另一个频道。如果可能的话,我想让你在通道1发送一个文件,该文件在

我已经做了以下几点:

if(message.channel.id=='channel id 1'){
如果(message.attachments.size>=1){
client.channels.cache.get('CHANNEL ID 2').send(`${message.author}:TEST successfull`);
}
}
但是现在我想要的不是
“TEST successfull”
而是文件,因此它会将文件发送到另一个频道。如果可能的话,我想让你在通道1发送一个文件,该文件在通道1被删除(并发送到通道2)

我希望你们能帮助我理解这个问题!
亲切问候。

完全理解!据我所知,该过程将是:

  • 检查文件是否有附件(您已经这样做了)
  • 将文件发送到其他频道
  • 从原始频道中删除该文件
  • 但是,这不适用于大小超过8MB的文件,因为机器人程序仅限于8MB的文件(与Nitro用户不同,Nitro用户最多可以上传100MB的文件)。因此,您有两种选择:(A)或者从邮件中获取链接(但是您将无法删除该邮件),或者(B)处理超过8MB的邮件(可以忽略它们,也可以只删除它们,而不重新加载)

    我提供的两种解决方案也适用于图像和视频。如果不需要,只需检查附件是否具有宽度(
    attachments[0]。例如,宽度==null
    )。如果有宽度,则文件为图像或视频。否则,它就是一个文件

    方案A 您首先必须从消息中提取链接,然后在新频道中发布该链接。这很简单

    //传入的消息是“message”。
    如果(message.channel.id==='channel id 1'){
    //无需进行尺寸检查,因为如果
    //没有附件。
    message.attachments.each(附件=>{
    client.channels.cache.get('CHANNEL ID 2').send(attachment.url);
    });
    }
    
    但是,在这种情况下,不允许删除邮件,否则该文件也将从Discord的服务器中删除

    方案B 这会将原始邮件的附件发送到其他频道

    //传入的消息是“message”。
    如果(message.channel.id==='channel id 1'){
    如果(message.attachments.size>0){
    //大小检查(8000000字节为8MB)
    如果(attachment.size>8000000){/*请在下面选择一个选项。*/}
    client.channels.cache.get('CHANNEL ID 2')
    .发送({
    “文件”:message.attachments.map(attachment=>attachment.url)
    });
    }
    }
    
    在这种情况下,
    message.attachments.map(…)
    是包含已发送附件的URL数组。这些将被下载并发送回Discord。如果文件超过8MB,该怎么办取决于您,但最终都不会发送消息

    备选案文B.1 你可以选择不转发信息,而完全不做任何事情。保留原始消息,不向其他通道发送任何内容

    if(attachment.size>8000000){return;/*结束整个函数。*/}
    
    如果您计划在这部分代码之后执行其他操作,您可以简单地对表达式(即
    attachment.size<8000000
    )求反,并将发送语句(
    client.channels.cache…
    )包装在if语句中

    备选案文B.2 您可以选择删除消息而不转发消息,并发送友好的错误消息或类似消息。如果发送的文件是机密文件或类似文件,建议使用此选项

    if(attachment.size>8000000){
    message.delete();
    message.channel.send(“对不起,您的文件太大了!”);
    返回;
    }
    

    您可以将
    消息后的语句替换为所需的任何内容。删除
    。请注意,此消息还有一个
    返回
    ,只是为了确保bot不会尝试上载文件(它肯定会失败)。

    那么您使用的是discord.js还是java?JS和Java是完全不同的语言…我很抱歉,我不同意。JS非常感谢!我终于可以结束4个小时的头脑风暴了!