@tasks.loop(minutes=1)
async def update_pop_embed(self) -> None:
emojis = {"Playstation": ps, "Xbox": xbox}
servers = await bot.db.fetch(f"SELECT * FROM pop_embed")
for guild in bot.guilds:
now = datetime.now().strftime("%I:%M %p")
embed = disnake.Embed(title="**__Pop Tracking__**", color=color)
embed.set_thumbnail(url=bot.user.display_avatar.url)
embed.set_footer(
text=f"{bot.user.name} v{ver} | Updated {now}", icon_url=bot.user.display_avatar.url
)
message = None
for server in servers:
if guild.id != server[0]:
continue
channel = self.bot.get_partial_messageable(server[7], type=disnake.TextChannel)
if channel is None:
continue
message = self.bot.get_message(server[8]) or await channel.fetch_message(server[8])
if message is None:
continue
emoji = emojis.get(server[2], "")
if server[1] is not None:
embed.add_field(
name=f"{emoji} **{i[1].upper()}**",
value=f"Players Online: {server[4]}/{server[5]}\nMaps Online: {server[6]}\nVersion: {server[3]}",
inline=False,
)
if message:
try:
await message.edit(embed=embed)
except disnake.HTTPException:
pass
used a PartialMessage rather than fetching a message since you're just editing.