Задать вопрос
@Chixonte

Как вывести игру, в которую играет определенный пользователь?

То есть команда работает так, что я пишу название команды и пингую определенного пользователя, а бот выводил мне во что данный пользователь играет или играл
  • Вопрос задан
  • 39 просмотров
Подписаться 1 Средний Комментировать
Пригласить эксперта
Ответы на вопрос 1
rc-dm
@rc-dm
Full-Stack Web Developer
Вариант 1: Во что пользователь играет
import discord
from discord.ext import commands

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

bot = commands.Bot(command_prefix="!", intents=intents)

@bot.command(name="activity")
async def get_activity(ctx, member: discord.Member):
    # Проверяем, есть ли у пользователя активность
    if member.activity:
        # Если активность есть, выводим её название
        await ctx.send(f"{member.name} играет в: {member.activity.name}")
    else:
        # Если активности нет, сообщаем об этом
        await ctx.send(f"{member.name} в данный момент ничего не играет.")

bot.run('YOUR_BOT_TOKEN')

Вариант 2: Во что пользователь играет или играл
import discord
from discord.ext import commands
import json
import os

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

bot = commands.Bot(command_prefix="!", intents=intents)

# Файл для хранения истории активностей
ACTIVITY_HISTORY_FILE = "activity_history.json"

# Загружаем историю активностей из файла (если файл существует)
if os.path.exists(ACTIVITY_HISTORY_FILE):
    with open(ACTIVITY_HISTORY_FILE, "r") as f:
        activity_history = json.load(f)
else:
    activity_history = {}

@bot.event
async def on_presence_update(before, after):
    # Сохраняем активность пользователя, если она изменилась
    if after.activity and after.activity != before.activity:
        user_id = str(after.id)
        if user_id not in activity_history:
            activity_history[user_id] = []
        activity_history[user_id].append(after.activity.name)

        # Сохраняем историю в файл
        with open(ACTIVITY_HISTORY_FILE, "w") as f:
            json.dump(activity_history, f)

@bot.command(name="activity")
async def get_activity(ctx, member: discord.Member):
    user_id = str(member.id)
    if user_id in activity_history:
        # Выводим историю активностей пользователя
        activities = activity_history[user_id]
        await ctx.send(f"{member.name} играл в: {', '.join(activities)}")
    else:
        await ctx.send(f"У {member.name} нет сохранённой истории активностей.")

bot.run('YOUR_BOT_TOKEN')

Команда: !activity @Username
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы