首页 > 解决方案 > Discord Get Guild 没有返回对象

问题描述

我正在尝试通过服务器 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

标签: discorddiscord.py

解决方案


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

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")

推荐阅读