如何检查用户是否指定了频道?

时间:2019-12-30 03:37:29

标签: javascript discord discord.js

我正在尝试在Discord机器人中说一个命令,在该命令中您指定发送消息的通道,如果不指定通道,它将在命令后发送所有内容(args 1+),否则将在指定的频道(args 2+)之后发送所有内容

if(command === `${prefix}say`) {
    if(!message.member.roles.has(`337402636015894528`)) return;
    msg = args.slice(2).join(" ");
    let channel = message.mentions.channels.first() || message.guild.channels.find("name", args[1]) || message.channel;
    message.delete();
    channel.send(msg);
}

这是我的代码,但是问题是要检查用户是否指定了通道,如果没有,则将msg设置为args.slice(1).join(“”),但我没有如何检查用户是否指定了频道。有人知道吗?预先感谢。

我想出了解决方案,谢谢大家的帮助。

let channel = message.mentions.channels.first() || message.guild.channels.find("name", args[1]);
if(!channel) { 
    channel = message.channel;
    msg = args.slice(1).join(" ");
}

2 个答案:

答案 0 :(得分:0)

在消息中标记频道看起来像这样
<#channelid>
示例:
<#316648154927938738>
因此您可以与之匹敌。

或者,该api确实会返回message object中提到的频道。
这样也可以使用。
我还没有使用discord.js,但是我敢肯定他们提供了一种很容易访问它的方法。

答案 1 :(得分:0)

你可以简单地检查参数是否是一个数字

if(isNaN(args[0])) {
// stuff
}