Class: S2M_HEARTBEAT2_Packet

Inherits:
Object
  • Object
show all
Includes:
SteamPacket
Defined in:
lib/steam/packets/s2m_heartbeat2_packet.rb

Overview

The S2M_HEARTBEAT2 packet type is used to signal a game servers availability and status to the master servers.

Constant Summary collapse

DEFAULT_DATA =
{
  :appid     => 320,
  :bots      => 0,
  :challenge => nil,
  :dedicated => 0,
  :gamedir   => 'hl2mp',
  :gameport  => 27015,
  :gametype  => 'ctf',
  :lan       => 1,
  :map       => 'null',
  :max       => 24,
  :os        => 'l',
  :password  => 0,
  :players   => 0,
  :product   => 'hl2dm',
  :protocol  => 7,
  :region    => 255,
  :secure    => 0,
  :specport  => 0,
  :type      => 'd',
  :version   => '1.0.0.0'
}

Constants included from SteamPacket

SteamPacket::A2M_GET_SERVERS_BATCH2_HEADER, SteamPacket::A2S_INFO_HEADER, SteamPacket::A2S_PLAYER_HEADER, SteamPacket::A2S_RULES_HEADER, SteamPacket::A2S_SERVERQUERY_GETCHALLENGE_HEADER, SteamPacket::C2M_CHECKMD5_HEADER, SteamPacket::M2A_SERVER_BATCH_HEADER, SteamPacket::M2C_ISVALIDMD5_HEADER, SteamPacket::M2S_REQUESTRESTART_HEADER, SteamPacket::RCON_GOLDSRC_CHALLENGE_HEADER, SteamPacket::RCON_GOLDSRC_NO_CHALLENGE_HEADER, SteamPacket::RCON_GOLDSRC_RESPONSE_HEADER, SteamPacket::S2A_INFO2_HEADER, SteamPacket::S2A_INFO_DETAILED_HEADER, SteamPacket::S2A_LOGSTRING_HEADER, SteamPacket::S2A_PLAYER_HEADER, SteamPacket::S2A_RULES_HEADER, SteamPacket::S2C_CHALLENGE_HEADER, SteamPacket::S2C_CONNREJECT_HEADER, SteamPacket::S2M_HEARTBEAT2_HEADER

Instance Method Summary collapse

Constructor Details

#initialize(data = {}) ⇒ S2M_HEARTBEAT2_Packet

Creates a new heartbeat packet to send to a master server



38
39
40
41
42
43
44
45
46
47
48
49
50
# File 'lib/steam/packets/s2m_heartbeat2_packet.rb', line 38

def initialize(data = {})
  data = DEFAULT_DATA.merge data

  if data[:challenge].nil?
    raise SteamCondenserException.new 'You have to provide a challenge number when sending a heartbeat to a master server.'
  end

  bytes = 0x0A.chr
  data.each { |k, v| bytes += "\\#{k}\\#{v}" }
  bytes += 0x0A.chr

  super S2M_HEARTBEAT2_HEADER, bytes
end

Instance Method Details

#to_sObject

Returns a byte array representation of the packet data



53
54
55
# File 'lib/steam/packets/s2m_heartbeat2_packet.rb', line 53

def to_s
  [@header_data, @content_data.string].pack('ca*')
end