为了账号安全,请及时绑定邮箱和手机立即绑定

Discord.JS 如何等待会员反应

Discord.JS 如何等待会员反应

梦里花落0921 2023-05-11 14:27:39
我正在制作机器人来管理我的多个 Discord 公会。我想制作确认系统,例如:用户做了 X 件事,Bot 以足够的渠道发送消息,Bot 等待用户使用 :thumbdsup: 或 :thumbsdown: 最多 60 秒做出反应如果竖起大拇指,则执行 A,否则 - 执行 B。如果时间到了,则执行 C 动作由于我不知道,我该如何构建这样的系统。
查看完整描述

1 回答

?
慕丝7291255

TA贡献1859条经验 获得超6个赞

添加和设置事件监听器


首先,我们首先定义 discord.js 并添加一个事件监听器:


const Discord = require('discord.js'); //defining discord

const client = new Discord.Client(); //getting your bot


client.on('message', async message => {  //when a user sends a message


});

然后你需要告诉机器人它在那之后做了什么:


const Discord = require('discord.js'); //defining discord

const client = new Discord.Client(); //getting your bot


client.on('message', async message => {  //when a user sends a message

    if (message.author.bot) return; //If a bot sent the message we want to ignore it.


    if (message.content.toLowerCase() === 'what message your looking for' {  //what your looking for (make sure this string is all in lower case)

        //what you want the bot to do after the message you are looking for has been sent

    }

});

现在,如果您希望机器人将反应添加到消息中,您将执行以下操作:


const Discord = require('discord.js'); //defining discord

const client = new Discord.Client(); //getting your bot


client.on('message', async message => {  //when a user sends a message

    if (message.author.bot) return; //If a bot sent the message we want to ignore it.


    if (message.content.toLowerCase() === 'what message your looking for' {  //what your looking for (make sure this string is all in lower case)

        await message.react('👍'); //reacting to the message with a thumbs up emoji

        await message.react('👎'); //reacting to the message with a thumbs down emoji

    }

});

如果您希望机器人回复消息,请使用:


const Discord = require('discord.js'); //defining discord

const client = new Discord.Client(); //getting your bot


client.on('message', async message => {  //when a user sends a message

    if (message.author.bot) return; //If a bot sent the message we want to ignore it.


    if (message.content.toLowerCase() === 'what message your looking for' {  //what your looking for (make sure this string is all in lower case)

        message.channel.send('The bots message here') //what you want the bot to reply with

    }

});

等待反应


这一切都取决于您是否要等待对机器人消息或用户消息的反应。

如果您想等待机器人消息的反应,请使用:


const Discord = require('discord.js'); //defining discord

const client = new Discord.Client(); //getting your bot


client.on('message', async message => {  //when a user sends a message

    if (message.author.bot) return; //If a bot sent the message we want to ignore it.


    if (message.content.toLowerCase() === 'what message your looking for' {  //what your looking for (make sure this string is all in lower case)

        message = await message.channel.send('The bots message here') //waiting for the message to be sent


        const filter = (reaction, user) => { //filtering the reactions from the user

            return (

            ['👎', '👍'].includes(reaction.emoji.name) && user.id === message.author.id

            );

        }

        message.awaitReactions(filter, { max: 1, time: 60000, errors: ['time'] }) //awaiting the reactions - remember the time is in milliseconds

        .then((collected) => {

        const reaction = collected.first();


        if (reaction.emoji.name === '👍') { //if the reaction was a thumbs up

            //A action

            reaction.users.remove(message.author.id) //If you wanted to remove the reaction

      } else { //if the reaction was a thumbs down

        //B action

        reaction.users.remove(message.author.id) //If you wanted to remove the reaction

      }

    }).catch((collected) => { //when time is up

      //C action

    });

    }

});


如果你想等待来自用户消息的消息,你会做同样的事情,除了改变:


if (message.content.toLowerCase() === 'what message your looking for' {  //what your looking for (make sure this string is all in lower case)

    message.channel.send('The bots message here') //sending the message but not awaiting reactions from it



查看完整回答
反对 回复 2023-05-11
  • 1 回答
  • 0 关注
  • 95 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信