#python #python-3.x #discord #discord.py #discord.py-rewrite
#python #python-3.x #Discord #discord.py
Вопрос:
Я пытаюсь выполнить команду информации об участнике, которая показывает текущую активность / статус участника, где он отображает их статус воспроизведения / прослушивания / потоковой передачи, если найден, и их пользовательский статус, если найден.
Я добавил if
инструкции к обнаруженным статусам воспроизведения, прослушивания и потоковой передачи, а также для определения того, что они воспроизводят / прослушивают / транслируют, и добавил else
инструкцию в конце для определения пользовательского статуса, таким образом, если бот находит статус, но он не воспроизводится, не прослушивается или не транслируется, то это пользовательский статус. Однако, когда пользователь играет в игру с богатым присутствием, бот считает это пользовательским статусом, и по какой-то причине оператор воспроизведения не улавливает его.
Мои вопросы: как вы определяете статус участника игры с богатым присутствием, они такие же, как обычные игры, или у них есть другой способ определить их, и как вы также определяете пользовательский статус участника, потому что я не смог найти ответ.
Мой код:
for activity in member.activities:
if isinstance(activity, Game):
name = activity.name
Type = "Playing"
Activity = f"{name}"
elif isinstance(activity, Streaming):
name2 = activity.name
name3 = activity.platform
Type = "Streaming"
Activity = f"{name2} on {name3}"
elif isinstance(activity, Spotify):
name4 = activity.title
name5 = activity.artists
Type = "Listening to Spotify"
Activity = f"**Song Name**:{name4}n**Song Artists:**{name5}"
else:
Custom = member.activity
embed.add_field(name="Activity Type", value=f"{Type}", inline=True)
embed.add_field(name="Activity Name", value=f"{Activity}", inline=True)
embed.add_field(name="Custom Status", value=f"{Custom}", inline=True)
Ответ №1:
Попробуйте использовать
for activity in member.activities:
print(type(activity), activity)
чтобы увидеть тип экземпляра и активность для каждого действия, таким образом, вы сможете увидеть, что вам нужно на самом деле соответствовать:
Ответ №2:
Благодаря помощи derw я смог определить, какой тип активности мне следует использовать, для пользовательского статуса используется тип CustomActivity, для игр с богатым присутствием я просто использовал else
оператор.
Код:
for activity in member.activities:
if isinstance(activity, Game):
name = activity.name
Type = "Playing"
Activity = f"{name}"
elif isinstance(activity, Streaming):
name2 = activity.name
name3 = activity.platform
Type = "Streaming"
Activity = f"{name2} on {name3}"
elif isinstance(activity, Spotify):
name4 = activity.title
name5 = activity.artists
Type = "Listening to Spotify"
Activity = f"**Song Name**:{name4}n**Song Artists:**{name5}"
elif isinstance(activity, CustomActivity):
name6 = activity.name
Type = "Custom Status"
Custom = f"{name6}"
else:
name7 = activity.name
Type = "Playing"
Activity = f"{name7}"
Комментарии:
1. Если вы хотите помочь derw, вы можете отметить его ответ как правильный! Это даст ему дополнительную репутацию, и я уверен, что они это действительно оценят.
2. Да, я забыл сделать это раньше, мои извинения.