Packages

package packet

Ordering
  1. Alphabetic
Visibility
  1. Public
  2. Protected

Package Members

  1. package control
  2. package crypto
  3. package game

Type Members

  1. 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

  2. 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

  3. 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

  4. 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

  5. trait Marshallable[T] extends AnyRef

    Used by companion objects to create encoders and decoders

  6. trait PlanetSideControlPacket extends PlanetSidePacket

    PlanetSide control packets: net.psforever.packet.control._

  7. trait PlanetSideCryptoPacket extends PlanetSidePacket

    PlanetSide crypto packets: net.psforever.packet.crypto._

  8. trait PlanetSideGamePacket extends PlanetSidePacket

    PlanetSide game packets: net.psforever.packet.game._

  9. sealed trait PlanetSidePacket extends Serializable

    The base of all packets

  10. sealed trait PlanetSidePacketContainer extends AnyRef

    Base trait of the packet container case class.

  11. final case class PlanetSidePacketFlags(packetType: PacketType.Value, secured: Boolean) extends Product with Serializable

    PlanetSide packet flags (beginning of most packets)

Value Members

  1. object ControlPacketOpcode extends Enumeration
  2. object CryptoPacketOpcode extends Enumeration
  3. 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.

  4. object PacketCoding
  5. object PacketHelpers
  6. 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

  7. object PlanetSidePacketFlags extends Marshallable[PlanetSidePacketFlags] with Serializable

    Codec for PlanetSidePacketFlags

Ungrouped