Javascript discord中的私有消息命令

Javascript discord中的私有消息命令,javascript,command,discord.js,private-messaging,Javascript,Command,Discord.js,Private Messaging,我正在使用javascript为discord机器人创建RP配置文件。我的对话从一个频道开始,然后通过bot转到私人消息。第一个问题被询问,用户的回答存储在数据库中。这很好 当我尝试使用bot的私有消息中的另一个命令来移动到RP概要文件创建的下一步时,似乎出现了问题。它似乎没有注册正在使用的命令。命令甚至可以用于机器人的私人消息传递吗 我使用了与第一个问题相同的代码,修改了需要修改的内容,但没有任何内容会破坏代码。它看起来甚至看不到第二个命令,它存储在一个单独的命令文件中。我该怎么做 modu

我正在使用javascript为discord机器人创建RP配置文件。我的对话从一个频道开始,然后通过bot转到私人消息。第一个问题被询问,用户的回答存储在数据库中。这很好

当我尝试使用bot的私有消息中的另一个命令来移动到RP概要文件创建的下一步时,似乎出现了问题。它似乎没有注册正在使用的命令。命令甚至可以用于机器人的私人消息传递吗

我使用了与第一个问题相同的代码,修改了需要修改的内容,但没有任何内容会破坏代码。它看起来甚至看不到第二个命令,它存储在一个单独的命令文件中。我该怎么做

module.exports.run=async(bot、消息、args)=>{
message.author.send(`第二个问题,**你的斗殴者或角色的年龄是多少?**`)
.then((newmsg)=>{//Now newmsg是您发送给bot的消息
newmsg.channel.awaitMessages(response=>response.content{
最高:1,
时间:30万,
错误:['time'],
})。然后((收集)=>{
newmsg.channel.send(`你的斗殴者的年龄是:*${collected.first().content}**
如果您同意此年龄,请键入!profilegender继续创建配置文件!
如果要编辑您的年龄,请键入!profileage`)
con.query(`updateprofile SET age='${collected.first().content}'其中id=${message.author.id}`);
日志(“1条记录已更新!”)
}).catch(()=>{
newmsg.channel.send('请提交角色的年龄。若要重新创建配置文件,请在服务器上的配置文件创建通道中键入“!profilecreate”命令');
});
});
}
根据评论回答问题

在您的
客户端内部。在(“消息”)
上有一个if检查,如果频道是a,则退出该功能


为了避免这种情况,只需删除这一行:通过这种方式,bot将执行命令,而不考虑通道类型。如果您希望仅在某些通道中允许某些命令,则可以在
客户端.on(“消息”)
中或在命令本身的功能中执行该操作。

您确定在
客户端.on(“消息”)
中没有任何东西可以阻止bot识别该命令吗(可能是检查前缀、特定频道或诸如此类的东西…。您可以发布代码的这一部分吗?无论如何,通过DM使用命令没有问题,但如果您的代码仅依赖(而不是)它可能会导致一些问题(通常很容易修复)这可能是问题。我甚至没有考虑过。我用代码的一部分更新了OP。它确实提到了一个带有返回的通道类型,所以它看起来不像在命令中等待消息中的任何东西。虽然我不确定如何修复它。只需删除提到“DM”的行。作为消息类型?是的,该行告诉bot如果通道是DM,则退出该功能。请记住,如果删除,则bot将允许通过DM执行每个命令。如果这对您来说没问题,您可以删除该消息类型。如果您只希望通过DM使用某些命令,则可能需要添加一个if检查,该检查将返回通道is a DM&&该命令不被允许我指定它需要在某个通道中才能执行我的两个其他命令,因此这不应该是一个问题。专用消息命令将非常少,所有其他命令都将指定给服务器中的某些通道,因此根据我的需要指定它应该不会太麻烦。t非常感谢。如果你想把这些评论的要点作为答案发布,这样我就可以把它标记为已回答,那太好了。太好了!我刚刚添加了一个答案
if(message.channel.type === "dm") return;