gpt4 book ai didi

python - 阻止机器人创建同名的重复 channel |不和谐.py

转载 作者:行者123 更新时间:2023-12-04 14:54:55 25 4
gpt4 key购买 nike

我正在为我的 discord 机器人创建票证工具,但用户可以通过在那里使用react来创建无限制的票证。但是,我希望机器人向该用户发送 dm,以提醒他们他已经有一张未结票。

到目前为止,这是我尝试过的方法,但根本不起作用:

guild = await bot.fetch_guild(id)
channels = guild.text_channels
duplicate = False
name = f"{payload.member.name}'s ticket"
for channel in channels:
if name == channel.name:
duplicate = True
break

if duplicate:
await payload.member.send("You already have an open ticket")
return
else:
await category.create_text_channel(name, topic= topic, permission_synced= True)
await ticket_channel.set_permissions(payload.member, read_messages= True, send_messages= True)

最佳答案

文本 channel 名称中不能有空格和引号(它也会被转换为小写),像这样的名称 Name's ticket 将被转换为 names-tickets.

name = f"{payload.member.name.lower()}s-ticket"
for channel in channels:
if name == channel.name:
duplicate = True
break

您还可以大大简化代码,您可以使用 any 函数代替 for 循环

duplicate = any(name == channel.name for channel in channels)
if duplicate:
return await payload.member.send("You already have an open ticket")

关于python - 阻止机器人创建同名的重复 channel |不和谐.py,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/68242984/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com