#python #discord.py
#python #discord.py
Вопрос:
Я создаю discord-бота в discord.py , пайкорд, и мне было интересно, возможно ли заставить бота сгенерировать приглашение в discord для сервера и отправить его вам, и как это сделать?
Возможно ли это? И если да, то как мне это сделать?
Я понял это спасибо за помощь.
@client.command()
async def getinv(ctx):
invites = []
for guild in client.guilds:
for c in guild.text_channels:
# make sure the bot can actually create an invite
if c.permissions_for(guild.me).create_instant_invite:
invite = await c.create_invite()
invites.append(invite)
await ctx.send(invite)
break
Комментарии:
1. Вы уже ознакомились с документами? Вы можете легко найти здесь то, что ищете
2. Я прочитал api и не нашел того, что искал.
3. Это невозможно. Попробуйте поискать
create_invite
там? Есть несколько мест, где его можно использовать.4. Вместо того чтобы редактировать вопрос с ответом, пожалуйста, сделайте ответ.
5. Пожалуйста, будьте осторожны при использовании подобной команды, поскольку это обычно называют бэкдором , если вы присоединяетесь к серверу, на котором вы еще не находитесь, и против TOS discord.
Ответ №1:
Немного улучшенная версия предыдущего кода guys
@client.event
async def on_ready():
for guild in client.guilds:
discord_guild = client.get_guild(int(guild.id))
link = await discord_guild.text_channels[0].create_invite()
print(link)
Ответ №2:
Я хотел сделать то же самое, и я собрал этот скрипт, который печатает приглашения на каждый сервер, на котором находится бот.
from discord.utils import get
import discord
import asyncio
client = discord.Client()
TOKEN = "token here"
@client.event
async def on_ready():
print('Bot is up and running.')
print(f'Logged in as {client.user}')
@client.event
async def on_message(message, *ctx):
for guild in client.guilds:
discord_guild = client.get_guild(int(guild.id))
link = await discord_guild.text_channels[0].create_invite()
print(link)
asyncio.sleep(750)
client.run(TOKEN)