簡體   English   中英

有人能告訴我我在這里做錯了什么 discord.py dming 系統

[英]Can someone tell me what i did wrong here discord.py dming system

我試圖將它發送給使用該命令的用戶,但它似乎不起作用有人可以解釋我做錯了什么嗎?

@client.event
async def on_message(message):
    if isinstance(message.channel, discord.DMChannel):
        channel = client.get_channel(942903733262626836)
        await channel.send(f"{message.author} sent:\n```{message.content}```")
    await client.process_commands(message)

@client.command()
async def feedback(ctx, user: discord.User, *, message='Hello please let us know about your about your feedback.'):
    message = message
    await user.send(message)
    await ctx.send('DM Sent Succesfully.')

如果feedback是用戶必須編寫的命令(例如!反饋),那么您只需使用ctx.author.send()即可將 dm 發送給命令的作者。 你想用on_message function 做什么?

@client.command()
async def feedback(ctx, message='Hello please let us know about your about your feedback.'):
    await ctx.author.send(message)
    await ctx.send('DM Sent Succesfully.')

您使user成為命令的參數,並且您正在 DMing那個人而不是作者。

async def command(ctx, user: discord.User, ...)

必須用作

!command @user

@user ping將被 DM'ed的用戶。

你說你想私信使用命令的人,也就是作者,所以你應該私信他們。 您可以使用ctx.author訪問作者,並以與其他用戶直接私信的方式私信他們。

# Instead of
await user.send(...)
# use
await ctx.author.send(...)

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM