Python 克隆和删除频道:Discord.py @client.command() @commands.is_owner() 异步def nuke(ctx,通道名称): 现有频道=discord.utils.get(guild.channels,name=channel\u name) 如果现有_通道不是无: 等待克隆(name=channel\u name,reason=“Has-nuked”) 等待现有的_通道。删除() 其他: wait ctx.send(未找到名为**{channel_name}**的频道)
我在discord上见过多个机器人已经可以通过一个核命令来完成这项任务,但我想自己学习如何完成这项任务。问题是,我的机器人无法检测到我提到的频道(如附件中所示)。我发现了一个与此类似的问题,关于“正确地对通道进行核爆”,但他们使用的是齿轮。帮忙 您使用的Python 克隆和删除频道:Discord.py @client.command() @commands.is_owner() 异步def nuke(ctx,通道名称): 现有频道=discord.utils.get(guild.channels,name=channel\u name) 如果现有_通道不是无: 等待克隆(name=channel\u name,reason=“Has-nuked”) 等待现有的_通道。删除() 其他: wait ctx.send(未找到名为**{channel_name}**的频道),python,discord,discord.py,Python,Discord,Discord.py,我在discord上见过多个机器人已经可以通过一个核命令来完成这项任务,但我想自己学习如何完成这项任务。问题是,我的机器人无法检测到我提到的频道(如附件中所示)。我发现了一个与此类似的问题,关于“正确地对通道进行核爆”,但他们使用的是齿轮。帮忙 您使用的clone()错误,它的Channel.clone()不仅仅是clone() 以下是修订后的代码 @client.command() @commands.is_owner() 异步def nuke(ctx,通道名称): 现有频道=discord.
clone()
错误,它的Channel.clone()
不仅仅是clone()
以下是修订后的代码
@client.command()
@commands.is_owner()
异步def nuke(ctx,通道名称):
现有频道=discord.utils.get(guild.channels,name=channel\u name)
如果现有_通道不是无:
等待现有的\u channel.clone(reason=“Has nuked”)
等待现有的_通道。删除()
其他:
wait ctx.send(未找到名为**{channel_name}**的频道)
您使用的clone()
错误,它的Channel.clone()
不仅仅是clone()
以下是修订后的代码
@client.command()
@commands.is_owner()
异步def nuke(ctx,通道名称):
现有频道=discord.utils.get(guild.channels,name=channel\u name)
如果现有_通道不是无:
等待现有的\u channel.clone(reason=“Has nuked”)
等待现有的_通道。删除()
其他:
wait ctx.send(未找到名为**{channel_name}**的频道)
Poojan已经指出您使用了错误的命令进行克隆。
我正在使用他们的代码,但是在您希望频道名称成为可点击的示例频道的地方进行了更改
标记频道时,bot会看到:
,而不是#示例频道
。我们只需要数字就可以得到频道ID。代码的前两行
@client.command()
@commands.is_owner()
async def nuke(ctx, channel_name):
channel_id = int(''.join(i for i in channel_name if i.isdigit()))
existing_channel = client.get_channel(channel_id)
if existing_channel:
await existing_channel.clone(reason="Has been nuked")
await existing_channel.delete()
else:
await ctx.send(f'No channel named **{channel_name}** was found')
尝试调试时的一个好主意是print()
不同的对象,以便查看它们是什么
print(channel\u name)
将显示机器人在标记时看到的内容。您可能可以从中看出它找不到任何“频道名称”的原因。Poojan已经指出您使用了错误的命令进行克隆。
我正在使用他们的代码,但是在您希望频道名称成为可点击的示例频道的地方进行了更改
标记频道时,bot会看到:
,而不是#示例频道
。我们只需要数字就可以得到频道ID。代码的前两行
@client.command()
@commands.is_owner()
async def nuke(ctx, channel_name):
channel_id = int(''.join(i for i in channel_name if i.isdigit()))
existing_channel = client.get_channel(channel_id)
if existing_channel:
await existing_channel.clone(reason="Has been nuked")
await existing_channel.delete()
else:
await ctx.send(f'No channel named **{channel_name}** was found')
尝试调试时的一个好主意是print()
不同的对象,以便查看它们是什么
print(channel\u name)
将显示机器人在标记时看到的内容。您可能可以从中看出它找不到任何“频道名称”的原因。您好。您试图传递的频道名称是什么?当您标记一个频道(示例频道)并且它是指向该频道的可单击链接时,它实际上使用频道ID,并且将被删除。您的搜索将找不到。您必须键入nuke example channel
进行搜索才能找到任何内容我遇到的问题是,无论键入什么,我都不会收到错误消息。您试图传递的频道名称是什么?当您标记一个频道(示例频道)并且它是指向该频道的可单击链接时,它实际上使用频道ID,并且将被删除。您的搜索将找不到。您必须键入nuke example channel
才能搜索到任何内容我遇到的问题是,无论键入什么,我仍然不会收到错误消息,我发现这确实克隆了频道,但没有删除频道。我会看看这背后是否有什么原因。我发现这确实克隆了频道,但没有删除频道。同时,我会看看这背后是否有任何原因。如果现有频道不是无:
可以缩短为仅如果现有频道:
@kr8gz True!谢谢你指出这一点。现在在代码中更改它。如果现有频道不是无:
可以缩短为仅如果现有频道:
@kr8gz True!谢谢你指出这一点。现在在代码中更改它。