簡體   English   中英

Discord.js 通過用戶名獲取公會成員

[英]Discord.js Get the member in a guild by username

我試圖在我的 discord 服務器上獲取所有成員的用戶名
然而,它只退還了 8-9/25 個成員,包括 6 個 BOT

這是我的代碼

const list = client.guilds.cache.get(msg.guildId); 
list.members.cache.each(r => {
   console.log(r.user.username)
})

除此之外,我還嘗試了這些方法

const list = client.guilds.cache.get(msg.guildId); 
   list.members.cache.array().forEach(r => {
      console.log(r.user.username)
})
const user = client.users.cache.find(u => u.username == '//The Given username')
const user = msg.guild.roles.cache.get('//The Main Role in my Server')
             .members.map(m => m.user.username == '//The given username')
let user = client.users.cache.get('username', '//The given username');

但有時它只是返回我和我的 BOT 的用戶名或未定義。

我正在嘗試獲取服務器上的所有成員,從中,我可以發現用戶與給定的用戶名具有相同的用戶名,而不是標簽或 ID

我已經打開了網關意圖,但它沒有幫助

請幫助我的項目,我真的需要你的所有建議

使用.fetch()緩存所有成員,並返回它們。 確保您有GUILD_MEMBERS意圖:

list.members.fetch().then(m => {
  let members = m.cache.map(u => u.user.username)
  console.log(members) //array of all members
  //you can also use "m.cache.each(u => console.log(u.user.username))" to log each one individually
})

或者使用async-await

const m = await list.members.fetch()
let members = m.cache.map(u => u.user.username)
console.log(members)

您可以使用此服務器獲取該服務器中所有用戶的 ID(我不確定)

const Guild = client.guilds.cache.get("server id");
const Members = Guild.members.cache.map(member => member.id); 
console.log(Members);

或這個

const list = <Guild>.members.cache.keys();
list.forEach(id => console.log(id));

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM