async def equip(cmd): response = "" user_data = EwUser(member=cmd.message.author) if cmd.message.channel.name != ewcfg.channel_dojo: response = "You must go to the #{} to change your equipment.".format( ewcfg.channel_dojo) elif user_data.life_state == ewcfg.life_state_corpse: response = "Ghosts can't equip weapons." elif user_data.life_state == ewcfg.life_state_juvenile: response = "Juvies can't equip weapons." else: value = None if cmd.tokens_count > 1: value = cmd.tokens[1] value = value.lower() weapon = ewcfg.weapon_map.get(value) if weapon != None: response = weapon.str_equip try: conn_info = ewutils.databaseConnect() conn = conn_info.get('conn') cursor = conn.cursor() user_skills = ewutils.weaponskills_get( member=cmd.message.author) user_data.weapon = weapon.id_weapon weaponskillinfo = user_skills.get(weapon.id_weapon) if weaponskillinfo == None: user_data.weaponskill = 0 user_data.weaponname = "" else: user_data.weaponskill = weaponskillinfo.get('skill') user_data.weaponname = weaponskillinfo.get('name') user_data.persist() conn.commit() finally: cursor.close() ewutils.databaseClose(conn_info) else: response = "Choose your weapon: {}".format( ewutils.formatNiceList(names=ewcfg.weapon_names, conjunction="or")) # Send the response to the player. await cmd.client.send_message( cmd.message.channel, ewutils.formatMessage(cmd.message.author, response))
async def equip(cmd): resp = await ewcmd.start(cmd) response = "" if cmd.message.channel.name != ewcfg.channel_dojo: response = "You must go to the #{} to change your equipment.".format( ewcfg.channel_dojo) else: value = None if cmd.tokens_count > 1: value = cmd.tokens[1] weapon = ewcfg.weapon_map.get(value) if weapon != None: response = weapon.str_equip try: conn = ewutils.databaseConnect() cursor = conn.cursor() user_data = EwUser(member=cmd.message.author, conn=conn, cursor=cursor) user_skills = ewutils.weaponskills_get( member=cmd.message.author, conn=conn, cursor=cursor) user_data.weapon = weapon.id_weapon weaponskillinfo = user_skills.get(weapon.id_weapon) if weaponskillinfo == None: user_data.weaponskill = 0 user_data.weaponname = "" else: user_data.weaponskill = weaponskillinfo.get('skill') user_data.weaponname = weaponskillinfo.get('name') user_data.persist(conn=conn, cursor=cursor) conn.commit() finally: cursor.close() conn.close() else: response = "Choose your weapon: {}".format( ewutils.formatNiceList(names=ewcfg.weapon_names, conjunction="or")) # Send the response to the player. await cmd.client.edit_message( resp, ewutils.formatMessage(cmd.message.author, response))
def __init__(self, member = None, id_user = None, id_server = None, data_level = 0): self.combatant_type = ewcfg.combatant_type_player if(id_user == None) and (id_server == None): if(member != None): id_server = member.server.id id_user = member.id # Retrieve the object from the database if the user is provided. if(id_user != None) and (id_server != None): self.id_server = id_server self.id_user = id_user try: conn_info = ewutils.databaseConnect() conn = conn_info.get('conn') cursor = conn.cursor() # Retrieve object cursor.execute("SELECT {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {} FROM users WHERE id_user = %s AND id_server = %s".format( ewcfg.col_slimes, ewcfg.col_slimelevel, ewcfg.col_hunger, ewcfg.col_totaldamage, ewcfg.col_bounty, ewcfg.col_weapon, ewcfg.col_trauma, ewcfg.col_slimecoin, ewcfg.col_time_lastkill, ewcfg.col_time_lastrevive, ewcfg.col_id_killer, ewcfg.col_time_lastspar, ewcfg.col_time_lasthaunt, ewcfg.col_time_lastinvest, ewcfg.col_inebriation, ewcfg.col_faction, ewcfg.col_poi, ewcfg.col_life_state, ewcfg.col_busted, ewcfg.col_time_last_action, ewcfg.col_weaponmarried, ewcfg.col_time_lastscavenge, ewcfg.col_bleed_storage, ewcfg.col_time_lastenter, ewcfg.col_time_lastoffline, ewcfg.col_time_joined, ewcfg.col_poi_death, ewcfg.col_slime_donations, ewcfg.col_poudrin_donations, ewcfg.col_arrested, ewcfg.col_splattered_slimes, ewcfg.col_time_expirpvp, ewcfg.col_time_lastenlist, ewcfg.col_apt_zone, ewcfg.col_visiting, ewcfg.col_active_slimeoid, ewcfg.col_has_soul, ewcfg.col_sap, ewcfg.col_hardened_sap, ewcfg.col_festivity, ewcfg.col_festivity_from_slimecoin, ewcfg.col_slimernalia_kingpin, ewcfg.col_manuscript, ewcfg.col_swear_jar, ewcfg.col_degradation, ewcfg.col_time_lastdeath, ewcfg.col_gambit, ewcfg.col_credence, ewcfg.col_credence_used, ewcfg.col_race, ewcfg.col_time_racialability, ), ( id_user, id_server )) result = cursor.fetchone(); if result != None: # Record found: apply the data to this object. self.slimes = result[0] self.slimelevel = result[1] self.hunger = result[2] self.totaldamage = result[3] self.bounty = result[4] self.weapon = result[5] self.trauma = result[6] self.slimecoin = result[7] self.time_lastkill = result[8] self.time_lastrevive = result[9] self.id_killer = result[10] self.time_lastspar = result[11] self.time_lasthaunt = result[12] self.time_lastinvest = result[13] self.inebriation = result[14] self.faction = result[15] self.poi = result[16] self.life_state = result[17] self.busted = (result[18] == 1) self.time_last_action = result[19] self.weaponmarried = (result[20] == 1) self.time_lastscavenge = result[21] self.bleed_storage = result[22] self.time_lastenter = result[23] self.time_lastoffline = result[24] self.time_joined = result[25] self.poi_death = result[26] self.slime_donations = result[27] self.poudrin_donations = result[28] self.arrested = (result[29] == 1) self.splattered_slimes = result[30] self.time_expirpvp = result[31] self.time_lastenlist = result[32] self.apt_zone = result[33] self.visiting = result[34] self.active_slimeoid = result[35] self.has_soul = result[36] self.sap = result[37] self.hardened_sap = result[38] self.festivity = result[39] self.festivity_from_slimecoin = result[40] self.slimernalia_kingpin = (result[41] == 1) self.manuscript = result[42] self.swear_jar = result[43] self.degradation = result[44] self.time_lastdeath = result[45] self.gambit = result[46] self.credence = result[47] self.credence_used = result[48] self.race = result[49] self.time_racialability = result[50] else: self.poi = ewcfg.poi_id_downtown self.life_state = ewcfg.life_state_juvenile # Create a new database entry if the object is missing. cursor.execute("REPLACE INTO users(id_user, id_server, poi, life_state) VALUES(%s, %s, %s, %s)", ( id_user, id_server, self.poi, self.life_state )) conn.commit() if (self.time_joined == 0) and (member != None) and (member.joined_at != None): self.time_joined = int(member.joined_at.timestamp()) # Get the skill for the user's current weapon. if self.weapon != None and self.weapon >= 0: skills = ewutils.weaponskills_get( id_server = id_server, id_user = id_user ) weapon_item = ewitem.EwItem(id_item = self.weapon) skill_data = skills.get(weapon_item.item_props.get("weapon_type")) if skill_data != None: self.weaponskill = skill_data['skill'] else: self.weaponskill = 0 if self.weaponskill == None: self.weaponskill = 0 else: self.weaponskill = 0 if data_level > 0: cursor.execute("SELECT {}, {}, {} FROM fashion_stats WHERE id_user = %s AND id_server = %s".format( ewcfg.col_attack, ewcfg.col_defense, ewcfg.col_speed, ), ( id_user, id_server, )) result = cursor.fetchone() if result != None: self.attack = result[0] self.defense = result[1] self.speed = result[2] cursor.execute("SELECT {} FROM freshness WHERE id_user = %s AND id_server = %s".format( ewcfg.col_freshness, ),( id_user, id_server )) result = cursor.fetchone() if result != None: self.freshness = result[0] self.move_speed = ewutils.get_move_speed(self) self.limit_fix() finally: # Clean up the database handles. cursor.close() ewutils.databaseClose(conn_info)
def __init__(self, member=None, conn=None, cursor=None, id_user=None, id_server=None): if (id_user == None) and (id_server == None): if (member != None): id_server = member.server.id id_user = member.id # Retrieve the object from the database if the user is provided. if (id_user != None) and (id_server != None): self.id_server = id_server self.id_user = id_user our_cursor = False our_conn = False try: # Get database handles if they weren't passed. if (cursor == None): if (conn == None): conn = ewutils.databaseConnect() our_conn = True cursor = conn.cursor() our_cursor = True # Retrieve object cursor.execute( "SELECT {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {} FROM users WHERE id_user = %s AND id_server = %s" .format(ewcfg.col_slimes, ewcfg.col_slimelevel, ewcfg.col_stamina, ewcfg.col_totaldamage, ewcfg.col_bounty, ewcfg.col_kills, ewcfg.col_weapon, ewcfg.col_trauma, ewcfg.col_slimecredit, ewcfg.col_time_lastkill, ewcfg.col_time_lastrevive, ewcfg.col_id_killer, ewcfg.col_time_lastspar, ewcfg.col_time_expirpvp, ewcfg.col_time_lasthaunt, ewcfg.col_time_lastinvest, ewcfg.col_slimepoudrins, ewcfg.col_weaponname, ewcfg.col_ghostbust, ewcfg.col_inebriation, ewcfg.col_faction), (id_user, id_server)) result = cursor.fetchone() if result != None: # Record found: apply the data to this object. self.slimes = result[0] self.slimelevel = result[1] self.stamina = result[2] self.totaldamage = result[3] self.bounty = result[4] self.kills = result[5] self.weapon = result[6] self.trauma = result[7] self.slimecredit = result[8] self.time_lastkill = result[9] self.time_lastrevive = result[10] self.id_killer = result[11] self.time_lastspar = result[12] self.time_expirpvp = result[13] self.time_lasthaunt = result[14] self.time_lastinvest = result[15] self.slimepoudrins = result[16] self.weaponname = result[17] self.ghostbust = (result[18] == 1) self.inebriation = result[19] self.faction = result[20] else: # Create a new database entry if the object is missing. cursor.execute( "REPLACE INTO users(id_user, id_server) VALUES(%s, %s)", (id_user, id_server)) conn.commit() # Get the skill for the user's current weapon. if self.weapon != None and self.weapon != "": skills = ewutils.weaponskills_get(id_server=id_server, id_user=id_user, conn=conn, cursor=cursor) skill_data = skills.get(self.weapon) if skill_data != None: self.weaponskill = skill_data['skill'] self.weaponname = skill_data['name'] else: self.weaponskill = 0 self.weaponname = "" if self.weaponskill == None: self.weaponskill = 0 self.weaponname = "" else: self.weaponskill = 0 self.weaponname = "" self.limit_fix() finally: # Clean up the database handles. if (our_cursor): cursor.close() if (our_conn): conn.close()
def __init__(self, member=None, id_user=None, id_server=None): if (id_user == None) and (id_server == None): if (member != None): id_server = member.server.id id_user = member.id # Retrieve the object from the database if the user is provided. if (id_user != None) and (id_server != None): self.id_server = id_server self.id_user = id_user try: conn_info = ewutils.databaseConnect() conn = conn_info.get('conn') cursor = conn.cursor() # Retrieve object cursor.execute( "SELECT {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {} FROM users WHERE id_user = %s AND id_server = %s" .format(ewcfg.col_slimes, ewcfg.col_slimelevel, ewcfg.col_hunger, ewcfg.col_totaldamage, ewcfg.col_bounty, ewcfg.col_weapon, ewcfg.col_trauma, ewcfg.col_slimecredit, ewcfg.col_time_lastkill, ewcfg.col_time_lastrevive, ewcfg.col_id_killer, ewcfg.col_time_lastspar, ewcfg.col_time_lasthaunt, ewcfg.col_time_lastinvest, ewcfg.col_weaponname, ewcfg.col_ghostbust, ewcfg.col_inebriation, ewcfg.col_faction, ewcfg.col_poi, ewcfg.col_life_state, ewcfg.col_busted, ewcfg.col_rrchallenger), (id_user, id_server)) result = cursor.fetchone() if result != None: # Record found: apply the data to this object. self.slimes = result[0] self.slimelevel = result[1] self.hunger = result[2] self.totaldamage = result[3] self.bounty = result[4] self.weapon = result[5] self.trauma = result[6] self.slimecredit = result[7] self.time_lastkill = result[8] self.time_lastrevive = result[9] self.id_killer = result[10] self.time_lastspar = result[11] self.time_lasthaunt = result[12] self.time_lastinvest = result[13] self.weaponname = result[14] self.ghostbust = (result[15] == 1) self.inebriation = result[16] self.faction = result[17] self.poi = result[18] self.life_state = result[19] self.busted = (result[20] == 1) self.rr_challenger = result[21] else: # Create a new database entry if the object is missing. cursor.execute( "REPLACE INTO users(id_user, id_server, poi, life_state) VALUES(%s, %s, %s, %s)", (id_user, id_server, ewcfg.poi_id_downtown, ewcfg.life_state_juvenile)) conn.commit() # Get the skill for the user's current weapon. if self.weapon != None and self.weapon != "": skills = ewutils.weaponskills_get(id_server=id_server, id_user=id_user) skill_data = skills.get(self.weapon) if skill_data != None: self.weaponskill = skill_data['skill'] self.weaponname = skill_data['name'] else: self.weaponskill = 0 self.weaponname = "" if self.weaponskill == None: self.weaponskill = 0 self.weaponname = "" else: self.weaponskill = 0 self.weaponname = "" self.limit_fix() finally: # Clean up the database handles. cursor.close() ewutils.databaseClose(conn_info)