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)
我希望你们能帮助我理解这个问题!
亲切问候。完全理解!据我所知,该过程将是:
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个小时的头脑风暴了!