在discord.py v1.4.1中,你可以使用discord.ext.tasks
模块中的loop()
函数来实现每10秒更新嵌入中剩余时间的功能。下面是一个示例代码:
import discord
from discord.ext import tasks
client = discord.Client()
@client.event
async def on_ready():
print('Bot已登录')
# 启动定时任务
update_embed.start()
@tasks.loop(seconds=10) # 每10秒执行一次
async def update_embed():
# 获取目标频道和消息
channel = client.get_channel(1234567890) # 替换为目标频道的ID
message = await channel.fetch_message(1234567890) # 替换为目标消息的ID
# 更新嵌入中的剩余时间
remaining_time = 60 # 剩余时间,单位为秒
embed = message.embeds[0] # 假设嵌入在消息中的索引为0
embed.set_field_at(0, name='剩余时间', value=f'{remaining_time}秒')
# 重新发送消息
await message.edit(embed=embed)
client.run('YOUR_BOT_TOKEN') # 替换为你的机器人令牌
请注意,上述代码中的1234567890
需要替换为你实际使用的频道ID和消息ID。此外,你还需要将YOUR_BOT_TOKEN
替换为你的机器人令牌。
这段代码使用了discord.py的定时任务功能,通过@tasks.loop(seconds=10)
装饰器指定每10秒执行一次update_embed()
函数。在update_embed()
函数中,我们首先获取目标频道和消息,然后更新嵌入中的剩余时间字段,最后使用message.edit(embed=embed)
重新发送消息。
这是一个简单的示例,你可以根据自己的需求进行修改和扩展。关于discord.py的更多信息,你可以参考discord.py官方文档。
领取专属 10元无门槛券
手把手带您无忧上云