예제 #1
0
async def bank_interest():

    # Checking if client is ready and online
    await client.wait_until_ready()
    while not client.is_closed:

        # Day, time(s) days start @ 0
        sleep_this = time_format_new(BANK_INTEREST_DAY, BANK_INTEREST_TIME)
        send(2, "Interest in {}".format(sleep_this))
        await asleep(sleep_this)

        users = []

        # Mode_id=10, time="604800", time_type="SECOND"
        bank_update = get_users_lowest_bank_amount(10, "604800")
        for row in bank_update:

            # Split users between (updated this week)
            users.append(row[0])

            # If no money in bank do nothing
            if row[1] != 0:

                # Calculating interest
                add_this_memes = int(mceil(row[1] * interest / 100))

                # Checking if worth of adding
                if add_this_memes != 0:

                    # Add memes for user
                    user_add_points_in_bank(add_this_memes, row[0])

                    # Add logging
                    points_stats_insert(message.server.id, row[0], 11,
                                        "Interest", "", "",
                                        "+" + str(add_this_memes), "",
                                        "Interest", "", "", "", 0,
                                        add_this_memes, 0)

        # If bank not updated this week get users' bank amount
        bank_nonupdate = get_users_bank_amount(users)

        # For each user
        for kek in bank_nonupdate:

            # Calculating interest
            add_this_memes = int(mceil(kek[1] * interest / 100))

            # Checking if worth of adding
            if add_this_memes != 0:

                # Add memes for user
                user_add_points_in_bank(add_this_memes, kek[0])

                # Add logging
                points_stats_insert(message.server.id, kek[0], 11, "Interest",
                                    "", "", "+" + str(add_this_memes), "",
                                    "Interest", "", "", "", 0, add_this_memes,
                                    0)
예제 #2
0
async def daily(message, client, arguments):

    # deciding what day since epoch
    day = day_splitted_by_time(46800)

    # Checking for redeems for specific day
    redeems = users_daily_redeem_by_day(message.author.id, day)

    # Getting user points
    user_points = users_get_daily_points(message.author.id)[0]

    # Random
    amount = randint(daily_min, daily_max)

    # name
    name = author_nickanme(message.author)

    # Message
    if not redeems:
        await client.send_message(
            message.channel,
            ":moneybag: **| You redeemed your daily points worth of {} memes! You now have {} memes!**"
            .format(amount, user_points + amount))
        points_stats_insert(message.server.id, message.author.id, 2, "Daily",
                            "", "", "+" + str(amount), "", "", "", "", "", 0,
                            amount, 0)
        try:
            users_daily_redeem_by_day_add(message.author.id, name, day, amount)
        except:
            users_daily_redeem_by_day_add(message.author.id, "dailyLUL", day,
                                          amount)
        users_set_points_to_plus(amount, message.author.id)
    else:
        await client.send_message(
            message.channel,
            ":moneybag: **| Check again when the clock is `15:00`**")
예제 #3
0
async def fishing(message, client, arguments):

    # Getting name
    name = author_nickanme(message.author)

    # Sending message
    temporary = await client.send_message(
        message.channel,
        ":fishing_pole_and_fish: **| {} is fishing.... (wait)**".format(name))

    # Sleep for
    randomizer_sleep = randint(100, 300)
    await asleep(randomizer_sleep)

    # GET item rand
    randomizer_item = randint(0, 400)

    # What item
    if randomizer_item <= 10:
        spot = 0
    elif randomizer_item >= 10 and randomizer_item < 50:
        spot = 1
    else:
        spot = 2

    # Picking item randomly LUL
    hand = inventory[2][randint(0, len(inventory[0]) - 1)]

    # Sending message
    await client.delete_message(temporary)
    temporary_reaction = await client.send_message(
        message.channel,
        ":fishing_pole_and_fish: **| {}, you got {}! \n\nDo you want to sell it for: {} memes**"
        .format(name, hand["name"], hand["value"]))

    # Add reactions
    for item_emoji in ["✅", "❌"]:
        await client.add_reaction(temporary_reaction, item_emoji)

    # Wait for reaction
    react_result = await client.wait_for_reaction(user=message.author,
                                                  timeout=30,
                                                  check=emoji_check)

    # Del message
    await client.delete_message(temporary_reaction)

    # If wanting to sell
    try:
        if react_result.reaction.emoji.startswith("✅"):

            # Must get at this point because updates and optimization
            users_wealth = users_get_daily_points(message.author.id)[0]

            users_set_points_to_plus(hand["value"], message.author.id)
            points_stats_insert(message.server.id, message.author.id, 4,
                                "Fishing", "", "", "+" + str(hand["value"]),
                                "", hand["display_name"], "", "", "", 0,
                                hand["value"], 0)
            msg = ":fishing_pole_and_fish: **| {}, you got: {} from fishing! \n\nYou sold it for: {} memes and now have {}**".format(
                name, hand["name"], hand["value"], users_wealth)

        # AFK or deny to sell
        else:
            msg = ":fishing_pole_and_fish: **| {}, you got {}, {} memes, but you chose to not sell it!**".format(
                name, hand["name"], hand["value"])
    except:
        msg = ":fishing_pole_and_fish: **| {}, you got {}, {} memes, but you chose to not sell it!**".format(
            name, hand["name"], hand["value"])

    # Send message
    await client.send_message(message.channel, msg)
예제 #4
0
async def roll(message, client, arguments):

    for i in arguments:
        try:
            int(i)
        except:
            return

    if len(arguments) == 0:
        first_slot = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, ""]
        second_slot = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
        first = str(first_slot[randint(0, 10)])
        second = str(second_slot[randint(0, 9)])
        if first == "0" and second in [
                "1", "2", "3", "4", "5", "6", "7", "8", "9"
        ]:
            first = ""
        token, meme, double, memes, tokens = "", "", False, 0, 0

        # Checking if double
        if first == second:
            double = True

        # Getting roll history
        previous = stats_roll_get_previous(message.author.id, 10)

        # Cheking if double, no history(for abuse)
        insert_meme = ""
        insert_token = ""
        info2 = ""
        win_asd = 0
        if first == second:
            info2 = "tuplat"
            if not previous:

                # Add tokens
                if randint(0, 1000) == 342:  # one in 10000
                    tokens = 1
                    users_set_tokens_to_plus(tokens, message.author.id)
                    meme = " | You have won a token from roll!"
                    insert_token = "+" + str(tokens)
                    win_asd = 1

                # Add memes
                if randint(1, 5) == 2:
                    memes = 10
                    users_set_points_to_plus(memes, message.author.id)
                    token = " | You have won a {}memes from roll!".format(
                        memes)
                    insert_meme = "+" + str(memes)
                    win_asd = 1

        # Add roll stats
        stats_roll_add(message.author.id, first, second, double, memes, tokens)
        if win_asd == 1:
            points_stats_insert(message.server.id, message.author.id, 1,
                                "Roll", "", "", insert_meme, insert_token,
                                first + second, info2, "", "", 0, 0)

        # Formatting and sending message
        letter = "**{}{}{}{}**".format(first, second, token, meme)
        await client.send_message(message.channel,
                                  "<@" + message.author.id + "> " + letter)

    elif len(arguments) == 1:
        kek = randint(1, int(arguments[0]))
        await client.send_message(message.channel,
                                  "<@" + message.author.id + "> " + str(kek))
    elif len(arguments) == 2:
        kek = randint(int(arguments[0]), int(arguments[1]))
        await client.send_message(message.channel,
                                  "<@" + message.author.id + "> " + str(kek))
    return
예제 #5
0
async def roulette(message, client, arguments):

    # Catching errors so you won't get tiemd out forever
    if 1:
    #try:

        #if not message.channel.id in ["404356322595962880"]:
        #    return
        if len(arguments) == 1:

            #VALUES
            min_points = ROULETTE_MIN_POINTS
            winrate = ROULETTE_WINRATE
            special_winrate = ROULETTE_SPECIAL_WINRATE
            rand_low = ROULETTE_RAND_LOW
            rand_high = ROULETTE_RAND_HIGH
            special_channels = ROULETTE_SPECIAL_CHANNELS

            # Variables
            multiplier_outcome_str = "" # DO NOT TOUCH
            multiplier_outcome_multiplier_str = "" # DO NOT TOUCH
            amount = arguments[0] # DO NOT TOUCH

            # Getting name
            try:
                name = message.author.nick
                if name is None:
                    name = message.author.name
            except:
                name = message.author.name

            # Getting the amount of points
            user_points = users_get_daily_points(message.author.id)[0]

            #Validating input and roulette amount
            if amount != "all":

                # all in
                all_in = False

                # Checking for k=1000 points
                if "k" in amount:
                    amount = float(arguments[0].lower().replace("k","")) * 1000

                #Checking if number
                try:
                    user_gamble = int(amount)
                except ValueError:
                    return

            # Assigning users all points for !roulette all
            else:
                user_gamble = user_points
                all_in = True

            # Checking if user gambled mreo than x aoumnt of points
            if user_gamble < min_points:
                await client.send_message(message.channel, "<@{}> **You have to gamble at least {} memes!**".format(message.author.id, min_points))
                return

            # Checking pointsif user_gamble > user_points   :
            if user_gamble > user_points:
                await client.send_message(message.channel, "<@{}> **You don't have enough memes to gamble, you need {} memes!**".format(message.author.id, user_gamble - user_points))
                return

            # Cpecial channels
            if message.channel.id in special_channels:
                if randint(1,100) > special_winrate:
                    winrate = special_winrate
                    # Creating multiplier and some other stuff
                    mvalue = float(randint(rand_low, rand_high) / 100)
                    moutcome = int(mfloor(user_gamble * mvalue - user_gamble))
                    multiplier_outcome_str = "**+" + str(moutcome) + "**"
                    multiplier_outcome_multiplier_str = "Multiplier " + str(mvalue)
                    info3 = str(mvalue)
                else:
                    info3 = ""
            else:
                info3 = ""

            info1 = ""
            info2 = ""

            # Win
            if randint(1,100) < winrate:

                # Calculations for message formation later on
                outcome_total = user_gamble # + multiplier TODO
                total_points = user_points + outcome_total

                # Adding points and logging event for user
                users_set_points_to_plus(user_gamble, message.author.id)
                #points_history_roulette_add(message.author.id, "", user_gamble, "win", all_in)

                # Determine afterfix
                if all_in:
                    win_afterfix = ":confetti_ball: :confetti_ball:"
                    info2 = "All in"
                else:
                    win_afterfix = ":confetti_ball:"

                # Creating message
                letter = "** :slot_machine:  | {}, you have won {}{} memes, you now have {} memes! {} {}** ".format(name, outcome_total, multiplier_outcome_str, total_points, win_afterfix, multiplier_outcome_multiplier_str)
                try:
                    win_str_plus = "+" + str(int(outcome_total)+int(moutcome))
                    plus = int(outcome_total)+int(moutcome)
                except:
                    win_str_plus = "+" + str(int(outcome_total))
                    plus = int(outcome_total)

                minus = 0
                info1 = "Win"
            # Lose
            else:
                info3 = ""
                # Calculations for message formation later on
                outcome_total = user_gamble # + multiplier disabled cause not fair LUL
                total_points = user_points - outcome_total

                # Adding points and logging event for user
                users_set_points_to_minus(user_gamble, message.author.id)
                #points_history_roulette_add(message.author.id, "", user_gamble, "lose", all_in)

                # Determine afterfix
                if all_in:
                    win_afterfix = "<:angery:280761870447673344>"
                    info2 = "All in"
                else:
                    win_afterfix = "<:feelsrageman:318490463323553795>"



                # Creating message
                letter = "** :slot_machine:  | {}, you have lost {} memes, you now have {} memes! {}** ".format(name, outcome_total, total_points, win_afterfix)
                win_str_plus = "-" + str(user_gamble)
                plus = 0
                minus = int(user_gamble)
                info1 = "Lose"

            points_stats_insert(message.server.id, message.author.id, 5, "Roulette", str(user_gamble), "", win_str_plus, "", info1, info2, info3, "", 0, plus, minus)

            # Sending message, checking if worth of excitement
            if user_gamble / user_points > 0.8:
                                                                    # TODO add expression system to config file
                msg = await client.send_message(message.channel, "**<:VenskerChamp:313049600984612865> Rolling **")
                await sleepS(4.0)
                await client.edit_message(msg, letter)
                return

            # if not high bet do this no excitement
            else:
                await client.send_message(message.channel, letter)
예제 #6
0
async def slot_machine(message, client, arguments):

    # Checking for states
    users_points = int(users_get_points(message.author.id)[0])
    if len(arguments) == 0:
        await client.send_message(
            message.channel,
            ":slot_machine: **| You need to gamble atleast 10 memes!**")
        return

    # if not all run through letter check 1k = 1000
    if arguments[0] != "all":

        # Checking for k=1000 points
        if "k" in arguments[0]:
            arguments[0] = float(arguments[0].lower().replace("k", "")) * 1000

        #Checking if number
        try:
            arguments[0] = int(arguments[0])
        except ValueError:
            send(1, "Invalid currency or amount")
            return

    # if all set pot amount to users max points
    else:
        arguments[0] = users_points

    # checking if user has enough points to gamble
    if users_points < int(arguments[0]):
        await client.send_message(
            message.channel,
            ":slot_machine: **| You don't have enough points to gamble!**")
        return

    # Gambled more than 10 memes?
    if int(arguments[0]) < 10:
        await client.send_message(
            message.channel,
            ":slot_machine: **| You need to gamble atleast 10 memes!**")
        return

    # if user has more points than 10?
    if users_points < 10:
        await client.send_message(
            message.channel,
            ":slot_machine: **| You need to gamble atleast 10 memes!**")
        return

    # message state 1
    header1_stuff = create_slots_frame(message, 0)
    header1 = header1_stuff[1]

    # Message state 2
    header2_stuff = create_slots_frame(message, 0)
    header2 = header2_stuff[1]

    # Message state Final
    header_og = create_slots_frame(message, 1)
    kappa = header_og[0]
    header = header_og[1] + "\n"

    # values
    multiplier = 0.0
    straights = 0
    emojis = []
    """        # O O O
        # O O X
        # X X O
        if kappa[0][2] == kappa[1][2] == kappa[2][1]:
            straights += 1
            item = kappa[0][2]
            multiplier += floor(fruit_multiplier(item)*0.2)
            header += "You've got a {} streak\n".format(item)
            emojis.append(item)

        # O O X
        # X X O
        # O O O
        if kappa[0][1] == kappa[1][1] == kappa[2][0]:
            straights += 1
            item = kappa[0][1]
            multiplier += floor(fruit_multiplier(item)*0.2)
            header += "You've got a {} streak\n".format(item)
            emojis.append(item)

        # O O O
        # X O O
        # O X X
        if kappa[0][1] == kappa[1][2] == kappa[2][2]:
            straights += 1
            item = kappa[0][1]
            multiplier += floor(fruit_multiplier(item)*0.2)
            header += "You've got a {} streak\n".format(item)
            emojis.append(item)

        # X O O
        # O X X
        # O O O
        if kappa[0][0] == kappa[1][1] == kappa[2][1]:
            straights += 1
            item = kappa[0][0]
            multiplier += floor(fruit_multiplier(item)*0.2)
            header += "You've got a {} streak\n".format(item)
            emojis.append(item)

        # X X O
        # O O X
        # O O O
        if kappa[0][0] == kappa[1][0] == kappa[2][1]:
            straights += 1
            item = kappa[0][0]
            multiplier += floor(fruit_multiplier(item)*0.2)
            header += "You've got a {} streak\n".format(item)
            emojis.append(item)

        # O O O
        # X X O
        # O O X
        if kappa[0][1] == kappa[1][1] == kappa[2][2]:
            straights += 1
            item = kappa[0][1]
            multiplier += floor(fruit_multiplier(item)*0.2)
            header += "You've got a {} streak\n".format(item)
            emojis.append(item)

        # O O O
        # O X X
        # X O O
        if kappa[0][2] == kappa[1][1] == kappa[2][1]:
            straights += 1
            item = kappa[0][2]
            multiplier += floor(fruit_multiplier(item)*0.2)
            header += "You've got a {} streak\n".format(item)
            emojis.append(item)

        # O X X
        # X O O
        # O O O
        if kappa[0][1] == kappa[1][0] == kappa[2][0]:
            straights += 1
            item = kappa[0][1]
            multiplier += floor(fruit_multiplier(item)*0.2)
            header += "You've got a {} streak\n".format(item)
            emojis.append(item)

        # O X O
        # X O X
        # O O O
        if kappa[0][1] == kappa[1][0] == kappa[2][1]:
            straights += 1
            item = kappa[0][1]
            multiplier += floor(fruit_multiplier(item)*0.2)
            header += "You've got a {} streak\n".format(item)
            emojis.append(item)

        # O O O
        # O X O
        # X O X
        if kappa[0][2] == kappa[1][1] == kappa[2][2]:
            straights += 1
            item = kappa[0][2]
            multiplier += floor(fruit_multiplier(item)*0.2)
            header += "You've got a {} streak\n".format(item)
            emojis.append(item)

        # O O O
        # X O X
        # O X O
        if kappa[0][1] == kappa[1][2] == kappa[2][1]:
            straights += 1
            item = kappa[0][1]
            multiplier += floor(fruit_multiplier(item)*0.2)
            header += "You've got a {} streak\n".format(item)
            emojis.append(item)

        # X O X
        # O X O
        # O O O
        if kappa[0][0] == kappa[1][1] == kappa[2][0]:
            straights += 1
            item = kappa[0][0]
            multiplier += floor(fruit_multiplier(item)*0.2)
            header += "You've got a {} streak\n".format(item)
            emojis.append(item)"""

    # X X X
    # O O O
    # O O O
    if kappa[0][0] == kappa[1][0] == kappa[2][0]:
        straights += 1
        item = kappa[0][0]
        multiplier += fruit_multiplier(item)
        header += "You've got a {} streak\n".format(item)
        emojis.append(item)

    # O O O
    # X X X
    # O O O
    if kappa[0][1] == kappa[1][1] == kappa[2][1]:
        straights += 1
        item = kappa[0][1]
        multiplier += fruit_multiplier(item)
        header += "You've got a {} streak\n".format(item)
        emojis.append(item)

    # O O O
    # O O O
    # X X X
    if kappa[0][2] == kappa[1][2] == kappa[2][2]:
        straights += 1
        item = kappa[0][2]
        multiplier += fruit_multiplier(item)
        header += "You've got a {} streak\n".format(item)
        emojis.append(item)

    # X O O
    # O X O
    # O O X
    if kappa[0][0] == kappa[1][1] == kappa[2][2]:
        straights += 1
        item = kappa[0][0]
        multiplier += fruit_multiplier(item)
        header += "You've got a {} streak\n".format(item)
        emojis.append(item)

    # O O X
    # O X O
    # X O O
    if kappa[0][2] == kappa[1][1] == kappa[2][0]:
        straights += 1
        item = kappa[2][0]
        multiplier += fruit_multiplier(item)
        header += "You've got a {} streak\n".format(item)
        emojis.append(item)

    # Multiplier for 2 straights
    if straights == 2:
        multiplier += 5.0
    elif straights == 3:
        multiplier += 15.0

    # Multiplier
    if multiplier == 0.0:
        win_amount = arguments[0]
        win_str_plus = "-" + str(win_amount)
        minus = int(win_amount)
        plus = 0
    else:
        win_amount = floor(int(arguments[0]) * multiplier)
        if straights > 0:
            win_str_plus = "+" + str(win_amount - int(arguments[0]))
            minus = 0
            plus = win_amount - int(arguments[0])

    # gamble logging
    try:
        info1 = emojis[0]
    except:
        info1 = ""

    # gamble logging
    try:
        info2 = emojis[1]
    except:
        info2 = ""

    # gamble logging
    try:
        info3 = emojis[2]
    except:
        info3 = ""

    # Creating message
    if straights > 0:
        header += "\n:white_check_mark: **| <@{}>, you have won {} memes, you now have {} memes!**".format(
            message.author.id, str(win_amount),
            str(int(users_points) + int(win_amount)))
        users_set_points_to_plus(win_amount, message.author.id)
    else:
        header += "\n:x: **| <@{}>, you have lost {} memes, you now have {} memes!**".format(
            message.author.id, str(win_amount),
            str(int(users_points) - int(win_amount)))
        users_set_points_to_minus(win_amount, message.author.id)

    # gamble logging adding
    points_stats_insert(message.server.id, message.author.id, 8, "Slots",
                        arguments[0], "", win_str_plus, "", info1, info2,
                        info3, "", 0, plus, minus)
    # Send state 1
    sent = await client.send_message(message.channel, header1)

    # Send state 2
    await asleep(.5)
    await client.edit_message(sent, header2)

    # send state Final
    await asleep(.5)
    await client.edit_message(sent, header)