Как настроить отправку сообщения, написанного пользователем боту при выполнении команды, в отдельный канал или для отправки разработчику бота в личные сообщения? <br/> <br/> <pre><code class="python">@bot.slash_command(description="Обратиться к разработчику.")
@discord.option("name", description="Введите своё имя.")
async def feedback(ctx: discord.ApplicationContext, name: str):
try:
await ctx.respond(f"Здравствуй, {name}! Введите своё обращение в течение 30 секунд.")
def is_author(m: discord.Message):
return m.author.id == ctx.author.id
feedback_message = await bot.wait_for("message", check=is_author, timeout=30.0)
await ctx.send(f"Спасибо за ваше обращение!\nВаше обращение: `{feedback_message.content}`") # Указать, чтобы сообщение отправлялось в отдельный канал или личные сообщения
except asyncio.TimeoutError:
await ctx.send("Ваше время вышло, попробуйте еще раз!")</code></pre> <br/> <br/> Я добавил комментарий по поводу необходимости указания места передачи сообщения(nto an open new channel or send a private message to the developer).
Для отправки сообщения в другой канал или в личные сообщения разработчику, вам нужно указать объект канала или пользователя, куда вы хотите отправить сообщение.
Вот пример кода, дополнив который вы сможете отправить сообщение в отдельный канал:
```python
@bot.slash_command(description="Обратиться к разработчику.")
@discord.option("name", description="Введите своё имя.")
async def feedback(ctx: discord.ApplicationContext, name: str):
try:
await ctx.respond(f"Здравствуй, {name}! Введите своё обращение в течение 30 секунд.")
def is_author(m: discord.Message):
return m.author.id == ctx.author.id
feedback_message = await bot.wait_for("message", check=is_author, timeout=30.0)
# Отправка сообщения в другой канал
channel = bot.get_channel(CHANNEL_ID) # ID канала, куда вы хотите отправить сообщение
await channel.send(f"Пользователь {ctx.author} отправил обращение: `{feedback_message.content}`")
await ctx.send("Ваше обращение было отправлено успешно!")
except asyncio.TimeoutError:
await ctx.send("Ваше время вышло, попробуйте еще раз!")
```
Если вы хотите отправить сообщение в личные сообщения разработчику, замените строку `channel.send` на `await ctx.author.send`. Вместо CHANNEL_ID укажите ID пользователя разработчика бота.
Надеюсь, это поможет вам отправлять сообщения в нужные каналы или пользователям!
Достаете канал по id через get_channel , отправляете через сhannel.send
channel_id = ... # достаете из БД или оттуда где у вас хранится id нужного канала channel = bot.get_channel(channel_id) channel.send(feedback_message.content)
'NoneType' object has no attribute 'send'