【发布时间】:2020-12-25 08:21:53
【问题描述】:
我有一个只保存用户 ID 的机器人(这样工作会更好)。现在我想从那个 id 中获取用户对象。
我尝试了以下对我不起作用的方法,也许我做错了什么..
client = discord.Client
client.get_user(id)
和client.get_user_info(id)
代码如下:
import discord
class MyClient(discord.Client):
ntd = name_table.get_all_records() #google sheets api: returns a list of dicts
async def on_message(self, message):
print(message.content[1])
if message.author == client.user:
return
if isinstance(message.channel, discord.channel.DMChannel):
await self.handle_DM(message)
if message.content[0] == "/":
if message.content.split(" ")[0].lower() == "/rank":
await self.rank_command(message)
async def rank_command(self, message):
if len(message.content.split(" ")) < 2:
await message.channel.send(
message.author.mention + "/rank takes 2 or 3 arguments. Do '/rank ?' for help.")
try:
if message.content.split(" ")[1] == "?":
await self.help("rank", message)
return
except:
pass
try:
if message.content.split(" ")[1] == "top":
await self.top_rank_command(message)
return
except:
pass
async def top_rank_command(message):
print("Top rank entered")
_user = await client.fetch_user(372746847393021953) #my id: Cluebo#2312
print(_user)
print("Top rank end")
执行这个,它只会打印"Top rank entered" 而不是user 或"Top rank end"
但是,我没有收到错误消息。该方法就停在那里(机器人在 Heroku 上运行)。
提前致谢!
【问题讨论】:
标签: python heroku discord discord.py