Discord.py |如何只检查作者消息?
Discord.py | How to only check for author message?
我正在创建一个机器人来验证成员是否在我们学校。由于某种原因,在输入学号后,机器人要求再次输入而不是发送电子邮件
@client.event
async def on_member_join(member):
await member.send("You have joined the unofficial (school) discord server! To access the rest of the server you must "
"confirm you are from (our school).")
sent_email = False
confirmation_key = generate_key()
while not sent_email:
await member.send('What is your student number? ')
response = await client.wait_for('message')
student_number = response.content
if student_number.isalpha() or student_number.isalnum():
await member.send("Please Enter Your Student Number!")
elif student_number.isnumeric():
send_mail(student_number, confirmation_key)
sent_email = True
await member.send(f'Sending Confirmation Email...')
任何答案将不胜感激!
如果 student_number
只包含数字,student_number.isalnum()
将始终 return True
,因此您永远不会达到 elif
的情况。
重新组织一下代码可能更有意义:
if student_number.isnumeric():
send_mail(student_number, confirmation_key)
sent_email = True
await member.send(f'Sending Confirmation Email...')
else:
await member.send("Please Enter Your Student Number!")
据我了解,您只对两种情况感兴趣:
- 学号格式正确(只有数字)
- 学号格式不正确
这样你就可以处理这两种情况并摆脱 isalnum()
的棘手逻辑。
我正在创建一个机器人来验证成员是否在我们学校。由于某种原因,在输入学号后,机器人要求再次输入而不是发送电子邮件
@client.event
async def on_member_join(member):
await member.send("You have joined the unofficial (school) discord server! To access the rest of the server you must "
"confirm you are from (our school).")
sent_email = False
confirmation_key = generate_key()
while not sent_email:
await member.send('What is your student number? ')
response = await client.wait_for('message')
student_number = response.content
if student_number.isalpha() or student_number.isalnum():
await member.send("Please Enter Your Student Number!")
elif student_number.isnumeric():
send_mail(student_number, confirmation_key)
sent_email = True
await member.send(f'Sending Confirmation Email...')
任何答案将不胜感激!
student_number
只包含数字,student_number.isalnum()
将始终 return True
,因此您永远不会达到 elif
的情况。
重新组织一下代码可能更有意义:
if student_number.isnumeric():
send_mail(student_number, confirmation_key)
sent_email = True
await member.send(f'Sending Confirmation Email...')
else:
await member.send("Please Enter Your Student Number!")
据我了解,您只对两种情况感兴趣:
- 学号格式正确(只有数字)
- 学号格式不正确
这样你就可以处理这两种情况并摆脱 isalnum()
的棘手逻辑。