【问题标题】:How to set bot's custom status with Discord.py如何使用 Discord.py 设置机器人的自定义状态
【发布时间】:2020-05-13 05:01:23
【问题描述】:

我刚开始使用 Discord.py,我想为它设置一个自定义状态,即“正在查看电子/信息”,但不知道该怎么做。在 SO 上找到的唯一内容是 Discord.js。

我的代码:

import os
import random
from dotenv import load_dotenv

from discord.ext import commands

load_dotenv()
TOKEN = os.getenv('DISCORD_TOKEN')

bot = commands.Bot(command_prefix='e/')

@bot.event
async def on_ready():
    await  bot.change_presence(activity=discord.Activity 
    (type=discord.ActivityType.watching name="for e/info"))

@bot.command(name='info')
async def info(ctx):
    await ctx.send('Prefix: /e) Commands: \n    -info => Shows commands')


bot.run(TOKEN)

(我按照教程减去了 Status 的内容,我想我错过了 import 声明,我只是不确定import 是什么。)

【问题讨论】:

    标签: python discord discord.py


    【解决方案1】:

    使用.change_presence() 方法。假设您使用的是discord.Client()

    await client.change_presence(activity=discord.Game(name='Watching for e/info'))
    

    还有不同类型的状态,正在播放、正在观看、正在收听和流式传输。因此,如果您希望它使用 Watching,请改为这样做。

    await client.change_presence(activity=discord.Activity(type=discord.ActivityType.watching, name="for e/info"))
    

    【讨论】:

    • 这是否适用于Bot?我知道BotClient 的子类..
    • 您应该可以将client 替换为bot
    • 我可以删除await
    • 它说 await 不能在函数之外使用,所以当我删除 await 它说不和谐是未定义的 @duckboycool
    • 你必须把它放在一个事件中才能工作。如果您希望它在机器人启动时执行此操作,则只需将其放入 on_ready 中,并在此处使用类似此脚本的内容。 discordpy.readthedocs.io/en/latest/…
    猜你喜欢
    • 2020-12-30
    • 1970-01-01
    • 2018-08-23
    • 2019-05-26
    • 2019-06-15
    • 2021-03-01
    • 2021-07-05
    • 2020-05-20
    • 2021-06-02
    相关资源
    最近更新 更多