Discord.py 重写,设置后台任务,后台任务不加载
Posted
技术标签:
【中文标题】Discord.py 重写,设置后台任务,后台任务不加载【英文标题】:Discord.py rewrite, Setting up background tasks, background tasks not loading 【发布时间】:2019-05-14 02:47:35 【问题描述】:我似乎无法弄清楚如何激活我的后台任务运行时间。如果我让代码在事件之后运行,它应该会改变角色的颜色。但是将其设置为在后台工作总是失败。也没有错误,我的猜测是任务永远不会加载。
#Login and bot initializer
@client.event
async def on_ready():
print('Logged in as')
print(f"Username: client.user.name")
print(f"User ID: client.user.id")
print('---------------------------------')
#Runtime Background Tasks
async def runtime_background_task():
id=client.get_guild(564683412699480094)
colours = [discord.Colour(0xe91e63),discord.Colour(0x0000FF0),discord.Colour(0x00FF00),discord.Colour(0xFF0000)]
print("BACKGROUND TASK>> Functional")
await client.wait_until_ready()
while not client.is_closed:
i = random.randint(0, len(colours))
await asyncio.sleep(1)
print(i)
for role in id.roles:
if role.name == 'bot':
await role.edit(server=id, role=role, colour=colours[i])
break
【问题讨论】:
已禁止变色机器人以避免淹没 API,以防您不知道。 【参考方案1】:您可以使用discord.ext.tasks
扩展名来简化自己的操作。在这里,我们有一个任务每秒运行一次以更改角色的颜色。
我没有看到你在哪里定义了 id
,所以我使用 before_loop
从一个 id 初始化服务器:
import discord
from discord.utils import get
from discord.ext.tasks import loop
from discord.ext.commands import Bot
from random import choice
bot = Bot("!")
colours = [discord.Colour(0xe91e63), discord.Colour(0x0000FF0), discord.Colour(0x00FF00), discord.Colour(0xFF0000)]
guild_id = 12345
role_name = "bot"
role_to_change = None
@loop(seconds=1)
async def colour_change():
await role_to_change.edit(colour=choice(colours))
print("Task")
@colour_change.before_loop
async def colour_change_before():
global role_to_change
await bot.wait_until_ready()
guild = bot.get_guild(guild_id)
role_to_change = get(guild.roles, name=role_name)
colour_change.start()
bot.run("token")
【讨论】:
ModuleNotFoundError: No module named 'discord.ext.tasks' 另外我在代码中添加了 ID,这样更容易理解 ;) 您可能需要更新您的 discord.py 版本:pip install -U discord.py
更新修复了这个问题,但代码似乎也没有完成任务。没有错误,但实际上也没有做任何事情。
@KA 我错过了colour_change.start()
行
我像这样添加了代码,但直到无法正常工作pastebin.com/x8MH7ZFN以上是关于Discord.py 重写,设置后台任务,后台任务不加载的主要内容,如果未能解决你的问题,请参考以下文章