Как сгенерировать ссылку приглашения на сервер зная его id в discord.py?
Мне необходимо сделать так, что бы с помощью команды ">create-invite [id сервера]" создать ссылку приглашения на этот сервер. Бот на этом сервере находится, но как это сделать ума не приложу. Вот код который я имею:
@bot.command(aliases = ['create-invite'])
@commands.has_permissions(administrator=True)
async def __create_invite(ctx, server_id = None):
if ctx.author.id in devlist:
if server_id == None:
await ctx.send(embed = discord.Embed(title = "Ошибка", description = "Укажите id сервера на который хотите попасть."))
else:
server = bot.get_guild(server_id)
print(server)
for channel in bot.get_guild(server.id).channels:
try:
invitelink = await random.choice(server.channels).create_invite()
await asyncio.sleep(1)
user = await bot.fetch_user(my_id)
await user.send(invitelink)
await ctx.send(embed = discord.Embed(title = "Server Settings", description = "Операция успешна! Ссылка была отправлена в личном сообщении"))
break
except:
await ctx.send(embed = discord.Embed(title = "Server Settings", description = "Ошибка."))
continue
else:
await ctx.send(embed = discord.Embed(title = "Ошибка", description = "Команда доступна только разработчикам бота."))
Ответы (1 шт):
Автор решения: RAINGM
→ Ссылка
@bot.command()
async def create_invite(ctx, server_id: int):
guild = bot.get_guild(server_id)
invite = await guild.text_channels[0].create_invite(max_age=0, max_uses=0, temporary=False)
await ctx.send(f"https://discord.gg/{invite.code}")