Вы можете использовать проверку is_owner
, чтобы убедиться, что вы единственный человек, который может вызвать команду.
Чтобы изменить присутствие или статус бота, используйте метод change_presence
:
from discord.ext.commands import Bot, is_owner
from discord import Status, Activity, ActivityType
bot = Bot("~~")
def getEnum(enum):
def getter(arg):
return enum[arg]
return getter
@bot.group(invoke_without_command=True)
@is_owner()
async def set(ctx):
await ctx.send("You must provide a subcommand.")
@set.command()
async def presence(ctx, status: getEnum(Status)):
await bot.change_presence(status=status)
@set.command(invoke_without_command=True)
async def activity(ctx, type: getEnum(ActivityType), *, description):
await bot.change_presence(activity=Activity(type=type, name=description))
@set.error
async def set_error(ctx, error):
if isinstance(error, BadArgument):
await ctx.send(error.message)
await ctx.send(error.args)
bot.run("token")
Приведенное выше сообщение не будет выполнено автоматически, если вы попытаетесь предоставить нераспознанное имя для Status
или ActivityType
, вы также можете попробовать написать обработчик ошибок , чтобы получить некоторую обратную связь.