gpt4 book ai didi

python - Discord.py,如果它不存在,我该如何让机器人创建一个 channel ,但如果它存在,它就会继续执行它的任务?

转载 作者:行者123 更新时间:2023-12-01 07:46:39 25 4
gpt4 key购买 nike

我正在尝试做到这一点,以便当有人收到警告时(-warn @user Reason),它会说明哪些用户收到了警告,他们收到了谁的警告以及为什么收到警告然后,如果该 channel 尚不存在,我希望它创建一个名为“warn-logs”的 channel (在 Discord 中输入#warn-logs),但如果该 channel 已经存在且具有该名称,它将继续运行有了它的任务并说:什么用户被警告,他们被谁警告以及为什么他们被警告,我不希望它记录任何内容,只是让人们知道警告并将其保存到 channel

我已经尝试了我能找到的所有方法,但没有任何帮助,甚至 Python Discord 服务器或 Discord.py Discord 服务器也没有帮助

这是警告命令本身以及我到目前为止所做的事情

@client.command()
@has_permissions(kick_members=True)
async def warn(ctx, member:discord.Member, *, arg):
author = ctx.author
guild = ctx.message.guild
channel = await guild.create_text_channel('warn-logs')

channel
await ctx.send(f'{member.mention} warned for: {arg} warned by: {author.mention}')
await member.send(f'{author.mention} warned you for: {arg}')
await ctx.message.delete()

我没有收到任何错误消息,所发生的只是它创建了一个名为 warn-logs 的 channel (即使已经存在同名的 channel ),但不发送任何消息

最佳答案

看起来当前代码应该在调用命令的 channel 中发送消息。是这样吗?

您可以使用discord.utils.get搜索具有特定名称的 channel :

@client.command()
@has_permissions(kick_members=True)
async def warn(ctx, member:discord.Member, *, arg):
author = ctx.author
guild = ctx.guild
channel = get(guild.text_channels, name='warn-logs')
if channel is None:
channel = await guild.create_text_channel('warn-logs')
await channel.send(f'{member.mention} warned for: {arg} warned by: {author.mention}')
await member.send(f'{author.mention} warned you for: {arg}')
await ctx.message.delete()

关于python - Discord.py,如果它不存在,我该如何让机器人创建一个 channel ,但如果它存在,它就会继续执行它的任务?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56429476/

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