好吧,这篇文章会有多个问题,因为它们都以某种方式相关。
我正在尝试对我的机器人实施一个名为
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!");
}
但它根本没有响应代码。
这是一个很长的问题,但我真的很热衷于开发这个机器人,希望我能做出这个命令。
谢谢!