机器人加入服务器时更改状态 | discord.py
Change status when bot joins server | discord.py
在我的 discord 机器人的状态中,它显示了它在多少台服务器中,但是当机器人加入服务器时我该如何刷新它?我想我必须把它放在下面:
@client.event
async def on_guild_join(guild):
但是我不知道怎么办。
这是我的状态命令:
async def chng_pr():
await client.wait_until_ready()
statuses = [f"-help | {len(client.guilds)} servers", f"-setup | {len(client.guilds)} servers", f"-vote | {len(client.guilds)} servers", f"-patreon | {len(client.guilds)} servers"]
while not client.is_closed():
status = random.choice(statuses)
await client.change_presence(activity=discord.Game(status))
await asyncio.sleep(120)
client.loop.create_task(chng_pr())
首先,chng_pr
函数会每两分钟循环一次,所以当机器人加入公会时改变存在感是没有用的。但是如果你真的想要,你可以删除那个 while 循环并在机器人加入公会时调用它。如果您还希望它每 2 分钟查看一次,您可以使用 discord.ext.tasks
.
下面是您应该如何更改函数。
async def chng_pr():
"""Changes presences"""
statuses = [f"-help | {len(client.guilds)} servers", f"-setup | {len(client.guilds)} servers", f"-vote | {len(client.guilds)} servers", f"-patreon | {len(client.guilds)} servers"]
status = random.choice(statuses)
await client.change_presence(activity=discord.Game(status))
以下是如何在机器人加入公会时更改状态。
@client.event
async def on_guild_join(guild):
await chng_pr()
这是在 on_ready
活动中 运行 创建任务的方法
from discord.ext import tasks
@tasks.loop(minutes=2)
async def change_presence():
"""Will loop every two minutes and change presences"""
await chng_pr()
@client.event
async def on_ready():
await client.wait_until_ready()
# Starting the loop
change_presence.start()
你也可以让它在命令中使用。
注意:这需要intents.guilds
在我的 discord 机器人的状态中,它显示了它在多少台服务器中,但是当机器人加入服务器时我该如何刷新它?我想我必须把它放在下面:
@client.event
async def on_guild_join(guild):
但是我不知道怎么办。 这是我的状态命令:
async def chng_pr():
await client.wait_until_ready()
statuses = [f"-help | {len(client.guilds)} servers", f"-setup | {len(client.guilds)} servers", f"-vote | {len(client.guilds)} servers", f"-patreon | {len(client.guilds)} servers"]
while not client.is_closed():
status = random.choice(statuses)
await client.change_presence(activity=discord.Game(status))
await asyncio.sleep(120)
client.loop.create_task(chng_pr())
首先,chng_pr
函数会每两分钟循环一次,所以当机器人加入公会时改变存在感是没有用的。但是如果你真的想要,你可以删除那个 while 循环并在机器人加入公会时调用它。如果您还希望它每 2 分钟查看一次,您可以使用 discord.ext.tasks
.
下面是您应该如何更改函数。
async def chng_pr():
"""Changes presences"""
statuses = [f"-help | {len(client.guilds)} servers", f"-setup | {len(client.guilds)} servers", f"-vote | {len(client.guilds)} servers", f"-patreon | {len(client.guilds)} servers"]
status = random.choice(statuses)
await client.change_presence(activity=discord.Game(status))
以下是如何在机器人加入公会时更改状态。
@client.event
async def on_guild_join(guild):
await chng_pr()
这是在 on_ready
活动中 运行 创建任务的方法
from discord.ext import tasks
@tasks.loop(minutes=2)
async def change_presence():
"""Will loop every two minutes and change presences"""
await chng_pr()
@client.event
async def on_ready():
await client.wait_until_ready()
# Starting the loop
change_presence.start()
你也可以让它在命令中使用。
注意:这需要intents.guilds