def receive_json(j)
if j['p']
receive_prompt(j['p'])
elsif j['d']
receive_raw(j['d'])
elsif j['m']
receive_msg(j['m'])
elsif j['mb']
receive_msg_bcast(j['mb'])
elsif j['s']
receive_shell_cmd(j['s'])
elsif j.include?('sc')
receive_shell_result(j['sc'])
elsif j['g']
receive_banner(*j['g'].split(" ", 3))
elsif j['c']
receive_completion(j['c'])
elsif j.include?('a')
receive_auth(*Array(j['a']))
elsif j['sd']
receive_shell_data(j['sd'])
elsif j['ssc']
receive_shell_sig(:term)
elsif j['hb']
receive_heartbeat(j['hb'])
elsif j['rs']
receive_register_server(*Array(j['rs']))
elsif j['urs']
receive_unregister_server(j['urs'])
elsif j.include?('sl')
j['sl'] ? receive_server_list(j['sl']) : receive_server_list
elsif j['tls']
receive_start_tls
elsif j['pc']
receive_proxy_connection(j['pc'])
else
receive_unknown(j)
end
j
end