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)
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`**")
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)
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
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)
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)