Discord.py加载json数据

2024-04-19 18:07:42 发布

您现在位置:Python中文网/ 问答频道 /正文

我正在使用costum设置为多台服务器创建一个机器人,我正在使用:

Guild\u Settings.py

import json

class LoadGuildSettings:

    def get_prefix(self, message):
        try:
            with open('config/server_prefix.json', "r") as fp:
                prefixes = json.load(fp)
            return prefixes[str(message.guild.id)]
        except IOError:
            return
    def get_command_channel(self, message):
        try:
            with open('config/server_command.json', "r") as fp:
                prefixes = json.load(fp)
            return prefixes[str(message.guild.id)]
        except IOError:
            return

main.py

async def on_message(message):
    name = message.author
    c = guild_setings.LoadGuildSettings().get_command_channel(message)
    cmd = guild_setings.LoadGuildSettings().get_prefix(message)
    if not message.channel == c:
        return

现在我的问题是:

if not message.channel == c:

不起作用,但

if message.content.startswith(cmd+'tc')

很好用


Tags: pyselfjsonmessagegetprefixreturnif
1条回答
网友
1楼 · 发布于 2024-04-19 18:07:42

我不知道get_command_channel()返回什么,因为您还没有显示json文件,但我假设它是一个stringint列表。“不工作”的代码试图将discord.Channel实例与strings/ints进行比较,这将始终返回false,因此它将始终进入if-语句和return中。我建议你去商店&;相反,比较通道的id's

编辑:在评论中提供更多信息后

是的,您确实在尝试将discord.Channel实例与string实例进行比较。您只需首先从通道中取出id

if not str(message.channel.id) == c

相关问题 更多 >