async def update_slimernalia_kingpin(client, server): return # Depose current slimernalia kingpin kingpin_state = EwGamestate(id_server=server.id, id_state='slimernaliakingpin') old_kingpin_id = int(kingpin_state.value) if old_kingpin_id != None and old_kingpin_id > 0: kingpin_state.value = '-1' try: old_kingpin_member = server.get_member(old_kingpin_id) await ewrolemgr.updateRoles(client=client, member=old_kingpin_member) except: ewutils.logMsg( "Error removing kingpin of slimernalia role from {} in server {}." .format(old_kingpin_id, server.id)) # Update the new kingpin of slimernalia new_kingpin_id = ewutils.get_most_festive(server) kingpin_state.value = str(new_kingpin_id) # Reset the new kingpin's festivity upon getting the award old_festivity = ewstats.get_stat(id_server=server.id, id_user=new_kingpin_id, metric=ewcfg.stat_festivity) ewstats.set_stat(id_server=server.id, id_user=new_kingpin_id, metric=ewcfg.stat_festivity, value=0) #new_kingpin.festivity = 0 #new_kingpin.persist() try: new_kingpin_member = server.get_member(new_kingpin_id) await ewrolemgr.updateRoles(client=client, member=new_kingpin_member) except: ewutils.logMsg( "Error adding kingpin of slimernalia role to user {} in server {}." .format(new_kingpin_id, server.id)) if new_kingpin_member: # Format and release a message from Phoebus about how who just won and how much slime they got announce_content = ewcfg.slimernalia_kingpin_announcement.format( player=("@" + str(new_kingpin_member.id)), festivity=old_festivity) announce = discord.Embed() announce.set_thumbnail(url="https://i.imgur.com/aVfaB9I.png") announce.description = "**Phoebus**{}".format(ewcfg.emote_verified) announce.color = discord.Color.green() announce.add_field(name='\u200b', value=announce_content) channel = get_channel(server=server, channel_name="auditorium") await send_message(client, channel, embed=announce)
async def prank_item_effect_trap(cmd, item): item_action = "" mentions_user = False use_mention_displayname = False side_effect = "" if cmd.mentions_count == 1: mentions_user = True if mentions_user: response = "You can't use that item on someone else! You gotta lay it down in a district!\n**(Hint: !use item)**" else: pranker_data = EwUser(member=cmd.message.author) if ewcfg.swilldermuk_active: credence = ewstats.get_stat(id_server=cmd.guild.id, id_user=cmd.message.author.id, metric=ewcfg.stat_credence) if credence == 0: response = "You can't lay down a trap without any credence!" return item_action, response, use_mention_displayname, side_effect # Store values inside the trap's item_props halved_credence = int(credence / 2) if halved_credence == 0: halved_credence = 1 ewstats.set_stat(id_server=cmd.guild.id, id_user=cmd.message.author.id, metric=ewcfg.stat_credence_used, value=halved_credence) ewstats.change_stat(id_server=cmd.guild.id, id_user=cmd.message.author.id, metric=ewcfg.stat_credence_used, n=halved_credence) item.item_props["trap_stored_credence"] = halved_credence else: item.item_props["trap_stored_credence"] = 0 item.item_props["trap_user_id"] = str(pranker_data.id_user) item.persist() pranker_data.persist() response = "You lay down a {}. Hopefully someone's dumb enough to fall for it.".format( item.item_props.get('item_name')) item_action = "drop" return item_action, response, use_mention_displayname, side_effect
async def get_credence(cmd): if not cmd.message.author.server_permissions.administrator: return response = "DEBUG: You get 1,000 credence!" ewstats.change_stat(id_server=cmd.guild.id, id_user=cmd.message.author.id, metric=ewcfg.stat_credence, n=1000) ewstats.set_stat(id_server=cmd.guild.id, id_user=cmd.message.author.id, metric=ewcfg.stat_credence_used, value=0) await ewutils.send_message( cmd.client, cmd.message.channel, ewutils.formatMessage(cmd.message.author, response))
async def set_gambit(cmd): if not cmd.message.author.server_permissions.administrator: return if cmd.mentions_count == 1: member = cmd.mentions[0] else: member = cmd.message.author if not len(cmd.tokens) > 1: return gambit_set = int(cmd.tokens[1]) ewstats.set_stat(id_server=cmd.guild.id, id_user=member.id, metric=ewcfg.stat_gambit, value=gambit_set) ewstats.set_stat(id_server=cmd.guild.id, id_user=member.id, metric=ewcfg.stat_credence, value=100) ewstats.set_stat(id_server=cmd.guild.id, id_user=member.id, metric=ewcfg.stat_credence_used, value=0) response = "Gambit for {} set to {:,}.".format(member.display_name, gambit_set) await ewutils.send_message(cmd.client, cmd.message.channel, response)
async def reset_prank_stats(cmd): if not cmd.message.author.server_permissions.administrator: return if cmd.mentions_count == 0: member = cmd.message.author else: member = cmd.mentions[0] ewstats.set_stat(id_server=cmd.guild.id, id_user=member.id, metric=ewcfg.stat_gambit, value=0) ewstats.set_stat(id_server=cmd.guild.id, id_user=member.id, metric=ewcfg.stat_credence, value=100) ewstats.set_stat(id_server=cmd.guild.id, id_user=member.id, metric=ewcfg.stat_credence_used, value=0) response = "Prank stats reset for {}.".format(member.display_name) await ewutils.send_message(cmd.client, cmd.message.channel, response)