gpt4 book ai didi

python - 如何在discord.py中获取 channel 的最新消息?

转载 作者:行者123 更新时间:2023-12-04 13:12:01 33 4
gpt4 key购买 nike

有没有办法使用 discord.py 获取特定 channel 的最新消息?我查看了官方文档并没有找到方法。

最佳答案

(答案使用 discord.ext.commands.Bot 而不是 discord.Client ;我没有使用过 API 的低级部分,所以这可能不适用于 discord.Client )
在这种情况下,您可以使用 Bot.get_channel(ID) 获取您要检查的 channel 。

channel = self.bot.get_channel(int(ID))
然后,您可以使用 channel.last_message_id 获取最后一条消息的ID,通过 channel.fetch_message(ID) 获取消息.
message = await channel.fetch_message(
channel.last_message_id)
结合起来,获取 channel 最后一条消息的命令可能如下所示:
@commands.command(
name='getlastmessage')
async def client_getlastmessage(self, ctx, ID):
"""Get the last message of a text channel."""
channel = self.bot.get_channel(int(ID))
if channel is None:
await ctx.send('Could not find that channel.')
return
# NOTE: get_channel can return a TextChannel, VoiceChannel,
# or CategoryChannel. You may want to add a check to make sure
# the ID is for text channels only

message = await channel.fetch_message(
channel.last_message_id)
# NOTE: channel.last_message_id could return None; needs a check

await ctx.send(
f'Last message in {channel.name} sent by {message.author.name}:\n'
+ message.content
)
# NOTE: message may need to be trimmed to fit within 2000 chars

关于python - 如何在discord.py中获取 channel 的最新消息?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/64080277/

33 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com