[英]Discord bot doesn't work and not changing status
At first my discord bot doesn't work, in this code is erorr and i can't find it, and second is that it doesn't changing status, it was changing when you put just 2 text but when trying to put client.guilds
it not起初我的 discord 机器人不起作用,在此代码中是错误的,我找不到它,其次是它没有改变状态,当你只输入 2 个文本但尝试放置client.guilds
它不
@tasks.loop( seconds = 12 )
async def changeStatus():
iterationPosition = 0
status = [f' on { len(client.guilds) } servers', '~help']
await client.change_presence(activity=discord.Activity(type=discord.ActivityType.playing, name=status[iterationPosition]))
iterationPosition = 0 if (iterationPosition is len(status) - 1) else (iterationPosition + 1)
@client.event
async def on_ready():
print( 'bot connected' )
changeStatus.start()
*Working code but with problem that he writes me answer to commands as many times as all servers he on *工作代码,但问题是他给我写命令的次数与他在所有服务器上的次数一样多
tasks.iterationPosition = 0
@tasks.loop( seconds = 5 )
async def changeStatus():
status = [f" on { len(client.guilds) } servers", "~help"]
await client.change_presence(
activity=discord.Activity(
type=discord.ActivityType.playing, name=status[tasks.iterationPosition]
)
)
tasks.iterationPosition = (
0
if (tasks.iterationPosition is len(status) - 1)
else (tasks.iterationPosition + 1)
)
@client.event
async def on_ready():
print( 'bot connected' )
changeStatus.start()
In your code you always assign 0
to iterationPosition
at the start of loop, instead put it in "global" scope like this:在您的代码中,您始终在循环开始时将0
分配给iterationPosition
位置,而不是将其放入“全局”scope 中,如下所示:
tasks.iterationPosition = 0
@tasks.loop(seconds=12)
async def changeStatus():
status = [f" on { len(client.guilds) } servers", "~help"]
await client.change_presence(
activity=discord.Activity(
type=discord.ActivityType.playing, name=status[tasks.iterationPosition]
)
)
tasks.iterationPosition = (
0
if (tasks.iterationPosition is len(status) - 1)
else (tasks.iterationPosition + 1)
)
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.