类型错误: 'Command'对象不可下标



这是我的脚本的一部分,它处理获得自定义前缀(如果需要,我可以发送所有前缀(

settings = json.load(open("settings.json"))

# funtion that gets the prefix from the settings file depening on guild id
def get_prefix(bot, messages):
guild = messages.guild.id
guild = str(guild)
settings["guilds"][0][guild][0]["prefix"] = prefix
return prefix

client = commands.Bot(command_prefix=get_prefix, help_command=None)

@client.event
async def on_guild_join(guild):
print(f"Joined {guild.name}")
print(f"{guild.name} has {guild.member_count} members")
print(f"{guild.name}'s id is {guild.id}")
print(f"{guild.name}'s owner is {guild.owner}")
print(f"{guild.name}'s region is {guild.region}")
settings["guilds"][0][guild.id][0]["prefix"] = "?"
settings["guilds"][0][guild.id][0]["guild_name"] = guild.name
settings["guilds"][0][guild.id][0]["guild_id"] = guild.id
settings["guilds"][0][guild.id][0]["guild_owner"] = guild.owner
settings["guilds"][0][guild.id][0]["guild_region"] = guild.region
json.dump(settings, open("settings.json", "w"))

@client.event
async def on_ready():
print("------")
print("Logged in as")
print(client.user.name)
print(client.user.id)
print("------")

@client.command()
async def prefix(ctx, *, prefix):
guild = ctx.guild.id
settings["guilds"][0][guild][0]["prefix"] = prefix
json.dump(settings, open("settings.json", "w"))

这是我当前的脚本,用于获取前缀并根据它从哪个服务器调用进行设置。

它在我的测试机器人上运行得很好,但当我转移它时,它似乎不再运行了。

Ignoring exception in on_message
Traceback (most recent call last):
File "C:Python39libsite-packagesdiscordclient.py", line 343, in _run_event
await coro(*args, **kwargs)
File "C:Python39libsite-packagesdiscordextcommandsbot.py", line 979, in on_message
await self.process_commands(message)
File "C:Python39libsite-packagesdiscordextcommandsbot.py", line 975, in process_commands
ctx = await self.get_context(message)
File "C:Python39libsite-packagesdiscordextcommandsbot.py", line 886, in get_context
prefix = await self.get_prefix(message)
File "C:Python39libsite-packagesdiscordextcommandsbot.py", line 831, in get_prefix
ret = await discord.utils.maybe_coroutine(prefix, self, message)
File "C:Python39libsite-packagesdiscordutils.py", line 341, in maybe_coroutine
value = f(*args, **kwargs)
File "c:UsersfurrcCodePythonGIF Botbot.py", line 16, in get_prefix
settings["guilds"][0][guild][0]["prefix"] = prefix
TypeError: 'Command' object is not subscriptable

这是我得到的错误代码,上面写着TypeError: 'Command' object is not subscriptable,但我不知道Command在哪里,它不包括在我的.json文件中

{
"guilds": [
{
"771773406144233514":[
{
"id": 771773406144233514,
"name": "Makashi's Bot Testing Server", 
"prefix": "!"
}
]
,
"810686563138142218":[
{
"id": 810686563138142218,
"name": "SPAM",
"prefix": "?"
}
]

}
]
}

那是我的json文件夹,里面没有Command,所以我不知道为什么要调用它。

可能settings变量被您使用的某个库中的其他settings遮蔽了。尝试将其设为guilds_settings,并使用global关键字引用该变量。

最新更新