如何让我的命令生效? discord.js

问题描述 投票:0回答:0

好吧,这篇文章会有多个问题,因为它们都以某种方式相关。

我正在尝试对我的机器人实施一个名为

bt!sendlove @user
的命令,这将让用户标记另一个用户,机器人将回复消息并说“向@user发送爱”,它使用以下代码:

   client.on("messageCreate", (message) => {
     if (message.content.startsWith("bt!sendlove")) {
       const userToMention = message.mentions.users.first();
       message.reply("Sent love to" +userToMention.toString());
     }
   });

所有这些代码都可以正常工作,但有些事情我想暗示,但到目前为止我没有成功。

首先,我希望发送爱后的消息是“@CommandUser 已将爱发送给@User ”我无法做到这两个,因为

@CommandUser
我尝试使用事件
const messageAuthor = message.author.id();
这应该是有效的代码,但在使用它时像这样:

   client.on("messageCreate", (message) => {
     if (message.content.startsWith("bt!sendlove")) {
       const messageAuthor = message.author.id();
       const userToMention = message.mentions.users.first();
       message.reply(+messageAuthor.toString(), "Sent love to" +userToMention.toString());
     }
   });

它返回给我一个错误:

TypeError: message.author.id is not a function
,我在网上寻找解决方案,但没有找到任何帮助。还有“!”我想在消息的末尾添加,但是因为我使用的是字符串,所以我不知道如何让它工作。

然后,我想做到这一点,所以当有人发送爱时,被发送爱的用户会从机器人那里得到一个 DM,说“你已经收到来自@CommandUser#0000 的爱!”,这再次具有“ !”问题,我不知道如何让机器人向标记的人发送 DM,也不知道如何获取作者的用户名和标签。

我也尝试让命令用户从机器人那里得到一个 DM,比如“@User#0000 收到了你的爱!”,但是当我使用

message.author.send("message")
(从我的消息来源来看,它应该发送一个 DM 到消息的作者)没有工作。再一次,无法找到用户的用户名和标签。

最后但同样重要的是,我试着做一个小秘密,让机器人说“哦,多好啊!”如果您使用了

bt!sendlove @BotName
,但没有成功。我尝试使用此代码:

if (userToMention.equals(CLIENT_ID)) {
          message.channel.send("Oh, how nice!");
       }

但它根本没有响应代码。

这是一个很长的问题,但我真的很热衷于开发这个机器人,希望我能做出这个命令。

谢谢!

discord.js command message
© www.soinside.com 2019 - 2024. All rights reserved.