如何在 Discord.js 中获取名称数组

希拉兹

我是 discord.js 的新手,无法获取服务器所有成员的姓名。这是代码:

**const List = bot.guilds.cache.get("88888952704"); // Getting the guild.
const Members = List.members.map((member) => {
    member.displayName;
});**

//Basic hello
bot.on("message", (msg) => {
    let args = msg.content.slice(Prefix.length).split(" ");

    switch (args[0]) {
        //For Testing
        case "ping":
            msg.channel.send("Pong!");
            break;
        //Now Serious
        case "info":
            if (args[1] == "version") {
                msg.reply("I am currently at version " + botVersion + "!");
            } else if (args[1] == null) {
                msg.channel.send(
                    "Please be specific about what info you want like: !info version "
                );
            }
            break;
        case "cleartill":
            if (!args[1]) {
                msg.reply("Please be specific: Error 01B%s@1");
            } else {
                msg.channel.bulkDelete(args[1]);
                break;
            }
        case "embed":
            const embed = new Discord.MessageEmbed()
                .setTitle("User Information:")
                .addField("Player Name:", msg.author.username)
                .setColor("#FFFF00")
                .addField("Version:", botVersion);
            msg.channel.send(embed);
            break;
        case "whoisa":
            if (args[1] == null) {
                msg.reply("Please enter the second argument.");
            } else {
                msg.channel.send(Members + " is a " + args[1]);
            }
    }
});

我想获取服务器中任何人的随机名称,并回复输入!whoisa [something]并给出答案的人[something][args[1]]. 请帮忙。提前致谢!

佐尔特·梅萨罗斯

拥有公会后,您可以使用members.fetch(). 它返回一个具有.map()方法的集合,因此您可以迭代该集合并displayName像这样返回它们

const guild = bot.guilds.cache.get("824977762186952704");
const members = await guild.members.fetch();

const names = members.map((member) => member.displayName);

// names is an array of names
console.log(names);

集合还有一个.random()方法,您可以使用方法从该集合中获取随机成员。返回的成员是 a GuildMember,因此您可以获取其显示名称,向他们发送 DM 等。

// randomMember is a guild member
const randomMember = members.random();

如果你想在你的消息事件中使用它,你甚至可以从消息中获取公会当我在await这里使用时,请确保asyncbot.on("message", async (msg) => {.

case 'whoisa':
  if (!args[1]) 
    return msg.channel.send('Please enter an argument');

  const members = await msg.guild.members.fetch();

  msg.channel.send(`${members.random()} is a ${args.slice(1).join(' ')}`);

在此处输入图片说明

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章