Я розробатываю систему гильдий и делаю команду для создания гильдии и хочу сделать проверку по имени. Я имею ввиду если гильдия с таким именем есть то выдает ошибку, а если нет то гильдия успешно создается но код не роботает и выдает ошибку:
Command raised an exception: TypeError: 'NoneType' object is not subscriptable
Можно как то решить эту проблему? Заранее спасибо.
Вот мой код:
@commands.command(aliases=['gcreate'])
async def __create_guild(self, ctx, name: str = None):
color = discord.Color.random()
guild = ctx.guild
create = self.cursor.execute('SELECT guild_create_numb FROM users WHERE id = ?', (ctx.author.id,)).fetchone()[0]
names = self.cursor.execute('SELECT g_name FROM guilds').fetchone()[0]
if create == 1:
await ctx.send(embed = discord.Embed(title=f"", description=f'**<@{ctx.author.id}>, вы не можете создать больше гильдий!**', color=0xf61e1e))
else:
if name in names:
await ctx.send(embed = discord.Embed(title=f"", description=f'**<@{ctx.author.id}>, гильдия с таким названием уже существует!**', color=0xf61e1e))
else:
self.cursor.execute("INSERT INTO guilds VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?)", (name, 'Пусто...', ctx.author.id, 'Не назначен...', 0, 0, 0, 0, 0,))
self.cursor.execute(f"UPDATE users SET member_guild = '{name}' WHERE id = ?",(ctx.author.id,))
self.cursor.execute("UPDATE users SET guild_create_numb = ? WHERE id = ?",(1, ctx.author.id,))
self.connection.commit()
#role = await guild.create_role(name=f"Участник гильдии '{name}'", colour = color)
#await ctx.author.add_roles(role)
embed = discord.Embed(title=f"Гильдия `{name}` успешно создана", description=f"Настроить гильдию: `{ctx.prefix}gedit`", colour=color)
embed.set_footer(text=f"{ctx.author}", icon_url=f"{ctx.author.avatar_url}")
await ctx.message.channel.send(embed = embed)
print(names)