Snippet: minecraft poll server

Written in Ruby and posted on Nov 27, 2011 at 20:52 by apoc
   1      @socket = TCPSocket.open('daddelbox.mount.at', 25565)
   2      @socket.write([0xFE].pack('c'))
   3      s = StringIO.new @socket.read
   4      if s.read(1) != "\xFF"
   5        m.reply 'invalid server reply'
   6        return
   7      end
   8      len = s.read(2).unpack('n').first.to_i
   9      welcome = s.read(len*2)
  10      welcome = Iconv.conv('utf-8', 'utf-16be', welcome)
  11      welcome, current, max = welcome.split("\xC2\xA7")
  12      m.reply "#{welcome} (#{current}/#{max})"
  13      @socket.close
  14