尝试调用字段'contains'(一个空值)| 如何检查表以查看是否有服务器?

我正在尝试制作一个名为!say serverID channelID arg的指令(Discord Bot)

这个命令的重点是,我将使用这个命令向机器人发送私信,机器人将在定义的通道ID中写入arg

图书馆(litcord)https://github.com/satom99/litcord

代码的一部分_(是的,这有问题...)_:

        local server = client.servers:getAll('id', serverID)
        if server then
            if server.contains('id', serverID) then
                for _, serverID in pairs(server) do
                    if serverID == serverID then
                    return true
                    end
                    return false
                end
            end
        print(serverID, channelID, arg)
        return end

完整的代码:

client:on(
    'message',
    function(message)
    local userID = message.author.id
    local cmd, serverID, channelID, arg = string.match(message.content, '(%S+) (%d+) (%d+) (%S+.*)')
    local cmd = cmd or message.content
        if (cmd == "!say") and message.parent.is_private then
            if (userID == "187590758360940545") then
            local server = client.servers:getAll('id', serverID)
            if server then
                if server.contains('id', serverID) then
                    for _, serverID in pairs(server) do
                        if serverID == serverID then
                        return true
                        end
                        return false
                    end
                end
            print(serverID, channelID, arg)
            return end
            local channel = server.channels:get('id', channelID)

            client.channel = channelID
            message.channel:sendMessage(arg)
            else
            message:reply(":sob: 暂停!!!")
            return end
        end
    end
)

我要尝试的事情:

检查表以查看是否有服务器

并且对于渠道相同

等等...

点赞