class Zrcon
Constants
- ConnectError
- VERSION
Attributes
host[RW]
password[RW]
port[RW]
Public Class Methods
new(host: ENV['RCON_HOST'], port: ENV['RCON_PORT'], password: ENV['RCON_PASSWORD'])
click to toggle source
# File lib/zrcon.rb, line 11 def initialize(host: ENV['RCON_HOST'], port: ENV['RCON_PORT'], password: ENV['RCON_PASSWORD']) @host = host.to_s @port = port.to_i @password = password.to_s end
Public Instance Methods
auth()
click to toggle source
# File lib/zrcon.rb, line 17 def auth request = Packet.auth password send request response = receive response.type == 2 && request.id == response.id end
command(cmd)
click to toggle source
# File lib/zrcon.rb, line 25 def command(cmd) request = Packet.command cmd send request response = receive response.data end
conn()
click to toggle source
# File lib/zrcon.rb, line 32 def conn @conn ||= TCPSocket.new host, port rescue SocketError raise ConnectError, "bad hostname perhaps? (#{host})" rescue Errno::ETIMEDOUT raise ConnectError, "timed out connecting to #{host}:#{port}" rescue Errno::ECONNREFUSED raise ConnectError, "connection refused" end
next_id()
click to toggle source
# File lib/zrcon.rb, line 42 def next_id @id ||= 0 @id += 1 end
read_int()
click to toggle source
# File lib/zrcon.rb, line 56 def read_int conn.read(4).to_s.unpack("l<").first end
receive()
click to toggle source
# File lib/zrcon.rb, line 51 def receive length = read_int Packet.decode conn.read(length) end
send(packet)
click to toggle source
# File lib/zrcon.rb, line 47 def send(packet) conn.write packet.encode end