require 'teamspeak-ruby' class Janitor debug_mode = true $ts = Teamspeak::Client.new('ts3.vereto.net') def new $ts = login() end def login() $ts.login('serveradmin', ENV["SrvQry"].dup) $ts.command('use', {sid: 1}) return ts end def roll() return 1 + rand(6) end def gsay(msg) if debug_mode == true $ts.command('sendtextmessage', {targetmode: 3, target: 1, msg: msg}) else $ts.command('sendtextmessage', {targetmode: 1, target: 13, msg: msg}) end end def listen(global) if global == true return $ts.command('servernotifyregister', event: 'textserver')[0] else move_self('218') return $ts.command('servernotifyregister', event: 'textchannel', id: '218' )[0] end end def get_clients() return $ts.command('clientlist') end def get_channels() return $ts.command('channellist') end def find_client(name) #//This doesnt seem to work very well return $ts.command('clientfind', {pattern: name.to_s}) end def whoami() return $ts.command('whoami') end def move_client(clid, cid) return $ts.command('clientmove', clid: clid, cid: cid) end def move_self(cid) return move_client(find_client('serveradmin from')[0]['clid'], cid) end def check_channels() server_info = $ts.command('serverinfo') t = server_info['virtualserver_uptime'] mm, ss = t.divmod(60) #=> [4515, 21] hh, mm = mm.divmod(60) #=> [75, 15] dd, hh = hh.divmod(24) #=> [3, 3] puts "Server has been online for: %d days, %d hours, %d minutes and %d seconds" % [dd, hh, mm, ss] puts "Clients Online: " + server_info['virtualserver_clientsonline'].to_s $ts.command('channellist').each do |channel| channel_quality = ts.command('channelinfo', cid: channel['cid'])['channel_codec_quality'] puts "(" << channel['cid'].to_s << ")" << channel['channel_name'] << "| [Codec] " << channel_quality.to_s if channel_quality != 9 puts "Needs set!" $ts.command('channeledit', cid: channel['cid'], channel_codec_quality: 9) end $ts.command('clientlist').each do |user| if user['cid'] == channel['cid'] server_groups = $ts.command('servergroupsbyclientid', cldbid: user['client_database_id']) puts "--------" << user['client_nickname'] << "(" << user['clid'].to_s << ")" << "[" << server_groups[0]["name"].to_s << "]" end end end end end