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