Discord.py,我如何让机器人创建一个频道,如果它不存在但如果它存在它会继续执行它的任务?
Discord.py, how would I make the bot create a channel if it doesn't exists but if it does exists it will just carry on with it's task?
我正在努力做到这一点,所以当有人收到警告时(-warn @user reason)它会说出警告了什么用户,他们收到警告的人以及他们收到警告的原因
然后,如果该频道不存在,我希望它创建一个名为 "warn-logs" 的频道(#warn-logs 在 Discord 本身中键入时),但如果该频道已经存在并具有该名称,它将继续进行它的任务是:什么用户被警告,他们被谁警告以及为什么他们被警告,我不希望它记录任何东西,只是让人们知道警告并将其保存到频道
我已经尝试了我能找到的所有方法,但没有任何帮助,甚至 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 的通道(即使已经存在同名的通道)但不发送任何消息
看起来当前代码应该在调用命令的通道中发送消息。这是真的吗?
您可以使用 discord.utils.get
搜索具有特定名称的频道:
@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()
我正在努力做到这一点,所以当有人收到警告时(-warn @user reason)它会说出警告了什么用户,他们收到警告的人以及他们收到警告的原因 然后,如果该频道不存在,我希望它创建一个名为 "warn-logs" 的频道(#warn-logs 在 Discord 本身中键入时),但如果该频道已经存在并具有该名称,它将继续进行它的任务是:什么用户被警告,他们被谁警告以及为什么他们被警告,我不希望它记录任何东西,只是让人们知道警告并将其保存到频道
我已经尝试了我能找到的所有方法,但没有任何帮助,甚至 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 的通道(即使已经存在同名的通道)但不发送任何消息
看起来当前代码应该在调用命令的通道中发送消息。这是真的吗?
您可以使用 discord.utils.get
搜索具有特定名称的频道:
@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()