向点击按钮的人发送一条临时消息

OOP*_*dio 1 javascript node.js discord.js

我想在消息上显示按钮,但只允许消息的原始请求者与按钮交互。如果其他人点击了按钮,那么我想向他们发送一条秘密消息,告诉他们他们的点击被忽略了。

我已经研究这个问题有一段时间了,我不断发现人们说这是不可能的,但 Dank Memer 机器人已经做到了这一点!如果您点击其他人的消息上的按钮,那么机器人会向您发送一条消息,指出“此菜单不适合您”。它会说“只有你可以看到此消息”

目前我有这个代码

const collector = message.createMessageComponentCollector({ componentType: "BUTTON", time: 15000});

collector.on("collect",collected => {
    if(collected.user.id !== interaction.user.id){
        //collected.member.send("This command is being controlled by somebody else.");
        // What can I put in here to send an ephemeral message to collected.user?? I can send them a DM using .send(), but that's not what I want.
        return;
    }
    if(collected.customId === "confirm"){
        interaction.followUp("Success");
    }else{
        interaction.followUp("Ignore");
    }
});
Run Code Online (Sandbox Code Playgroud)

这是 Dank Memer 做这件事的照片……这让我相信这是可能的。(他这么说是为了回应我要求在一个帐户上提供排行榜,然后尝试在另一个帐户上进行导航。)

Dank Memer 做我被告知的事情是不可能的

请告诉我这是如何做到的!

8Bi*_*oda 5

根据discord.js 指南中的示例,您可以通过回复收集的对象来实现此目的,因为它代表交互:

collector.on("collect",collected => {
    // Replies to the user who clicked a button that wasn't theirs
    if(collected.user.id !== interaction.user.id){
        collected.reply({ content: `These buttons aren't for you!`, ephemeral: true })
        return;
    }
    if(collected.customId === "confirm"){
        interaction.followUp("Success");
    } else {
        interaction.followUp("Ignore");
    }
});
Run Code Online (Sandbox Code Playgroud)