3 `j @sHddlZddlZddlZddlZGdddejZedkrDejdS)Nc@s8eZdZdZddZddZddZdd Zd d Zd S) Plugin minecraftc Csr|jddjd}i}xT|D]J}ytjtjtj}|jdd}t|jdd}|j||f|j|jd|j|j d|j |d |j|jd |j ||j ||j |}d } xt | |kr| |j d 7} qW|jWn YnXi} y8tj| jdd } t| d| d<t| d| d<Wnd| d<d| d<YnX| |t|jdd<qW|S)z Fetch the amount of active and max players add to /etc/nixstats.ini [minecraft] enabled=yes hosts=127.0.0.1:8000,127.0.0.2:8000... rZhosts,:rzutf8iplayersZonlinemax.-)getsplitsocketAF_INET SOCK_STREAMintconnectsend pack_dataencode pack_port unpack_varintlenrecvclosejsonloadsdecodestrreplace) selfconfigZmy_hostsresultZconnection_stringshostnameportldresultsr r,I/usr/local/lib/python3.6/site-packages/nixstatsagent/plugins/minecraft.pyrun s: .    z Plugin.runcCsFd}xO}|d@sPqW|S)Nrr)rangeordr)r#r&r*ibr,r,r-r<szPlugin.unpack_varintcCsHd}x>|d@}|dL}|tjd||dkr,dndB7}|dkrPqW|S)Nr r0r1Brr2)structpack)r#r*or6r,r,r- pack_varintEs zPlugin.pack_varintcCs|jt||S)N)r;r)r#r*r,r,r-rOszPlugin.pack_datacCs tjd|S)Nz>H)r8r9)r#r5r,r,r-rRszPlugin.pack_portN)__name__ __module__ __qualname__r.rr;rrr,r,r,r-rs 3  r__main__)Zpluginsrr8rZ BasePluginrr<executer,r,r,r-s O