簡體   English   中英

(Discord.py) 讓我的機器人只響應 DM

[英](Discord.py) Make my Bot only Respond to DM's

所以我設法讓我的 Bot 工作的基礎知識很好。 但是,當我嘗試發送一條消息時,例如執行/ping時,機器人會回復它,而不管命令在哪個頻道中執行,包括 DM,然后我編寫了一條語句,使其僅響應某些 Discord 頻道中的命令在服務器上。 這似乎確實有效,但是,當我嘗試將通道數組更改為discord.DMChannel時,這似乎無效。 有人可以幫我解決這個問題嗎?

channels = ["general"]
if str(message.channel) in channels:
    if message.content == "/ping":
        await message.channel.send("Pong")

但是如果我把它改成這樣:

channels = [discord.DMChannel]
if str(message.channel) in channels:
    if message.content == "/ping":
        await message.channel.send("Pong")

機器人不響應 DMChannel 消息。

您可以嘗試設置機器人意圖,但請記住這些會影響整個機器人,而不僅僅是一個命令。

...

my_intents = discord.Intents.default()
my_intents.guild_messages = False # turn off messages from guilds, so you only get messages from DM channels
# optionally turn on members or presences here if you need them
client = discord.Client(..., intents=my_intents) # or discord.Bot() or whatever

...

你可以簡單地做

await ctx.author.send 

它只會在 dms 中發送響應。 它也可以在頻道中使用,但它會在 dms 中發送響應。

暫無
暫無

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

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