📌  相关文章
📜  discord.js 获取所有具有角色的成员 - Javascript (1)

📅  最后修改于: 2023-12-03 15:00:25.746000             🧑  作者: Mango

使用 Discord.js 获取所有具有角色的成员

Discord.js 是一个用于与 Discord API 交互的 Node.js 模块。在本文中,我们将使用 Discord.js 来获取服务器中具有角色的成员列表。

  1. 首先,请确保已经安装了 Discord.js。使用以下命令进行安装:

    npm install discord.js
    
  2. 接下来,引入 Discord.js 模块并创建一个新的客户端。你需要提供你的 Discord API token。

    const Discord = require('discord.js');
    const client = new Discord.Client();
    
    client.login('your-token-goes-here');
    
  3. 当客户端登录成功后,你可以开始获取服务器中的所有成员。使用以下代码:

    const guild = client.guilds.cache.get('guild-id'); // 请替换成你的服务器 ID
    const membersWithRoles = guild.members.cache.filter(member => member.roles.cache.size > 1);
    

    注意,guild-id 必须替换为你自己的服务器 ID。

  4. 通过过滤器 member.roles.cache.size > 1,你可以获取所有具有角色的成员。在上面的代码中,membersWithRoles 变量将存储具有角色的成员列表。

  5. 最后,你可以将列表输出到控制台或发送到 Discord 频道。使用以下代码:

    membersWithRoles.forEach(member => {
      console.log(`${member.user.tag} has roles: ${member.roles.cache.map(role => role.name).join(', ')}`)
    });
    

    这将在控制台中显示每个成员及其角色列表。

注意,如果你想在 Discord 频道中发送列表,请将 console.log() 替换为 channel.send()channel 必须是 TextChannel 类型的对象。

以下是完整的演示代码示例:

const Discord = require('discord.js');
const client = new Discord.Client();

client.login('your-token-goes-here');

client.on('ready', () => {
  const guild = client.guilds.cache.get('guild-id'); // 请替换成你的服务器 ID
  const membersWithRoles = guild.members.cache.filter(member => member.roles.cache.size > 1);

  membersWithRoles.forEach(member => {
    console.log(`${member.user.tag} has roles: ${member.roles.cache.map(role => role.name).join(', ')}`)
  });
});

以上是使用 Discord.js 获取所有具有角色的成员的介绍。希望对你有所帮助!