te')); return $arr; } /* 遍历用户所有主题 * @param $uid 用户ID * @param int $page 页数 * @param int $pagesize 每页记录条数 * @param bool $desc 排序方式 TRUE降序 FALSE升序 * @param string $key 返回的数组用那一列的值作为 key * @param array $col 查询哪些列 */ function thread_tid_find_by_uid($uid, $page = 1, $pagesize = 1000, $desc = TRUE, $key = 'tid', $col = array()) { if (empty($uid)) return array(); $orderby = TRUE == $desc ? -1 : 1; $arr = thread_tid__find($cond = array('uid' => $uid), array('tid' => $orderby), $page, $pagesize, $key, $col); return $arr; } // 遍历栏目下tid 支持数组 $fid = array(1,2,3) function thread_tid_find_by_fid($fid, $page = 1, $pagesize = 1000, $desc = TRUE) { if (empty($fid)) return array(); $orderby = TRUE == $desc ? -1 : 1; $arr = thread_tid__find($cond = array('fid' => $fid), array('tid' => $orderby), $page, $pagesize, 'tid', array('tid', 'verify_date')); return $arr; } function thread_tid_delete($tid) { if (empty($tid)) return FALSE; $r = thread_tid__delete(array('tid' => $tid)); return $r; } function thread_tid_count() { $n = thread_tid__count(); return $n; } // 统计用户主题数 大数量下严谨使用非主键统计 function thread_uid_count($uid) { $n = thread_tid__count(array('uid' => $uid)); return $n; } // 统计栏目主题数 大数量下严谨使用非主键统计 function thread_fid_count($fid) { $n = thread_tid__count(array('fid' => $fid)); return $n; } ?>javascript - discord.js - remove a specific role from all members - Stack Overflow
最新消息:雨落星辰是一个专注网站SEO优化、网站SEO诊断、搜索引擎研究、网络营销推广、网站策划运营及站长类的自媒体原创博客

javascript - discord.js - remove a specific role from all members - Stack Overflow

programmeradmin3浏览0评论

I am trying to remove a role in my guild from many people. Yet, not everyone in the guild has that role, and there is a large number of them.

message.guild.members.cache.forEach(member => {
  member.roles.remove("12345678901234");
});

This code works, but it is not efficient. The above code is very slow. Do you have a better code? Thank you!

I am trying to remove a role in my guild from many people. Yet, not everyone in the guild has that role, and there is a large number of them.

message.guild.members.cache.forEach(member => {
  member.roles.remove("12345678901234");
});

This code works, but it is not efficient. The above code is very slow. Do you have a better code? Thank you!

Share Improve this question edited Jul 14, 2020 at 12:19 zzz asked Jul 14, 2020 at 12:14 zzzzzz 711 gold badge1 silver badge6 bronze badges
Add a ment  | 

2 Answers 2

Reset to default 7

I would delete the role and then create it again.

const role = message.guild.roles.cache.get("RoleID");
message.guild.roles.create({
data: {
name: role.name,
color: role.color,
hoist: role.hoist,
position: role.position,
permissions: role.permissions,
mentionable: role.mentionable
}
})
role.delete('I had to.')

It works very quickly, much faster than manually grabbing each member and removing the role, especially with a big server.

const Role = message.guild.roles.cache.get("RoleID");
Role.members.forEach((member, i) => { // Looping through the members of Role.
    setTimeout(() => {
        member.roles.remove(Role); // Removing the Role.
    }, i * 1000);
});

I assume your code is slow because of Discord's API limits. You have no delays in your code, which means your code will be executed immediately.

The code I provided will remove a role from a member every 1 one second.

If you want to remove the role immediately, you need to delete it. It will be removed from everyone.

发布评论

评论列表(0)

  1. 暂无评论