// Copyright 2022, FOSS-VG Developers and Contributers
//
// Author(s):
//   BodgeMaster
//
// This program is free software: you can redistribute it and/or modify it
// under the terms of the GNU Affero General Public License as published
// by the Free Software Foundation, version 3.
//
// This program is distributed in the hope that it will be useful,
// but WITHOUT ANY WARRANTY; without even the implied
// warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
// See the GNU Affero General Public License for more details.
//
// You should have received a copy of the GNU Affero General Public License
// version 3 along with this program.
// If not, see https://www.gnu.org/licenses/agpl-3.0.en.html

#pragma once

#include <vector>
#include <cstdint>

namespace Packet {
    struct DataContainer {
        uint32_t typeID;
        std::vector<uint8_t> payload;
    }

    namespace TypeID {
        // These are guessed names for what the package IDs could mean.
        // Some package IDs are used multiple times. I assume the different
        // connection states (handshaking, status, login, and play) play a role
        // in identifying what kind of package has been received.

        // State: handshaking
        const uint32_t HANDSHAKE = 0;

        // State: status
        const uint32_t STATUS = 0;
        const uint32_t PING = 1;
    }
}
