예제 #1
0
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)
예제 #2
0
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
예제 #3
0
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))
예제 #4
0
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)
예제 #5
0
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)