package packet
- Alphabetic
- Public
- Protected
Type Members
- final case class ControlPacket(opcode: ControlPacketOpcode.Value, packet: PlanetSideControlPacket) extends PlanetSidePacketContainer with Product with Serializable
A control packet is prefaced with a zero'd byte (
00) followed by a special byte opcode for the type of control packet.A control packet is prefaced with a zero'd byte (
00) followed by a special byte opcode for the type of control packet.- opcode
a byte that identifies the packet
- packet
the packet data
- final case class CryptoPacket(sequenceNumber: Int, packet: PlanetSideCryptoPacket) extends PlanetSidePacketContainer with Product with Serializable
A crypto packet contains the following: a sequence; and, a payload.
A crypto packet contains the following: a sequence; and, a payload. These packets have no opcodes and they rely on implicit state to decode properly.
- sequenceNumber
na
- packet
the packet data
- final case class EncryptedPacket(sequenceNumber: Int, payload: ByteVector) extends PlanetSidePacketContainer with Product with Serializable
An encrypted packet contains the following: a sequence; an encrypted opcode; an encrypted payload; and an implicit MD5MAC plus padding.
An encrypted packet contains the following: a sequence; an encrypted opcode; an encrypted payload; and an implicit MD5MAC plus padding.
- sequenceNumber
na
- payload
the packet data
- final case class GamePacket(opcode: GamePacketOpcode.Value, sequenceNumber: Int, packet: PlanetSideGamePacket) extends PlanetSidePacketContainer with Product with Serializable
A game packet is prefaced by a byte that determines the type of packet and how to interpret the data.
A game packet is prefaced by a byte that determines the type of packet and how to interpret the data. This is important for decoding and encoding.
- opcode
a byte that identifies the packet
- sequenceNumber
na
- packet
the packet data
- trait Marshallable[T] extends AnyRef
Used by companion objects to create encoders and decoders
- trait PlanetSideControlPacket extends PlanetSidePacket
PlanetSide control packets: net.psforever.packet.control._
- trait PlanetSideCryptoPacket extends PlanetSidePacket
PlanetSide crypto packets: net.psforever.packet.crypto._
- trait PlanetSideGamePacket extends PlanetSidePacket
PlanetSide game packets: net.psforever.packet.game._
- sealed trait PlanetSidePacket extends Serializable
The base of all packets
- sealed trait PlanetSidePacketContainer extends AnyRef
Base trait of the packet container
case class. - final case class PlanetSidePacketFlags(packetType: PacketType.Value, secured: Boolean) extends Product with Serializable
PlanetSide packet flags (beginning of most packets)
Value Members
- object ControlPacketOpcode extends Enumeration
- object CryptoPacketOpcode extends Enumeration
- object GamePacketOpcode extends Enumeration
The master list of Game packet opcodes that have been discovered in the PlanetSide client.
The master list of Game packet opcodes that have been discovered in the PlanetSide client.
UnknownMessage* means that there, to the best of our knowledge, was no opcode of this value. This was double checked by extracting out the master case statement in PlanetsideComm::OnReceive and by parsing NetMessage RTTI.
- object PacketCoding
- object PacketHelpers
- object PacketType extends Enumeration
PlanetSide packet type.
PlanetSide packet type. Used in more complicated packet headers
ResetSequence - Not sure what this is used for or if the name matches what it actually does but I saw some code that appeared to reset the packet sequence number when this was set Unknown2 - Your guess is as good as mine Crypto - Used for early crypto packets that are NOT encrypted Normal - Used for all non-crypto packets. May or may not be encrypted.
Enumeration starts at 1. That's what I see in IDA
- object PlanetSidePacketFlags extends Marshallable[PlanetSidePacketFlags] with Serializable
Codec for PlanetSidePacketFlags