Бот Discord.py: как мне заставить бот-дискордер отправлять мне ответы на команды, которые пользователи используют в DM, например, для опроса? - PullRequest
0 голосов
/ 23 мая 2018

Итак, я хочу, чтобы у моего несогласного бота была команда для опроса, где, если пользователь скажет что-то вроде «#survey», тогда бот отправит им ответ с вопросом.Тогда я хочу сделать так, чтобы ответ (где пользователь использует команду в DM для ответа) был отправлен мне через DM ботом?Возможно ли это?

Я знаю, как сделать DM-бота пользователем, когда он использует команду на сервере раздора, но он посылает мне ответную часть, которую я не могу понять.

Я новичок в discord.py, но я просканировал всю документацию, прежде чем попросить проверить, могу ли я найти что-нибудь подходящее.

Также это мой первый вопрос на этом сайте, я простоподписался, так что извините, если написано не очень хорошо.

Заранее спасибо!

Ответы [ 2 ]

0 голосов
/ 10 февраля 2019
@client.event
async def on_message(message):
    if message.channel.is_private: 
         #If any of the user DM the bot bot will send you the message in your DM
         owner = client.get_memebr("id_to_send")
         await client.send_message(owner,f"{message.author}: {message.content})
    await client.process_commands(message)
@client.command(pass_context=True)
async def survey(ctx):
    await client.send_message(ctx.message.author,"Question you want to ask")

Это может нормально работать: -)

0 голосов
/ 23 мая 2018

Я предполагаю, что часть, с которой у вас возникли проблемы, - захват ответа.discord.py перегружает синтаксис function(args, *, kwargs) для команд, поэтому один аргумент после * является текстом остальной части сообщения.

from discord.ext.commands import Bot

bot = Bot('#')

my_user_id = "<Your ID>"  
# You can get your id through the discord client, after activating developer mode.

@bot.command(pass_context=True)
async def survey(ctx):
    await bot.send_message(ctx.message.author, "What's your name?")

@bot.command(pass_context=True)
async def respond(ctx, *, response):
    owner = await bot.get_user_info(my_user_id)
    await bot.send_message(owner, "{} responded: {}".format(ctx.message.author.name, response))

bot.run("token")
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...