一些背景
在学习了一些python之后,我一直试图将discord bot作为我的第一个宠物项目。我的目标是从我一直在玩的在线游戏中检索API数据并将其粘贴到我的discord服务器上。我需要检索的数据是从discord命令中给出的。例如:!stats 2255880
是其中2255880是游戏中玩家ID的命令。我几乎完成了代码,除了不断出现的地狱错误和google对我没有太大帮助
错误:
RuntimeWarning: coroutine 'Messageable.send' was never awaited
message.channel.send(end_data )
RuntimeWarning: Enable tracemalloc to get the object allocation traceback
#to import modules
import discord
from discord.ext import commands
from discord.ext.commands import Bot
import requests
import json
#client for bot
client=discord.Client()
######## TORN API DATA #########
apikey='insert key here'
@client.event
async def on_message(message):
if message.content.startswith('!stats'):
def torn_script(player_ID):
apiurl='https://api.torn.com/user/'+str(player_ID)+'?selections=personalstats&key='+apikey
r=requests.get(apiurl)
astext=r.text
asdict=json.loads(astext)
data=json.loads(requests.get(apiurl).text)['personalstats']
print('attacks won: ',data['attackswon'])
async def discord_display(end_data):
await message.channel.send(end_data )
discord_display(['finally the dumbass succeded.LOL'])
torn_script(message.content[6:])
答案 0 :(得分:0)
由于discord_display
是协程(async def discord_display()
),因此您需要等待:
async def discord_display(end_data):
await message.channel.send(end_data )
await discord_display(['finally the dumbass succeded.LOL'])
PS:如果您导入了discord.Client
,为什么仍然使用commands.Bot
? Commands
扩展方式更加实用和强大。