提问者:小点点

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


我正在尝试在一个Discord bot中创建一个say命令,其中您指定了一个发送消息的通道,如果您没有指定通道,它将在命令之后发送所有内容(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(" ");
}

共1个答案

匿名用户

在邮件中标记通道类似于
<#channelid>
示例:
<#316648154927938738>
,以便您可以与之匹配。

或者,api确实返回消息对象中提到的通道。
这样也可以使用。
我没有使用过discord.js,但我确信它们提供了一种非常容易地访问通道的方法。