Как сказать боту что бы он отправил сообщение в другой канал discord.py
учусь писать дискорд ботов на питоне. Не могу разобраться как сказать боту, что бы он отсылал сообщение (что-то типа: человек захотел вывести n-нную сумму) в канал #какой-то, при написании человеком команды !withdraw в другом канале
@client.command(aliases = ['withdraw'])
async def __withdraw(ctx, amount: int = None):
balance = cursor.execute("SELECT cash FROM users WHERE id = {}".format(ctx.author.id)).fetchone()[0]
if amount is None:
await ctx.send(f"**{ctx.author.mention}**, укажите сумму, которую желаете вывести")
elif balance < amount:
await ctx.send(embed = discord.Embed(description = f"**{ctx.author.mention}** На вашем счету нету минимальной суммы вывода!"))
else:
if balance < 10000:
await ctx.send(embed = discord.Embed(description = f"**{ctx.author.mention}** Минимальная сумма вывода - 10.000 :dollar:"))
else:
await ctx.send(embed = discord.Embed(description = f"**{ctx.author.mention}** Заявка принята. Ожидайте! :slight_smile:", color = 0x52f04f))
cursor.execute("UPDATE users SET cash = cash - {} WHERE id = {}".format(amount, ctx.author.id))
connection.commit()
Ответы (1 шт):
Автор решения: denisnumb
→ Ссылка
Если вам нужен конкретный канал, то получаем его id и объявляем через бота:
my_channel = client.get_channel(id)
Для отправки сообщения строка await my_channel.send('Текст сообщения')
Примерно такой код:
my_channel = None
@client.event
async def on_ready():
global my_channel
my_channel = client.get_channel(id)
@client.command()
async def your_command(ctx):
global my_channel
await my_channel.send('Текст сообщения')
Но правильнее будет получить список всех каналов сервера и также выбрать нужный из них.
for channel in client.get_guild(ID сервера).channels:
print(channel.id)