Class: RCON::Source
Instance Attribute Summary collapse
- 
  
    
      #authed  ⇒ Object 
    
    
  
  
  
  
    
      readonly
    
    
  
  
  
  
  
  
    Authentication Status. 
- 
  
    
      #host  ⇒ Object 
    
    
  
  
  
  
    
      readonly
    
    
  
  
  
  
  
  
    Host of connection. 
- 
  
    
      #packet  ⇒ Object 
    
    
  
  
  
  
    
      readonly
    
    
  
  
  
  
  
  
    Packet::Source object that was sent as a result of the last query. 
- 
  
    
      #port  ⇒ Object 
    
    
  
  
  
  
    
      readonly
    
    
  
  
  
  
  
  
    Port of connection. 
- 
  
    
      #return_packets  ⇒ Object 
    
    
  
  
  
  
    
    
  
  
  
  
  
  
    return full packet, or just data?. 
- 
  
    
      #socket  ⇒ Object 
    
    
  
  
  
  
    
      readonly
    
    
  
  
  
  
  
  
    TCPSocket object. 
Instance Method Summary collapse
- 
  
    
      #auth(password)  ⇒ Object 
    
    
      (also: #authenticate)
    
  
  
  
  
  
  
  
  
  
    Requests authentication from the RCon server, given a password. 
- 
  
    
      #command(command)  ⇒ Object 
    
    
  
  
  
  
  
  
  
  
  
    Sends a RCon command to the server. 
- 
  
    
      #cvar(cvar_name)  ⇒ Object 
    
    
  
  
  
  
  
  
  
  
  
    See Query#cvar. 
- 
  
    
      #disconnect  ⇒ Object 
    
    
  
  
  
  
  
  
  
  
  
    Disconnects from the Source server. 
- 
  
    
      #initialize(host = 'localhost', port = 25575)  ⇒ Source 
    
    
  
  
  
    constructor
  
  
  
  
  
  
  
    Given a host and a port (dotted-quad or hostname OK), creates a Query::Source object. 
Constructor Details
#initialize(host = 'localhost', port = 25575) ⇒ Source
Given a host and a port (dotted-quad or hostname OK), creates a Query::Source object. Note that this will still require an authentication packet (see the auth() method) before commands can be sent.
| 124 125 126 127 128 129 130 131 | # File 'lib/rcon/rcon.rb', line 124 def initialize(host = 'localhost', port = 25575) @host = host @port = port @socket = nil @packet = nil @authed = false @return_packets = false end | 
Instance Attribute Details
#authed ⇒ Object (readonly)
Authentication Status
| 113 114 115 | # File 'lib/rcon/rcon.rb', line 113 def authed @authed end | 
#host ⇒ Object (readonly)
Host of connection
| 109 110 111 | # File 'lib/rcon/rcon.rb', line 109 def host @host end | 
#packet ⇒ Object (readonly)
Packet::Source object that was sent as a result of the last query
| 105 106 107 | # File 'lib/rcon/rcon.rb', line 105 def packet @packet end | 
#port ⇒ Object (readonly)
Port of connection
| 111 112 113 | # File 'lib/rcon/rcon.rb', line 111 def port @port end | 
#return_packets ⇒ Object
return full packet, or just data?
| 115 116 117 | # File 'lib/rcon/rcon.rb', line 115 def return_packets @return_packets end | 
#socket ⇒ Object (readonly)
TCPSocket object
| 107 108 109 | # File 'lib/rcon/rcon.rb', line 107 def socket @socket end | 
Instance Method Details
#auth(password) ⇒ Object Also known as: authenticate
Requests authentication from the RCon server, given a password. Is only expected to be used once.
| 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199 | # File 'lib/rcon/rcon.rb', line 178 def auth(password) establish_connection @packet = Packet::Source.new @packet.auth(password) @socket.print @packet.to_s # on auth, one junk packet is sent rpacket = nil 2.times { rpacket = build_response_packet } if rpacket.command_type != Packet::Source::RESPONSE_AUTH raise NetworkException.new("error authenticating: #{rpacket.command_type}") end @authed = true if @return_packets return rpacket else return true end end | 
#command(command) ⇒ Object
Sends a RCon command to the server. May be used multiple times after an authentication is successful.
| 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 | # File 'lib/rcon/rcon.rb', line 150 def command(command) if ! @authed raise NetworkException.new("You must authenticate the connection successfully before sending commands.") end @packet = Packet::Source.new @packet.command(command) @socket.print @packet.to_s rpacket = build_response_packet if rpacket.command_type != Packet::Source::RESPONSE_NORM raise NetworkException.new("error sending command: #{rpacket.command_type}") end if @return_packets return rpacket else return rpacket.string1 end end | 
#cvar(cvar_name) ⇒ Object
See Query#cvar.
| 137 138 139 140 141 142 143 | # File 'lib/rcon/rcon.rb', line 137 def cvar(cvar_name) return_packets = @return_packets @return_packets = false response = super @return_packets = return_packets return response end | 
#disconnect ⇒ Object
Disconnects from the Source server.
| 207 208 209 210 211 212 213 | # File 'lib/rcon/rcon.rb', line 207 def disconnect if @socket @socket.close @socket = nil @authed = false end end |