python - Discord.py - 如何使用来自回复机器人的用户的信息
问题描述
我正在制作一个机器人,它将选择机器人反应的人分成两个团队并列出他们。刚开始学Python,在Github上找了个类似功能的bot,一点一点的修改,把它变成我想要的功能。
- 一个人输入$divide。
- 在机器人输出一组句子后,添加“O”作为响应。
- 用户单击“O”响应。
- 该机器人编译点击“O”的人数并将他们分为两个团队。
- 列出并打印出分类的两个团队。
执行相应命令时,仅打印出 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)
解决方案
推荐阅读
- dart - 导出库时如何使用“as”?
- java - 字符串首字母大写错误
- webots - 有没有办法保存模拟的所有状态,然后在我们重新启动 Webots 时从那里恢复?
- linux - 用于 arm-linux 的交叉编译器 libntoh
- vue.js - Vue.component 和新 Vue 的区别?
- r - 在 r 中固定 x 轴和绘图的网格线
- delphi - DELPHI INDY - 找不到激活 UTF8 编码/解码的参数
- c# - Unity RPG,正确施法不使用法力,但仍在承受伤害
- python - 如何在自己的视图中使用 LoginView 并在 HTML 模板中显示?
- ios - 有没有办法在通知中心修复本地通知,所以它不能在 swift 中清除