【问题标题】:Discord Get Guild is not returning objectsDiscord Get Guild 没有返回对象
【发布时间】:2021-08-13 06:44:29
【问题描述】:

我正在尝试通过服务器 ID 获取服务器对象。我知道 server_id 是正确的,但由于某种原因,这些函数没有返回给我

client = discord.Client()
TOKEN = "mytoken"
client.login(TOKEN)

server_id=846557514476945408 #this is my own server id
guild=client.get_guild(server_id)

我已确认我的客户端连接已打开。

不确定是否重要,但我看到了这些警告

<input>:1: RuntimeWarning: coroutine 'Client.connect' was never awaited
RuntimeWarning: Enable tracemalloc to get the object allocation traceback

【问题讨论】:

  • 我只是快速浏览了一下,但我注意到您使用 server_ID 作为变量名,然后在 get_guild 中使用了 server_id。变量区分大小写。
  • 是的,你是对的,我改变了它,但它仍然没有返回任何东西:(
  • 您是尝试通过自己的帐户还是机器人登录?在client.login(token)
  • 我通过机器人登录,并且我从机器人获得了令牌,有没有一种方法可以在没有机器人的情况下使用我的帐户登录?在这种情况下我真的不需要机器人
  • 我认为使用用户令牌作为机器人是违反 Discords TOS 的。 support.discord.com/hc/en-us/articles/115002192352 我只是看到人们使用client.run() 的频率高于client.login()

标签: discord discord.py


【解决方案1】:

server_idguild 变量在客户端准备好之前运行,因此您始终会收到 none。由于client.login() 是协程并且从未等待,因此似乎代码设置不正确。下面我删除了client.login(),改为使用client.run(),并使用discord.py 中的最小机器人示例来利用包含的on_ready 事件。 Discord.py - A Minimal Bot

import discord

client = discord.Client()

@client.event
async def on_ready():
    print('We have logged in as {0.user}'.format(client))
    server_id = 846557514476945408 #this is my own server id
    guild = client.get_guild(server_id)

client.run("TOKEN")

【讨论】:

    猜你喜欢
    • 2021-09-06
    • 2018-09-20
    • 2021-02-15
    • 2018-03-20
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-09-12
    相关资源
    最近更新 更多