discord 机器人通过 /commands 激活另一个机器人或检测使用机器人命令的用户

A discord bot activating another bot via /commands or detect user who used a bot command

好的,所以我正在尝试执行以下操作: 我使用的是 Disboard 机器人,并且预先奖励了碰撞的用户。这不是问题,因为命令是“!d bump”,所以我可以让我的机器人也对它做出反应。 它们现在更改为 / 命令,所以我的机器人不再对它做出反应。

所以我看到了两种可能性。 我要么发出命令,然后(如果可能的话)我的机器人撞到而不是用户,而用户只是激活我的机器人。 或者我检测到 Bot 消息和(如果可能的话)谁使用了命令并从那里继续。

感谢您的帮助和想法,祝您今天愉快!

机器人无法使用其他机器人的斜杠命令;但是,您可以检测到有人何时使用某个机器人的命令。我将在我的回答中使用 discord.js v13

client.on("messageCreate", (message) => {
    // check if the message is a slash command
    if (message.type !== "APPLICATION_COMMAND") return;

    message.interaction.commandName

    // if so then you can access the user who triggered the command with
    message.interaction.user;
});

如果你想检查某个命令,那么你可以检查 message.interaction.commandName,如果你只想听某个机器人的命令,那么你可以检查 message.author.id.

我已经为此做了很多工作,但这是我的做法:

if (message.type == "APPLICATION_COMMAND" && message.channel.id == "971729505708290099" && message.interaction.commandName == "bump") {
    message.channel.permissionOverwrites.edit(message.guild.roles.everyone, {
        VIEW_CHANNEL: false
    })
    setTimeout(function () {
        message.channel.permissionOverwrites.edit(message.guild.roles.everyone, {
            VIEW_CHANNEL: true
        })
    }, 7200000);
}

在此代码中,当有人使用斜杠命令 /bump 时,它会隐藏频道,然后在 2 小时后取消隐藏。希望有所帮助:)

(这段代码在client.on("messageCreate", (message) =>{}里面)

除了隐藏 channels/showing 它们之外,如果需要,您还可以只 ping 某个角色。