当前位置: 首页 > 知识库问答 >
问题:

我在discord.py为我的机器人做了一个afk命令,但是当我做Afk命令时,pinged只有一个字

濮阳耀
2023-03-14

我在discord中为我的机器人发出了afk命令。py,但是当我执行Afk命令时,ping代码时只有1个单词https://nekobin.com/sulotolise

@client.event
async def on_member_join(member):
    print(f'{member} has joined a server!')
    with open('afk.json', 'r') as f:
        afk = json.load(f)

    await update_data(afk, member)

    with open('afk.json', 'w') as f:
        json.dump(afk, f)


async def update_data(afk, user):
    if not f'{user.id}' in afk:
        afk[f'{user.id}'] = {}
        afk[f'{user.id}']['AFK'] = 'False'


@client.event
async def on_message(self, message):
        with open('db/afk.json', 'r') as f:
            afk = json.load(f)
        
        for user_mention in message.mentions:
            if afk[f'{user_mention.id}']['AFK'] == 'True':
                if message.author.bot: 
                    return
                
                reason = afk[f'{user_mention.id}']['reason']
                meth = int(time.time()) - int(afk[f'{user_mention.id}']['time'])
                been_afk_for = await self.time_formatter(meth)
                embed = discord.Embed(description=f'{user_mention.name} Is currently AFK!\nReason : {reason}')
                await message.channel.send(content=message.author.mention, embed=embed)
                
                meeeth = int(afk[f'{user_mention.id}']['mentions']) + 1
                afk[f'{user_mention.id}']['mentions'] = meeeth
                with open('db/afk.json', 'w') as f:
                    json.dump(afk, f)
        
        if not message.author.bot:
            await self.update_data(afk, message.author)

            if afk[f'{message.author.id}']['AFK'] == 'True':
                
                meth = int(time.time()) - int(afk[f'{message.author.id}']['time'])
                been_afk_for = await self.time_formatter(meth)
                mentionz = afk[f'{message.author.id}']['mentions']

                embed = discord.Embed(description=f'Welcome Back {message.author.name}!', color=0x00ff00)
                embed.add_field(name="You've been AFK for :", value=been_afk_for, inline=False)
                embed.add_field(name='Times you got mentioned while you were afk :', value=mentionz, inline=False)

                await message.channel.send(content=message.author.mention, embed=embed)
                
                afk[f'{message.author.id}']['AFK'] = 'False'
                afk[f'{message.author.id}']['reason'] = 'None'
                afk[f'{message.author.id}']['time'] = '0'
                afk[f'{message.author.id}']['mentions'] = 0
                
                with open('db/afk.json', 'w') as f:
                    json.dump(afk, f)
                
                try:
                    await message.author.edit(nick=f'{message.author.display_name[5:]}')
                except:
                    print(f'I wasnt able to edit [{message.author}].')
        
        with open('afk.json', 'w') as f:
            json.dump(afk, f)
        
@client.command()
async def afk(ctx, *, self, reason=None):
        with open('db/afk.json', 'r') as f:
            afk = json.load(f)

        if not reason:
            reason = 'None'
        
        await self.update_data(afk, ctx.message.author)
        afk[f'{ctx.author.id}']['AFK'] = 'True'
        afk[f'{ctx.author.id}']['reason'] = f'{reason}'
        afk[f'{ctx.author.id}']['time'] = int(time.time())
        afk[f'{ctx.author.id}']['mentions'] = 0

        embed = discord.Embed(description=f"I've set your AFK {ctx.message.author.name}!\nReason :{reason}", color=0x00ff00)
        await ctx.send(content=ctx.message.author.mention, embed=embed)

        with open('db/afk.json', 'w') as f:
            json.dump(afk, f)
        try:
            await ctx.author.edit(nick=f'[AFK]{ctx.author.display_name}')
        except:
            print(f'I wasnt able to edit [{ctx.message.author}].')

形象

共有1个答案

岳昊空
2023-03-14

我认为你在下达命令时犯了一点错误。第72行的星星应该在原因后面:

@client.command()
async def afk(ctx, *, reason=None):
 类似资料:
  • 上面的代码正在运行。 我没有得到任何错误,但我也希望机器人显示他们是afk的原因,当他们提到。有人能帮忙吗?

  • 我要离开一个网站(https://realpython.com/how-to-make-a-discord-bot-python/#how-to-make-a-discord-bot-in-python)和我下面的步骤,但我一直得到一个错误msg Traceback(最近一次调用最后一次): File"C:\用户\Bryce.Persello346\Desktop\bot.py",第15行,cli

  • 我的挂机命令工作得很好,除了我只能使用一个词原因。例如,我会说-afk遛狗。每当有人在我挂机的不和谐服务器上定位我时,它只会说(用户)如果afk。原因:走路。我正在想办法让它说多个单词而不是一个。这是我的AFK命令 @客户。_消息(消息)上的事件异步定义:全局afkdict if消息。afkdict作者:afkdict。pop(message.author)

  • 我正在学习如何使用python创建一个discord bot,但我在使用这个命令时遇到了问题。我试图做的是踢一个特定的用户,然后使用bot将邀请发送回discord服务器。这是一个愚蠢的想法,但我真的想让它发挥作用。 我特别遇到的问题是如何踢一个特定的用户(带有用户标识),然后将该用户DM。 谢谢! 这里的代码: 这样做的目的是,如果具有适当角色类型的人一个特定的不一致用户id()被踢,机器人会自

  • 这是take II,前几周我发了帖子,我的问题被搁置,我调整了我的文本,但无法得到评论,系统关闭了原来的帖子。 服务器端:只读-服务器打开管道,然后定期检查是否有内容(即不在流末尾)并读取信息。此检查必须以轮询为基础,因为只有在轮询期间,才有有效的上下文来传递数据。。 客户端:仅写-打开管道、写入管道、关闭(Client.exe多次调用,生命周期短,下面的代码是测试代码),例如,其他一些脚本将“使

  • 问题内容: 我是django的新手,目前正在学习主要教程。即使它工作的更早,当我执行python manage.py runserver或python manage.py -h或任何其他命令时,shell不会输出任何内容。想知道我在做什么错。 问题答案: 首先,通过在外壳中键入“ python”来检查python是否已完全安装。 然后,您应该在django项目中尝试。如果您没有django专案,请