使用 Discord.js 的批准/拒绝系统

Posted

技术标签:

【中文标题】使用 Discord.js 的批准/拒绝系统【英文标题】:Approval/Denial System using Discord.js 【发布时间】:2021-08-23 19:56:27 【问题描述】:

DISCORD.JS

嘿!所以,最近,我在一个包含一个惊人机器人的服务器上。那是一个批准或拒绝系统。那么,会发生什么,例如,有人会签署 google 表单,然后 google 脚本将通过嵌入的 webhook(我已经知道该代码)发送响应到名为“awaiting- result”,现在,机器人会自动为消息添加反应,例如,✅ 和 ❌。然后,工作人员将对这些表情符号中的任何一个做出反应,并将其发送到两个不同的渠道。如果反应是✅,那么机器人将从原始消息中删除所有反应,从谷歌表单响应中复制确切的嵌入,并将其发送到名为“accepted-logs”的频道,上面有一条消息“你的日志有已被 $person 接受”。如果它是❌,它会做与批准的完全相同的事情。我一直在努力,但找不到。我所需要的只是机器人代码,而不是表单脚本。所以基本上,你做出反应,复制准确的嵌入,发送到另一个频道。会很有帮助的,谢谢!

【问题讨论】:

【参考方案1】:

有用的链接列表:

    https://discordjs.guide/popular-topics/reactions.html#unicode-emojis https://discordjs.guide/popular-topics/collectors.html#reaction-collectors https://discordjs.guide/popular-topics/embeds.html#using-the-embed-constructor

我很确定您可以将嵌入内容存储在一个对象中,然后您可以等待收集器收集 ✅ 或 ❌,检查用户是否具有管理员角色(等),然后找到频道embed也需要发送

let channel = client.channels.cache.find(channel => channel.name === "name");

然后您可以通过

将嵌入发送到频道
channel.send(embed);

要进行嵌入,您只需:

let embed = new Discord.MessageEmbed();

然后您可以向其中添加字段(参见链接 #3)。然后你可以简单地做

let approvalChannel  = client.channels.cache.find(channel => channel.name = "admin-approval");
approvalChannel.send(embed);
// Code for reaction collector

【讨论】:

以上是关于使用 Discord.js 的批准/拒绝系统的主要内容,如果未能解决你的问题,请参考以下文章

Discord.js 机器人“未处理的承诺拒绝类型错误:无法读取未定义的属性 255890520990154752”

是否可以在服务器外邀请使用 Discord.js 的人?

有没有办法在 discord.js 中发出 ping 命令? [复制]

在 ASP.NET Core 中应用 Microsoft Authenticator App 来批准/拒绝 2FA

将数组划分为嵌入页面 - Discord.JS

如何添加一种方法来检查某人是不是已经在部落中/或者他们是不是是 Discord 中的部落所有者 - Discord.JS