import es, playerlib, cPickle, os.path, time names = {} def load(): player_db = es.getAddonPath('whois') + '/names.db' if os.path.isfile(player_db): global names player_names = open(player_db) names = cPickle.load(player_names) player_names.close() if not es.exists('saycommand', '!whois'): es.regsaycmd('!whois', 'whois/whois', '!whois ') def unload(): save_data() if es.exists('saycommand', '!whois'): es.unregsaycmd('!whois') def round_end(ev): save_data() def save_data(): player_db = open(es.getAddonPath('whois') + '/names.db', 'w') cPickle.dump(names, player_db) player_db.close() def player_changename(ev): global names if not names.has_key(str(ev['newname']).lower()): names[str(ev['newname']).lower()] = {} names[str(ev['newname']).lower()][playerlib.getPlayer(ev['userid']).get('steamid')] = time.asctime() def player_activate(ev): global names if not names.has_key(playerlib.getPlayer(ev['userid']).get('name').lower()): names[playerlib.getPlayer(ev['userid']).get('name').lower()] = {} names[playerlib.getPlayer(ev['userid']).get('name').lower()][playerlib.getPlayer(ev['userid']).get('steamid')] = time.asctime() def whois(): userid = es.getcmduserid() if es.getargc() >= 1: if not es.getargs().split(' ')[0].startswith('STEAM_0:'): all_names = [] for one_name in names: if es.getargs().lower() in one_name.lower() and not one_name.lower() == es.getargs().lower(): all_names.append(one_name.lower()) if all_names: es.tell(userid, '#multi', '#greenFound the following steamids with the partial name #lightgreen%s'%es.getargs()) for random_name in all_names: es.tell(userid, '#multi', '#greenSteamids with the name #lightgreen%s'%random_name) for random_steamid in names[random_name]: es.tell(userid, '#multi', '#lightgreen%s#green connect time -- #lightgreen%s'%(random_steamid, names[random_name][random_steamid])) else: es.tell(userid, '#multi', '#greenSorry, no partial matches for #lightgreen%s#green were found!'%es.getargs()) if names.has_key(es.getargs().lower()): es.tell(userid, '#multi', '#greenFound the following steamids with the exact name #lightgreen%s'%es.getargs()) for steamid in names[es.getargs().lower()]: es.tell(userid, '#multi', '#lightgreen%s#green connect time -- #lightgreen%s'%(steamid, names[es.getargs().lower()][steamid])) else: es.tell(userid, '#multi', '#greenSorry, the exact name #lightgreen%s#green was not found!'%es.getargs()) else: name_list = [] for name in names: if names[name].has_key(es.getargs().split(' ')[0]): name_list.append(name) if len(name_list): es.tell(userid, '#multi', '#greenFound the following names with the steamid #lightgreen%s'%es.getargs().split(' ')[0]) for name2 in name_list: es.tell(userid, '#multi', '#lightgreen%s#green last used -- #lightgreen%s'%(name2, names[name2][es.getargs().split(' ')[0]])) else: es.tell(userid, '#multi', '#greenSorry, #lightgreen%s#green was not found'%es.getargs().split(' ')[0]) else: es.tell(userid, '#multi', '#greenInvalid syntax -- #lightgreen!whois ')