ошибка: Command raised an exception: AttributeError: 'NoneType' object has no attribute 'id'
Создаю голосового бота. При запуске данной команды в консоль выдаётся ошибка
Command raised an exception: AttributeError: 'NoneType' object has no attribute 'id'
@voice.command()
async def setup(self, ctx):
conn = sqlite3.connect('voice.db')
c = conn.cursor()
guildID = ctx.guild.id
id = ctx.author.id
if ctx.author.id == ctx.guild.owner.id or ctx.author.id == 151028268856770560:
def check(m):
return m.author.id == ctx.author.id
await ctx.channel.send("**Настройка будет длиться 60 секунд**")
await ctx.channel.send(f"**Введите желаемое название для категории:(пример: Приватные Каналы)**")
try:
category = await self.bot.wait_for('message', check=check, timeout = 60.0)
except asyncio.TimeoutError:
await ctx.channel.send('Время ответа истекло!')
else:
new_cat = await ctx.guild.create_category_channel(category.content)
await ctx.channel.send('**Введите желаемое имя для канала: (пример: Нажми для создания)**')
try:
channel = await self.bot.wait_for('message', check=check, timeout = 60.0)
except asyncio.TimeoutError:
await ctx.channel.send('Время ответа истекло!')
else:
try:
channel = await ctx.guild.create_voice_channel(channel.content, category=new_cat)
c.execute("SELECT * FROM guild WHERE guildID = ? AND ownerID=?", (guildID, id))
voice=c.fetchone()
if voice is None:
c.execute ("INSERT INTO guild VALUES (?, ?, ?, ?)",(guildID,id,channel.id,new_cat.id))
else:
c.execute ("UPDATE guild SET guildID = ?, ownerID = ?, voiceChannelID = ?, voiceCategoryID = ? WHERE guildID = ?",(guildID,id,channel.id,new_cat.id, guildID))
await ctx.channel.send("**Настройка прошла успешно, голосовой канал установлен!**")
except:
await ctx.channel.send("Вы некорректно ввели названия \nИспользуйте `.voice setup` для перезапуска настройки!")
else:
await ctx.channel.send(f"{ctx.author.mention} Ня, только создатель данного сервера может произвести настройку данного бота!")
conn.commit()
conn.close()
Ответы (1 шт):
Автор решения: Krutoy 4el
→ Ссылка
Ошибка возникнет, если запустить команду не на сервере (тогда ctx.guild будет None). Возможно и в других ситуациях, можно будет сказать точнее, если знать, на какой строчке возникает ошибка.