(discord.py)如何让我的机器人读取发送给它的DM并打印它们或将它们发送到特定频道

LeThiccBoi

所以我最近创建了一个带有各种meme命令和主持人命令的discord机器人。我对python比较陌生,但我了解它的要旨。我已经创建了一个命令,该命令可以让我(只有我)通过该bot DM用户。我现在想尝试使该机器人能够读取发送回它的消息并将其发送给我,无论它是打印在外壳中还是发送到我不在乎的特定频道/我,我只想能够看到发送给它的内容。我进行了一些阅读,发现了这一点,并从中收集了这一点:

@bot.event
async def on_message(message):
    channel = bot.get_channel('channel ID')
    if message.server is None and message.author != bot.user:
        await bot.send_message(channel, message.content)
    await bot.process_commands(message)

单单这对我来说不起作用,当我对机器人进行DM处理时,出现一条错误消息,提示“ AttributeError:'Message'对象没有属性'server'”。有人告诉我discord.py重写不使用“服务器”,而是使用“行会”。因此,我将其更改为message.guild。从那里它给了我一个错误“ AttributeError:'Bot'对象没有属性'send_message'”,这与我到达那里差不多。我对此进行了修改,并在这里和那里进行了更改,并取得了一些细微的进步……我认为。我的新代码是:

@bot.event
async def on_message(ctx, message):
    channel = bot.get_channel('channel ID')
    if message.guild is None and message.author != bot.user:
        await ctx.send(channel, message.content)
    await bot.process_commands(message)

这给了我错误“ TypeError:on_message()缺少1个必需的位置参数:'message'”。到目前为止,我已经知道了。如我所说,任何帮助将不胜感激,我对python还是有些陌生,我才在2个月前才开始使用它。

脑死亡

您的第一个代码使用的是古老,过时且不受支持的dpy版本。

除了on_message事件之类的一些错误外,您大部分都在第二个代码中正确地对其进行了更新

它不起作用,因为它仅接受一个参数messagectx在那种情况下没有任何参数

因此,该事件传递了一个参数,但是您的函数接受了2个错误。正确的代码是:async def on_message(message):

但是,现在您将对使用此行写的内容感到困惑: await ctx.send(channel, message.content)

即使ctx存在,这也不起作用,因为send不再将目的地作为目标,而是您调用send on destination,destination.send("Hello")因此如果channel您希望将其发送到目的地,则将其转换为代码await channel.send(message.content)

最后一点,我注意到您在这里使用了字符串:bot.get_channel('channel ID')这可能只是您提供示例,但请记住ID是ints,如果您传递字符串,它将永远找不到该通道。

例如,这是无效的bot.get_channel('123456789111315178')

这将是有效的: bot.get_channel(123456789111315178)

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

您如何发送Discord机器人读取的DM?(discord.py)

尝试使用Discord.js使用Discord机器人将消息发送到特定频道

Discord.py - 通过机器人将用户输入发送到另一个频道(重写)

反应后如何使机器人将消息发送到另一个频道?Discord.js

如何让 Discord 机器人向我 ping 的人发送 DM?

Discord Py将消息发送到特定频道

如何在我的 Discord 频道中检查机器人的发送消息权限?

Discord.py无法将dm发送给成员

Discord.py将dm发送给用户

将机器人创建的txt文件发送给一个人或一个频道discord python

仅在discord.py中将欢迎DM发送给特定服务器的用户

Discord.py如何使漫游器将消息发送到特定频道

如何使用 discord.py 将消息发送到特定频道?

Discord.py如何通过命令将DM发送给我想要的任何人

Discord.py 如何向服务器中发送 DM 机器人的用户添加角色?

将计算机信息发送到Discord机器人

Discord.py:消息未发送到频道

如何让Discord机器人创建频道

使机器人发送不同的嵌入discord.py

Discord.py机器人未正确发送嵌入

Discord.py - 编辑机器人发送的消息

使用JDA在Discord中将消息发送到特定频道

Discord.js将消息发送到特定频道

discord.js将消息发送到特定频道

每当删除消息时都会向频道发送消息的 Discord 机器人。Discord.js

通过命令将DM从数据库discord.js-commando发送给特定的人

使用discord.py将消息发送到特定频道

如何让 Discord 机器人在创建时向特定频道发送消息?

如何从Discord机器人的API发送图像?