Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/419.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 返回命令中提到的通道的通道ID_Javascript_Discord.js - Fatal编程技术网

Javascript 返回命令中提到的通道的通道ID

Javascript 返回命令中提到的通道的通道ID,javascript,discord.js,Javascript,Discord.js,标题说明了一切。我在node.js中创建了一个不协调的bot,我试图添加的一部分是.setup命令,以减少bot对手动更改client.channels.get().send()值的依赖,从而使它在将来更容易设置 无论如何,在我的例子中,我试图让用户回复带有频道提及的消息(例如#welcome),并让机器人返回该ID并将其保存到变量中 目前,我有: 功能设置频道(){ client.channels.get(setupChannelID).send('好的,您希望我将提醒发送到哪个频道?');

标题说明了一切。我在node.js中创建了一个不协调的bot,我试图添加的一部分是
.setup
命令,以减少bot对手动更改
client.channels.get().send()
值的依赖,从而使它在将来更容易设置

无论如何,在我的例子中,我试图让用户回复带有频道提及的消息(例如#welcome),并让机器人返回该ID并将其保存到变量中

目前,我有:

功能设置频道(){
client.channels.get(setupChannelID).send('好的,您希望我将提醒发送到哪个频道?');
client.on('message',message=>{
checkChannel=message.notices.channels.first().id;
client.channels.get(setupChannelID.send('好的,我会将提醒发送到该频道');
});
}
消息.提及.频道
返回未定义。

我知道
message.indications.channels.first().id
位在用户而不是频道时起作用,是否有其他方式在消息中获得频道提及

我只想从消息中删除所有非整数,因为这样可以方便地使用ID和提及,并且它会从中为您返回ID,因为提及仅是围绕着它们的ID。要做到这一点,您将使用

message.content.replace(/\D/g,'')
这样,您的代码将如下所示:

function setupChannel() {
  client.channels.get(setupChannelID).send('Alright. What channel would you like me to send my reminders to?');
  client.on('message', message => {
    checkChannel = message.content.replace(/\D/g,'');
    client.channels.get(setupChannelID).send('Ok. I\'ll send my reminders to <#' + checkChannel + '>.');
  });
}
功能设置频道(){
client.channels.get(setupChannelID).send('好的,您希望我将提醒发送到哪个频道?');
client.on('message',message=>{
checkChannel=message.content.replace(/\D/g');
client.channels.get(setupChannelID.send('好的,我将把我的提醒发送到');
});
}

从这里你将永远得到一个ID。我们可以把ID围起来,让它成为一个提词。

以下是我发现的最简单易懂的方式:

message.guild.channels.cache.get(args[0]。替换(“”,))

但这并不是我们真正想要的,我们可以正常使用
message.indications.channels.first().id
应该首先工作,我会添加一个检查,如果有提到某个频道,如果是发送消息,如果不是什么都不做或者你想做的任何事情want@GillesHeinesch然而,,如果你想在你的信息中多渠道提及,这是个坏主意,因为它们不是按提及顺序排序的,而是按渠道年龄排序的。