嗨,讓我們進入正題。上次我決定為我的機器人制作每臺服務器的組態檔。我還想添加在 bot 更新時向特定頻道發送訊息的命令,但我知道不是每個人都想收到此訊息或想要為此創建一個特殊頻道,因此我添加了配置選項以更改它。這就是組態檔現在的查找方式:
{
"update": [
{
"wlaczone": true,
"kanal": 757971193205882900
}
]
}
這就是命令的樣子:
@bot.command()
@commands.check(user_is_me)
async def update(ctx):
print('1')
for server in bot.guilds:
print('2')
with open(f'serverSetting/{server.id}.json', 'r', encoding='utf-8') as a:
print('3')
d = json.load(a)
print(d)
print('4')
print(d["update"]["wlaczone"])
for w in d["update"]["wlaczone"]:
print(w)
print('5')
if w == True:
print('6.1')
c = d['update']['kanal']
print('7')
channel = discord.utils.get(bot.get_all_channels(), id=c)
print('8')
try:
print('9')
await channel.send("@everyone Bot dosta? w?a?nie update! Sprawd? |changelog \nsory za ping xD\n~nitolar play")
print('10')
except Exception:
continue
else:
break
elif w == False:
print('6.2')
pass
并且命令在列印數字 4 后停止作業。我不知道為什么會發生這種情況,因為這樣的事情從未發生在我身上,但是當我洗掉["wlaczone"]它時,它可以作業并列印這個{'wlaczone': True, 'kanal': 757971193205882900}。如果有人可以幫助我,那就太棒了。感謝幫助!
uj5u.com熱心網友回復:
d["update"]是一個串列,嘗試d["update"][0]["wlaczone"]。
注意代碼引發的例外。
轉載請註明出處,本文鏈接:https://www.uj5u.com/gongcheng/392870.html
上一篇:在字串串列中查找公共字符
