mau*_*exe 1 python bots discord discord.py
import discord
import asyncio
client = discord.Client()
@client.event
async def on_ready():
print("I'm ready.")
async def send(message):
await client.send_message(client.get_channel("412678093006831617"), message)
client.run("token")
loop = asyncio.get_event_loop()
loop.run_until_complete(send("hello"))
Run Code Online (Sandbox Code Playgroud)
嗨,我想制作一个GUI.当有人输入他的名字并按"确定"时,我的不和谐机器人应发送消息.基本上我以为我用它的名字称为异步,不起作用.然后我做了一个事件循环.与打印()工作,但机器人不发送消息,所以我认为这是没有准备好,当我把wait_until_ready()那里执行什么,所以我想我必须把client.run("令牌")在事件循环之前,也没有工作.
你们能帮助我吗?:)
你的代码不起作用的原因是因为它client.run是阻塞的,这意味着它之后什么都不会执行.这意味着loop永远无法联系到你.
要解决这个问题,请使用client.loop.create_task.
github discord.py有一个后台任务的例子,在这里找到.您应该可以将此作为参考.目前,该任务每分钟都会向给定频道发布一条消息,但您可以轻松修改该消息以等待特定操作.
import discord
import asyncio
client = discord.Client()
async def my_background_task():
await client.wait_until_ready()
counter = 0
channel = discord.Object(id='channel_id_here')
while not client.is_closed:
counter += 1
await client.send_message(channel, counter)
await asyncio.sleep(60) # task runs every 60 seconds
@client.event
async def on_ready():
print('Logged in as')
print(client.user.name)
print(client.user.id)
print('------')
client.loop.create_task(my_background_task())
client.run('token')
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
11483 次 |
| 最近记录: |