首页 > 解决方案 > Discord.py - 如何使用来自回复机器人的用户的信息

问题描述

我正在制作一个机器人,它将选择机器人反应的人分成两个团队并列出他们。刚开始学Python,在Github上找了个类似功能的bot,一点一点的修改,把它变成我想要的功能。

执行相应命令时,仅打印出 Team A : 和 Team B : ,而不是当我或其他人在机器人计数时单击响应时创建列表。我认为点击机器人反应的人的信息没有被发送到门口。但是我不确定,如果这是正确的,我不知道如何解决我目前缺乏的技能。

需要帮助

执行相应命令时,仅打印出 Team A : 和 Team B : ,而不是当我或其他人在机器人计数时单击响应时创建列表。我认为点击机器人反应的人的信息没有被发送到门口。但是我不确定,如果这是正确的,我不知道如何解决我目前缺乏的技能。

我需要一些帮助...

这是我的代码:

import discord
import asyncio
from discord.ext import commands
from discord.utils import get

DRAFT_COUNT = 10

bot = commands.Bot(command_prefix='$')

@bot.command()
async def divide(ctx):
    ladder_agree.clear()
    ladder_team_a.clear()
    ladder_team_b.clear()

    ladder = await ctx.send("Would you like to join the team distribution?")
    await ladder.add_reaction("⭕")

    guide_text = await ctx.send("count : 30 sec")
    for i in range(0, DRAFT_COUNT):
        j = DRAFT_COUNT - i
        await guide_text.edit(content=f"count : {j} sec")
        time.sleep(1)
        if j == 1:
            await guide_text.edit(content="done")
            for k in range(0, len(entry)):
                if entry[k].startswith("⭕"):
                    ladder_agree.append(entry[k])

    while len(ladder_agree) > 0:
        temp1 = random.choice(ladder_agree)
        ladder_team_a.append(temp1)
        ladder_agree.remove(temp1)

        temp2 = random.choice(ladder_agree)
        ladder_team_b.append(temp2)
        ladder_agree.remove(temp2)

    text = ""
    for i in range(0, len(ladder_team_a)):
        text = text + ", " + ladder_team_a[i]
    await ctx.send("\n\n Team A : " + text)

    text2 = ""
    for i in range(0, len(ladder_team_b)):
        text2 = text2 + ", " + ladder_team_b[i]
    await ctx.send("\n\n Team B : " + text2)


@bot.event
async def on_reaction_add(reaction, user):
    for i in range(0, len(entry)):
        if user.mention in entry[i]:
            switch = 1
            break
        else:
            switch = 0

    if switch == 0:             
        if user.bot == 1:       
            return None
        if str(reaction.emoji) == "⭕":
            entry.append("join/"+ user.mention)

标签: pythondiscorddiscord.py

解决方案



推荐阅读