【发布时间】:2022-02-16 23:40:25
【问题描述】:
我正在构建一个 Discord 机器人,更具体地说,是一个角色颜色命令。我制作了这个命令的一个版本,它有效。唯一的问题是它的效率极低,它需要大约 5 分钟才能响应。这是因为在执行任何操作之前,机器人必须检查很多“if”语句和其他内容。该文件有 129K+ 行,我的整个编辑程序滞后。我现在有了一个新计划,可能效率更高:
机器人会检查成员是否有任何以“SRC -”开头的角色。 SRC 表示服务器角色颜色,只是每个角色都有的一个专门用于装饰的名称。我所有的颜色角色名称都以“SRC - name”开头,如果检测到,请删除它们。等待此过程,然后添加新颜色。我有 205 个颜色角色。我可以这样做:
message.guild.members.cache
.get(user.id)
.roles.remove(roleone);
message.guild.members.cache
.get(user.id)
.roles.remove(roletwo);
这行得通,但又一次效率低下。删除和添加角色时,Discord 并没有那么快。当我运行测试时,它没有给我任何错误。尽管如此,我还是认为出了点问题,因为我的角色没有改变。当我运行调试并再次检查时,角色终于更新了。更新之前只需要一段时间。我想让这个更有效率。以下是一些代码示例:
角色添加,角色移除后:
if (args[0] === "1") {
message.guild.members.cache
.get(user.id)
.roles.add(roleone);
message.channel.send(errmsg);
console.log(logmsg);
else if (args[0] === "2") //etc
所以我的问题是,有人知道如何检测成员是否有任何以name 开头的角色,以便只能删除这些角色吗?
【问题讨论】:
标签: javascript discord discord.js