如何检查用户是不是在公会中

Posted

技术标签:

【中文标题】如何检查用户是不是在公会中【英文标题】:How to check if a user is in a guild如何检查用户是否在公会中 【发布时间】:2021-07-20 00:15:07 【问题描述】:

伙计们,我目前正在处理 quick.db 排行榜命令,但它返回全球排行榜,但我希望它只返回 message.guild 中的用户名称。

我目前的 lb 代码是这样的

const Discord = require('discord.js')
const db = require('quick.db')

module.exports.run = async (bot, message, args) => 
const ic = '<:mon:834428547064922142>'
    let money = db.fetchAll(message.guild.id).filter(data => data.ID.startsWith(`mon_`)).sort((a, b) => (b.data-a.data))
    money.length = 25;
    var finalLb = ""; 
    for (var i in money) 
      finalLb += `**$money.indexOf(money[i])+1. $(await bot.users.fetch(money[i].ID.split('_')[1])).username ? (await bot.users.fetch(money[i].ID.split('_')[1])).username : "Unknown User#0000"** : $ic $parseInt(JSON.stringify(money[i].data))\n`;
    
    const embed = new Discord.MessageEmbed()
    .setAuthor(`Leaderboard`, message.guild.iconURL())
    .setColor("RANDOM")
    .setDescription(finalLb)
    .setFooter(bot.user.tag, bot.user.displayAvatarURL())
    .setTimestamp()
    message.channel.send(embed);

module.exports.help = 
  name:"rich",
  aliases: [""]

【问题讨论】:

【参考方案1】:
const member = message.guild.members.cache.get('user id');
  if(!member)
    // what to do if member is not provided
  

【讨论】:

【参考方案2】:

尝试在你的代码中添加这个

if(guild.members.cache.has("The UserID"))
    //Add the user in leaderboard
    //finalLb += `**$money. .........your code

【讨论】:

我建议在上面打电话给guild.users.fetch() 既然他有message,我以为他想改为message.guild guild 作为指向他们想要从任何公会获取的指针

以上是关于如何检查用户是不是在公会中的主要内容,如果未能解决你的问题,请参考以下文章

如何检查 Flutter Firestore 中是不是存在用户文档?

Symfony 2:如何检查用户是不是未在模板中登录?

如何在目标c中检查用户是不是登录?

如何检查用户是不是在不和谐中扮演角色

MySQL:如何检查是不是列出了用户

如何检查用户是不是在 php 中登录?