Sha256: 64129d42c905fde54d8c8bd9708a0e16684d41f1620cda7ea57c02e00724db1e

Contents?: true

Size: 1.67 KB

Versions: 1

Compression:

Stored size: 1.67 KB

Contents

# encoding: US-ASCII
require "socket"

class RconHlds
  def initialize(ip_addr, port, bind_port)
     @socket = UDPSocket.new
     @socket.bind "", bind_port
     @socket.connect ip_addr, port
  end
  def close
     @socket.close
     @socket = nil
     return true
  end
  def rcon_pass(pass)
     @pass = pass
     @socket.send "\xFF\xFF\xFF\xFFchallenge rcon", 0
     paket = @socket.recvfrom(1400)
     data = paket[0]
     data.gsub!("\xFF\xFF\xFF\xFFchallenge ", "")
     data.gsub!("\n\x00", "")
     @challenge = data
     @rcon_pass_respons = ""
     if ( @challenge =~ /rcon\s\d/ )
       @socket.send "\xFF\xFF\xFF\xFF#{@challenge} #{@pass}", 0
       rcon_paket = @socket.recvfrom(1400)
       if rcon_paket[0] == "\xFF\xFF\xFF\xFFl\x00\x00"
         @rcon_pass_respons = "Good Rcon"  
         return @rcon_pass_respons
       else
         @rcon_pass_respons = "Bad Rcon"  
         return @rcon_pass_respons
       end
     end     
  end
  def rcon_command(command)
     @command = command
     if ( @rcon_pass_respons == "Good Rcon" )
       @socket.send "\xFF\xFF\xFF\xFF#{@challenge} #{@pass} #{@command}", 0
       @socket.send "\xFF\xFF\xFF\xFF#{@challenge} #{@pass}", 0
       @receve_paket = true
       @datas = ""
       while @receve_paket do
         @command_paket = @socket.recvfrom(1400)
         data = @command_paket[0]
         @datas << data
         if ( @command_paket[0] == "\xFF\xFF\xFF\xFFl\x00\x00" )
           @receve_paket = false
         end
       end
       @datas.gsub!("\xFF\xFF\xFF\xFFl", "")
       @datas.gsub!("\x00\x00", "")
       return @datas
     else
       @rcon_command_respons = "Bad Rcon"
       return @rcon_command_respons
     end
  end
end

Version data entries

1 entries across 1 versions & 1 rubygems

Version Path
hldsrcon-0.1.5 lib/hldsrcon/rconhlds.rb