【发布时间】:2021-07-23 05:42:55
【问题描述】:
所以基本上我制作了一个可以通过命令更改其前缀的机器人,它只会将该自定义前缀设置为您所在的服务器。但是当我重新运行程序时,它会将前缀重置为默认值。例如,如果我将前缀设置为 !从-,如果我重新运行机器人,它会将其设置回!。这是我的代码:
custom_prefixes = {}
with open('prefixes.json', 'r') as f:
json.load(f)
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
client = commands.Bot(command_prefix = determine_prefix)
@client.event
async def on_ready():
print("Bot loaded successfully")
@client.command()
@commands.guild_only()
async def setprefix(ctx, *, prefixes=""):
custom_prefixes[ctx.guild.id] = prefixes.split() or default_prefixes
with open('prefixes.json', 'w') as f:
json.dump(custom_prefixes, f)
await ctx.send("Prefixes set!")
【问题讨论】:
标签: python python-3.x discord.py