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

Discord机器人客户端。转换为不协调的用户错误。Python中的Utils

邓德惠
2023-03-14

python 3.7。3不和谐。py 1.3。4覆盆子皮4

在一切顺利之后,我一开始就被困住了。

我从头开始。当我使用for循环后接我的print(f'{client.user}时,我没有问题,bot用户名打印到终端。当我放弃循环并使用guild=discord.utils.get(client.guilds,name=guild)代码时,终端中出现以下错误。

忽略异常在on_readyTraceback(最近的调用最后):文件/home/pi/. local/lib/python3.7/site-pack/discord/client.py,第312行,在_run_event等待coro(*args,**kwargs)文件/home/pi/TackleBot/bot2.py,行27,在on_readyf{client.user}连接到以下公会:\n'属性错误:'NoneType'对象没有属性'name'

如果我在guild=discord之后直接添加print(client.user)命令。乌提尔斯。获取命令,它将在那里打印用户名,但仍然会在下面出错。我花了好几个小时梳理文档,现在就在这里。还是很困惑。如果我注释掉for循环,就会得到错误。如果我注释掉discord实用程序命令,它可以正常工作。从不使用print(f'{client.user}块更改任何内容。

我边走边学,非常感谢任何帮助或建议。谢谢你!

    import os
    
    import discord

    from dotenv import load_dotenv

    load_dotenv()
    TOKEN = os.getenv('DISCORD_TOKEN')
    GUILD = os.getenv('DISCORD_GUILD')
    
    client = discord.Client()

    @client.event
    async def on_ready():
        guild = discord.utils.get(client.guilds, name=GUILD)
        if guild is not None:
            channel = discord.utils.get(guild.text_channels, name=GUILD)
    # when the lines 18-20 are used, line 26 throws an object type error 'none'
    # when lines 23-25 are used, there is no error
    #    for guild in client.guilds:
    #        if guild.name == GUILD:
    #            break
        print(
            f'{client.user} is connected to the following guild:\n'
            f'{guild.name}(id: {guild.id})'
        )
        
        members = '\n - '.join([member.name for member in guild.members])
        print(f'{guild.name}:\n - {members}')
    
    client.run(TOKEN)

共有1个答案

公冶森
2023-03-14

如果我理解正确,你是想先在on_ready功能中打印公会信息,对吗?

您可以这样做:

client = discord.Client()
@client.event
async def on_ready():
     for guild in client.guilds:
         print(
          f'{client.user} is connected to the following guild:\n'
          f'{guild.name}(id: {guild.id})'
         )
     members = '\n - '.join([member.name for member in guild.members])
     print(f'Guild Members:\n - {members}')

最后:

client.run(TOKEN)
 类似资料:
  • 试图运行一个不和谐的机器人 这是密码 我得到这个错误: C:\Users\josep\AppData\Local\Programs\Python\Python 38\Python。exe C:/Users/josep/Desktop/unsettler/unsettler。py C:/Users/josep/Desktop/unsettler/unsettler。py:12:RuntimeWarn

  • 我试图用Python制作一个不和谐机器人,根据你所在的班级(在我的学校),给你一个不和谐服务器上的角色。我刚刚开始,但每当我试图运行它时,我都会收到一个错误(我在Python 3笔记本电脑中的Google Colab中运行它)。这是我的代码: 当我运行它时,它会显示以下错误: 如果我把命令,程序永远不会到达它,因为循环阻止它到达命令。 我错过什么了吗?我不知道问题出在哪里。非常感谢您的帮助。

  • 问题内容: 我正在使用Python处理User Discord Bot。如果机器人所有者键入内容,则该机器人将DM所有者提到的用户。 问题答案: 最简单的方法是使用扩展程序。在这里,我们使用转换器来获取目标用户,并使用仅关键字参数作为可选消息来发送目标用户: 对于discord.py的较新的1.0+版本,应使用而不是

  • 我已经使用java nio创建了一个客户端-服务器应用程序,它工作正常,但我的问题是,当服务器有许多连接到服务器的客户端时,服务器会响应错误的客户端,而不是请求客户端。例如,如果客户端A请求第一个人的信息,服务器将第一个人的信息返回给客户端B而不是客户端A。我已经尝试同步对象,但仍然无法正常工作,可能是什么问题。这是我的服务器示例代码

  • 下列协程客户端是Swoole内置的类,其中 ⚠️ 标志的不要再使用,使用PHP原生的函数+一键协程化。 协程TCP/UDP客户端 协程HTTP客户端 协程HTTP2客户端 协程PostgreSQL客户端 协程Socket客户端 ⚠️ 协程Redis客户端 ⚠️ 协程MySql客户端 ⚠️ 协程System(Coroutine\System),主要是文件操作相关的不推荐使用。 超时规则 所有的网络请