如何在没有 CTX 的情况下获得 Discord.py 时间戳?

时间:2021-02-27 21:16:35

标签: python timestamp discord discord.py

我正在制作一个 Discord 机器人。它的功能之一是在日志记录通道中记录离开和进入成员。 on_member_join 和 on_member_remove 事件仅采用成员参数。我想知道如何在没有 ctx 的情况下在我的嵌入中放置时间戳。我知道这是可能的,只是不知道怎么做。

1 个答案:

答案 0 :(得分:1)

您可以通过 datetime 获取当前时间,为此您只需导入一个模块。如果您在嵌入中发布整个内容,您可以执行以下操作:

import datetime # 1
from datetime import datetime # 2

@commands.Cog.listener / @client.event / @bot.event
async def on_member_join
embed = discord.Embed(timestamp=datetime.utcnow())

如果您想发送这些类型的消息,您必须定义一个频道,因为 ctx.send 不起作用,所以不如去:

@commands.Cog.listener / @client.event / @bot.event
channel = self.bot.get_channel(ChannelID) # Or bot/client.get_channel
async def on_member_join
embed = discord.Embed(timestamp=datetime.utcnow())
[...]
await channel.send(embed=embed)

如果您已经定义了一个频道并且只想将其作为普通消息发送,您可以将 datetime 放入一个 f 字符串中:

await channel.send(f"{datetime}")
相关问题