【问题标题】:Discord.py status does not show the member online status, but shows offlinediscord.py status 不显示会员在线状态,而是显示离线
【发布时间】:2020-11-15 17:30:55
【问题描述】:

enter image description here我有一个命令可以检查给定玩家和机器人的信息。最后一个错误是在显示活动和成员时,因为当您输入一个可用的成员时,它表明他不可用。 我使用这个命令:member.status

`client = discord.Client()
 intents = discord.Intents.default()
 intents.presences = True
 client = commands.Bot(command_prefix="q.", intents=intents)
 client.remove_command('help')
 
 @client.command()
async def getname(ctx, member: discord.Member = None):
member = ctx.author if not member else member
roles = [role for role in member.roles]
embed = discord.Embed(
    clour=member.color, timestamp=ctx.message.created_at, color=0x00ff00)
embed.set_author(name=f"Nazwa użytkownika: {member}")
embed.set_thumbnail(url=member.avatar_url)
embed.set_footer(
    text=f"Utworzony {ctx.author}", icon_url=ctx.author.avatar_url)
embed.add_field(name="ID", value=member.id)
embed.add_field(name="Pseudomin", value=member.display_name)
embed.add_field(
    name="Konto Utworzone:",
    value=member.created_at.strftime("%d.%m.%Y,%H:%M.%S"))
embed.add_field(
    name="Dołączył:", value=member.joined_at.strftime("%d.%m.%Y,%H:%M.%S"))
embed.add_field(
    name=f"Rola ({len(roles)})",
    value=" ".join([role.mention for role in roles]))
embed.add_field(name="Najwyższa rola", value=member.top_role.mention)
embed.add_field(name="Status", value=member.status)
embed.add_field(name="Aktywność", value=member.activity)
embed.add_field(name="Bot", value=member.bot)
embed.add_field(name="Status mobilny", value=member.mobile_status)
embed.add_field(name="Nitro", value=member.premium_since)
embed.add_field(name="Kolor nazwy", value=member.color)
embed.add_field(name="Kanał Głosowy", value=member.voice)
embed.add_field(name="Status na komputerze", value=member.desktop_status)
await ctx.send(embed=embed)

`

【问题讨论】:

  • 您是否启用了intents.presences?
  • 我没有打开它,它是否到期了,我应该把它放在我设置了机器人前缀的地方吗?
  • 请附上您收到的错误声明以供澄清
  • i.stack.imgur.com/oGX60.png 显示此用户的状态,如图所示,处于离线状态,未激活。
  • 您应该将 intents = discord.Intents.default() 替换为 intents = discord.Intents.all() 并确保您的意图已在您的不和谐应用程序 (discord.com/developers/applications) 中的 Bot 部分中启用。

标签: discord.py


【解决方案1】:

您应该从不和谐开发者门户为您的机器人激活服务器成员意图,然后您必须为您的机器人提供如下可访问性:

intents = discord.Intents(members = True, presences = True)

client = commands.Bot(command_prefix="q.", intents=intents)

【讨论】:

  • 好的,它可以工作,但是对于某些机器人,用户看不到消息或显示离线状态。我认为我必须改变我的角色权利
  • 确保激活消息意图并尝试给予机器人完全权限(管理员)也许这会解决,不要忘记从不和谐开发者门户激活意图,最后如果没有其中的作品阅读了文档。 if my solution has fixed your problem you can mark it as accepted
猜你喜欢
  • 1970-01-01
  • 2013-11-20
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2020-12-08
  • 2016-06-03
  • 2019-11-17
  • 1970-01-01
相关资源
最近更新 更多