dictionary - 列出公会中的所有成员 (djs v12)
问题描述
列出公会中的每个用户,无论他们是否存在 Discord。
client.on("message", (message) => {
// if (message.content == "hi") {
// if (message.author.id !== "ID") return;
const guild = client.guilds.cache.get('ID')
const users = client.users.cache.map((u) => u.id);
message.guild.members.cache.forEach(members => console.log(users && `Amount of users:`, users.length))
console.log(`Listing user ids from ${guild.name}:`);
console.log(users);
console.log(users.length)
// }
});
我当前的代码没有在我提供的公会 ID 中列出用户,机器人在服务器中。有什么我做错了吗?
解决方案
地图不使用length
,而是size
。因此,为了列出公会中的每个人,您可以执行以下操作:
client.on("message", async message => {
if(message.author.bot === true) return;
if(message.channel.type === "dm") return;
// Trigger with 'list all members'
if(message.content.toLowerCase() === "list all members") {
// Get the guild from Cache using the GuildID from the message
// Or manually put in the ID from the server your bot is in.
const guild = client.guilds.cache.get(message.guild.id);
// Force member cache to be cleared and renewed.
await guild.members.fetch({ force: true });
// Map all users.
console.log(`Listing ${guild.members.cache.size} members from ${guild.name}.`);
guild.members.cache.forEach(member => {
console.log(`${member.user.tag} (ID: ${member.id})`);
});
}
});
推荐阅读
- css - 根据Angular 2+中的用户主题选择进行剑道主题定制
- c++ - 多维数组作为类成员在堆上分配
- c# - 如何在 WCF 中获取 POST 请求数据?
- c# - ParseLiveQuery dotNet 订阅
- azure-devops - 如果手动干预任务被拒绝,是否可以将发布标记为成功?
- node.js - 连接mongodb数组
- swift - 错误:“在声明之前无法捕获‘词’”iOS swift
- angularjs - Datepicker 使用格式 ''$filter('date')($scope.dt.datetime, 'd MMM, yyyy');' 时显示今天的日期 该怎么办?使用 Angular js 日期选择器
- amazon-web-services - AWS DynamoDB | 检查地图列表是否包含特定值
- r - 使用需要四个向量的函数在 R 中迭代