gpt4 book ai didi

python - Discord.py - 使用命令更改前缀

转载 作者:行者123 更新时间:2023-12-04 11:19:03 24 4
gpt4 key购买 nike

我想创建一个命令,管理员可以在其中更改命令的前缀(例如:而不是使用“。”他们可以将其更改为“-”并且只有“-”才能工作)我可以设置使只有管理员能够使用该命令的权限

我环顾四周,通过文档和互联网,但没有找到任何东西,我也不知道如何做到这一点

最佳答案

您应该使用 command_prefix discord.Bot 的论据这接受一个字符串(意味着一个机器人宽前缀)或一个可调用的(意味着一个基于条件返回前缀的函数)。

您的条件依赖于调用 message .因此,您可以允许公会定义自己的前缀。我将使用 dict 作为一个简单的例子:

...

custom_prefixes = {}
#You'd need to have some sort of persistance here,
#possibly using the json module to save and load
#or a database
default_prefixes = ['.']

async def determine_prefix(bot, message):
guild = message.guild
#Only allow custom prefixs in guild
if guild:
return custom_prefixes.get(guild.id, default_prefixes)
else:
return default_prefixes

bot = commands.Bot(command_prefix = determine_prefix, ...)
bot.run()

@commands.command()
@commands.guild_only()
async def setprefix(self, ctx, *, prefixes=""):
#You'd obviously need to do some error checking here
#All I'm doing here is if prefixes is not passed then
#set it to default
custom_prefixes[ctx.guild.id] = prefixes.split() or default_prefixes
await ctx.send("Prefixes set!")

有关使用中的一个很好的示例,请参阅 Rapptz (discord.py 的创建者)自己的 RoboDanny bot,他将其作为教育目的的公共(public)存储库作为示例。具体见 prefix_callable 功能,它是我的 determine_prefix 的更强大版本例子。

关于python - Discord.py - 使用命令更改前缀,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56796991/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com