我正在制作一个Discord bot。它的功能之一是在日志通道中记录成员的离开和进入。on_member_join和on_member_remove事件只接受成员参数。我想知道如何把时间戳在我的嵌入没有ctx。我知道这是可能的,我只是不知道怎么做。
您可以通过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-string:
await channel.send(f"{datetime}")