#python #discord #command #discord.py #bots
Вопрос:
Я пытался создать команду, которая удаляет ядерные каналы против ядерного бота, это мой код:
async def inferno(ctx,problem):
if problem == ("channelnuke"):
channel == ("Nuke-channel")
await ctx.send("okay solving problem")
await ctx.send("Guard on, every nuke channel will be instant deleted")
while True:
await channel.delete()
Но это выдает ошибку, что у discord нет атрибута delete
discord.ext.commands.errors.CommandInvokeError: Command raised an exception: AttributeError: module 'discord.channel' has no attribute 'delete'
Кто-нибудь знает, как это должно быть сделано?
Комментарии:
1. Какова цель этого цикла while?
Ответ №1:
К сожалению, я не могу прокомментировать предыдущий ответ из-за моей недостаточной репутации. итак, вот обновленный код предыдущего ответа, это должно сработать сейчас.
@client.command()
async def inferno(ctx, problem):
if problem == "channelnuke":
channel = ctx.channel # the previous answer had put (==) instead of (=)
await ctx.send("okay solving problem")
await ctx.send("Guard on, every nuke channel will be instant deleted")
await channel.delete()
если вы хотите добавить каналы, вы можете сделать это, указав канал в качестве дополнительных аргументов:
@client.command()
async def inferno(ctx, problem, channel : commands.TextChannelConverter = None): # we will put the channel into an optional arguments by doing = None
if channel == None: # it will find the channel if you didn't specify the channel
channel = ctx.channel
await ctx.send("okay solving problem")
if problem == "channelnuke":
await channel.delete()
преобразователь textchannel будет просматривать канал, вы можете использовать идентификатор, название канала или упомянуть канал, и он должен работать, более подробная информация об этом будет ниже.
Документы TextChannelConverter
Поблагодарите меня позже 😀
Комментарии:
1. Спасибо, Пикси, ты также знаешь, как я могу указать название канала?
2. Я добавил команду сейчас, она должна работать :D, посмотрите на ответ, который я отредактировал
3. Спасибо, как мне сделать из этого петлю?
Ответ №2:
async def inferno(ctx, problem):
if problem == "channelnuke":
channel == ctx.channel
await channel.delete()
await ctx.send("okay solving problem")
await ctx.send("Guard on, every nuke channel will be instant deleted")
Комментарии:
1. это не работает, все равно выдает некоторую ошибку