Работа с ботом Discord.py
Хочу сделать так, чтобы когда бот заходил на дискорд сервер, то создавался специальный канал для него. Не знаю как это можно сделать :( Пробовал:
@client.event
async def on_ready(ctx):
await ctx.guild.create_text_channel("text")
Не работает. Еще хотелось бы узнать, как заставить бота писать только в этот канал. Заранее спасибо!
Ответы (1 шт):
Автор решения: Роман Сиджах
→ Ссылка
Данный код не работает, потому что у события on_ready нету аргумента ctx. И вообще, он так будет при каждом запуске создавать канал, если вы укажете айди сервера. А работать будет данный код:
@bot.event
async def on_guild_join(guild):
global cmds_channel #объявление переменной с созданием текстового канала глобальной
cmds_channel = await guild.create_text_channel('комманды-боту')#ну или любой другое имя канала
Также, попробую ответить на второй вопрос. Я не очень уверен, что это заработает, но попробуйте и напишите, если заработает)
@bot.event
async def on_message(message):
if message.channel.id == cmds_channel.id:#сравнение айди канала сообщения и айди канала для работы с ботом
await bot.process_commands(message)#разрешение работы комманд
else:
return#если же не совпадает, ничего не делать