【问题标题】:Discord.py constantly edit messageDiscord.py 不断编辑消息
【发布时间】:2021-03-19 00:14:20
【问题描述】:

好的,所以我用 python 创建了一个机器人,并设置了它,所以它总是启动和一切,但我想发出一条消息,它不断设置为服务器中的当前用户数。

我不知道该怎么做,如果能得到任何帮助,我将不胜感激。我已经得到消息 id、频道 id 和公会 id,我只需要知道如何编辑消息以及如何每隔 10 秒左右进行一次。

感谢您的帮助!

【问题讨论】:

    标签: python loops discord bots


    【解决方案1】:
    from discord.ext import commands
    from typing import Union
    import asyncio
    import discord
    
    _CH = Union[discord.TextChannel, discord.VoiceChannel, discord.CategoryChannel]
    _C = commands.Context
    
    
    class StatusCog(commands.Cog):
        INTERVAL = 60
        TEMPLATE = 'Online: {}, All: {}'
    
        def __init__(self, bot: commands.Bot):
            self.bot = bot
            self.running = False
            self.STATUS_DICT = {'online': 0, 'offline': 0, 'idle': 0, 'dnd': 0}
    
        @commands.group(invoke_without_command=True)
        async def count(self, ctx: _C):
            pass
    
        @count.command()
        async def start(self, ctx: _C, channel: _CH):
            self.running = True
            while self.running:
                status = self.STATUS_DICT.copy()
                for member in ctx.guild.members:
                    s = member.status
                    for key in status.keys():
                        if getattr(s, key, False):
                            status[key] += 1
                            break
                await channel.edit(name=self.TEMPLATE[:].format(list(status.values())))
                await asyncio.sleep(self.INTERVAL)
    
        @count.command()
        async def stop(self, ctx: _C):
            self.running = False
    
    
    def setup(bot: commands.Bot):
        bot.add_cog(Cog(bot))
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2021-08-31
      • 2023-04-02
      • 2020-03-17
      • 1970-01-01
      • 2021-04-04
      • 2021-07-31
      • 2021-12-29
      相关资源
      最近更新 更多