Я написал это, пытаясь решить ту же проблему:
https://github.com/robtandy/randomdict
Он имеет O (1 ) произвольный доступ к ключам, значениям и элементам.
Отвечая на мой собственный вопрос:
Я должен поблагодарить этот источник asyncio-you-a-complex-beast , где я наконец-то нашел решение. Окончательный рабочий код выглядит следующим образом:
import discord
import asyncio
import threading
TOKEN = '12345'
client = discord.Client()
async def start():
await client.start(TOKEN) # use client.start instead of client.run
def run_it_forever(loop):
loop.run_forever()
def init():
asyncio.get_child_watcher() # I still don't know if I need this method. It works without it.
loop = asyncio.get_event_loop()
loop.create_task(start())
thread = threading.Thread(target=run_it_forever, args=(loop,))
thread.start()
@client.event
async def on_message(message):
if message.author == client.user:
return
print("on_message content: %s, channel: %s" % (message.content, message.channel))
await message.channel.send('Hello!')
@client.event
async def on_ready():
print("Discord bot logged in as: %s, %s" % (client.user.name, client.user.id))
Моя главная ошибка заключалась в том, что для игры, которую я скомпилировал и использовал последнюю версию rewrite
, находясь внутри системы, я получил 0.16.12
и прочитал документация для 0.16.12 , в то время как мне пришлось посмотреть на discord.py.rewrite (например, внутри on_message
я использовал неверно client.send_message
, а мне пришлось использовать message.channel.send
)