【发布时间】:2021-04-13 04:27:35
【问题描述】:
我有一个发送文本 copypasta 的命令
示例copypasta.json:
{
"xxx" : "xxxxxx xxxx xxxxx xxxxx...",
"yyy" : "yyyyyy yyyy yyyyy yyyyy...",
"zzz" : "zzzzzz zzzz zzzzz zzzzz..."
}
发送文本的代码:
json_file = 'copypasta.json'
with open(json_file) as json_data:
jsonLoad = json.load(json_data)
aliases = list(jsonLoad.keys())
@client.command(aliases=aliases) #problem is here
async def _copypasta(ctx):
keyCopypasta = ctx.invoked_with
valueCopypasta = jsonLoad[keyCopypasta]
await ctx.send(valueCopypasta)
如果我在 Discord 中发送 -xxx,机器人会发送 json "xxxx xxx..." 中的值
所以我做了一个命令在json中添加一个新元素:
async def addCopypasta(ctx, key, *, value):
a_dictionary = {key: value}
with open("copypasta.json", "r+") as file:
data = json.load(file)
data.update(a_dictionary)
file.seek(0)
json.dump(data, file)
await ctx.send("successfully added")
但是当我将添加的新元素的键发送到 Discord 时,机器人找不到它,我需要重新启动机器人以便更新命令的“别名”变量。
是否可以在不重新启动机器人的情况下更新命令别名?
【问题讨论】:
标签: python discord.py bots