├── log.txt ├── __pycache__ ├── tok.cpython-310.pyc └── generation.cpython-310.pyc ├── README.md ├── tok.py ├── generation.py └── bot.py /log.txt: -------------------------------------------------------------------------------- 1 | Tripping_Lettuce:<527181256929312769>: 2 | Bet amount:12 with a of 7877 (Confirmed) (Coins Held intill bet completed) -------------------------------------------------------------------------------- /__pycache__/tok.cpython-310.pyc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/TrippingLettuce/Discord-Casiono-Bot/main/__pycache__/tok.cpython-310.pyc -------------------------------------------------------------------------------- /__pycache__/generation.cpython-310.pyc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/TrippingLettuce/Discord-Casiono-Bot/main/__pycache__/generation.cpython-310.pyc -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # Casiono-Bot 2 | 3 | Discord Casino bot that has black jack,roulette,dice,and a leaderboard 4 | Stores 'coins' and live bet data in mongo 5 | -------------------------------------------------------------------------------- /tok.py: -------------------------------------------------------------------------------- 1 | #BOT TOKEN (Needed) 2 | token = '' 3 | #MONGO TOKEN (Needed) 4 | mongo = '' 5 | #MONGO DB name (Client)(Needed) 6 | client = 'CasinoBot' 7 | #MONGO COLLECTION (stores user_id and user_coins) {"_id":user_id,"coins":user_coins} (Needed) 8 | coin_collection = "UserCoins" 9 | #CHANNEL ID (Right Click channel to get ID) (Needed) 10 | channel_ID = 0 11 | 12 | 13 | #Must do ?sync to add commands to discord server 14 | -------------------------------------------------------------------------------- /generation.py: -------------------------------------------------------------------------------- 1 | import random 2 | 3 | def roulette_blackorred(bet_color): 4 | random_num = random.randint(0, 1) 5 | if bet_color == 'red' and random_num == 0: 6 | return True 7 | elif bet_color == 'black' and random_num == 1: 8 | return True 9 | else: 10 | return False 11 | 12 | import random 13 | 14 | def dice_game(chance_to_land:int): 15 | # Take user input for the chance to land 16 | # Roll two dice 17 | dice1 = random.randint(1, 6) 18 | dice2 = random.randint(1, 6) 19 | total = dice1 + dice2 20 | 21 | # Check if user guess is correct 22 | if total == chance_to_land: 23 | return True, total 24 | else: 25 | return False, total 26 | 27 | -------------------------------------------------------------------------------- /bot.py: -------------------------------------------------------------------------------- 1 | import discord 2 | from discord.ext import commands 3 | from discord.ext.commands import Context 4 | from discord import app_commands 5 | import pymongo 6 | import generation 7 | import tok 8 | import itertools 9 | import random 10 | 11 | # 2.0 12 | # Add more emojis when win 13 | # More ways to bet in black jack and roullet 14 | # Card images 15 | 16 | 17 | MONGO = tok.mongo 18 | TOKEN = tok.token 19 | COIN_COLLECTION = tok.coin_collection 20 | CHANNEL_ID = tok.channel_ID 21 | CLIENT = tok.client 22 | 23 | client = pymongo.MongoClient(MONGO) 24 | db = client[CLIENT] 25 | 26 | #------ Bot ------ 27 | intents = discord.Intents.default() 28 | intents.members = True 29 | intents.message_content = True 30 | bot = commands.Bot(command_prefix='?', intents=intents) 31 | #--- Bot Startup 32 | @bot.event 33 | async def on_ready(): 34 | print(f'Logged in as {bot.user}') #Bot Name 35 | 36 | 37 | 38 | # "_id":int , "coins":int 39 | @bot.tree.command() 40 | async def db(interaction: discord.Interaction,coins:int): 41 | db = client[CLIENT] 42 | collection = db[COIN_COLLECTION] 43 | collection.insert_one({"_id": interaction.user.id,"user_name":interaction.user.name,"coins":coins}) 44 | await interaction.response.send_message("TRUE") 45 | 46 | #------ Slash Commands ------ 47 | #------ Status ------ 48 | @bot.tree.command() 49 | async def status(interaction: discord.Interaction): 50 | """Button Test""" 51 | embed = discord.Embed(title=f"{interaction.user.name} Status",description=f"Name: {interaction.user.name}\nID: {interaction.user.id}\nCoins: DB ENTER", color=0x11806A) 52 | await interaction.response.send_message(embed = embed,ephemeral=True) 53 | 54 | #------ Roulette ------ 55 | @bot.tree.command() 56 | async def roulette(interaction: discord.Interaction, bet:int): 57 | #Bet ammount first 58 | """Play Roulette ⬛🟥⬛🟥""" 59 | bet = bet 60 | db = client[CLIENT] 61 | collection = db[COIN_COLLECTION] 62 | userData = collection.find_one({"_id": interaction.user.id}) 63 | total = userData["coins"] 64 | if bet > total: 65 | embed = discord.Embed(title=f"Bet Canceled",description=f"Your total coins of {total} is less then bet amount {bet}", color=0xFF0000) 66 | log(interaction.user.name,interaction.user.id,f"Bet amount:{bet} but was over total {total} (Canceled)") 67 | await interaction.response.send_message(embed = embed,ephemeral=True) 68 | elif bet <= total: 69 | log(interaction.user.name,interaction.user.id,f"Bet amount:{bet} with a of {total} (Confirmed) (Coins Held intill bet completed)") 70 | view = roulette_check() 71 | userData["coins"] = userData["coins"] - bet 72 | collection.replace_one({"_id":interaction.user.id}, userData) 73 | db = client[CLIENT] 74 | collection = db["LiveBets"] 75 | collection.insert_one({"_id": interaction.user.id,"bet":bet}) 76 | embed = discord.Embed(title=f"Roulette ⬛🟥⬛🟥",description=f"Confirm your bet amount of {bet}", color=0x11806A) 77 | await interaction.response.send_message(embed = embed,view=view,ephemeral=True) 78 | 79 | #Delete after its been sent 80 | class roulette_check(discord.ui.View): 81 | @discord.ui.button(label = "Confirm", style = discord.ButtonStyle.success) 82 | async def confirmed(self,interaction:discord.Interaction, button: discord.ui.Button): 83 | db = client[CLIENT] 84 | collection = db["LiveBets"] 85 | query = {"_id":interaction.user.id} 86 | if collection.count_documents(query) == 0: 87 | #If button is hit with no live bets disable button 88 | button.disabled = True 89 | await interaction.response.edit_message(view = self) 90 | elif collection.count_documents(query) == 1: 91 | des = "Please pick a Color" 92 | view = roulette_pick() 93 | embed = discord.Embed(title="Welcome to Roulette", description=des, color=0x2D9922) 94 | await interaction.response.send_message(embed= embed,view=view,ephemeral=True) 95 | 96 | 97 | @discord.ui.button(label = "", style = discord.ButtonStyle.grey, 98 | emoji = "❌" ) 99 | async def exit(self,interaction:discord.Interaction, button: discord.ui.Button): 100 | db = client[CLIENT] 101 | collection = db["LiveBets"] 102 | query = {"_id":interaction.user.id} 103 | if collection.count_documents(query) == 0: 104 | #If button is hit with no live bets disable button 105 | button.disabled = True 106 | await interaction.response.edit_message(view = self) 107 | elif collection.count_documents(query) == 1: 108 | #But bets back into wallet and cancel live bet 109 | db = client[CLIENT] 110 | collection = db["LiveBets"] 111 | betData = collection.find_one({"_id": interaction.user.id}) 112 | bet = betData["bet"] 113 | collection.delete_one({"_id": interaction.user.id}) 114 | collection = db[COIN_COLLECTION] 115 | userData = collection.find_one({"_id": interaction.user.id}) 116 | userData["coins"] = userData["coins"] + bet 117 | collection.replace_one({"_id":interaction.user.id}, userData) 118 | embed = discord.Embed(title="Canceled", description=f"Your bet of {bet} has been returned", color=0x2D9922) 119 | await interaction.response.send_message(embed= embed,ephemeral=True) 120 | 121 | #ONly user can push button 122 | class roulette_pick(discord.ui.View): 123 | @discord.ui.button(label = "Red", style = discord.ButtonStyle.danger) 124 | async def red(self,interaction:discord.Interaction, button: discord.ui.Button): 125 | db = client[CLIENT] 126 | collection = db["LiveBets"] 127 | query = {"_id":interaction.user.id} 128 | if collection.count_documents(query) == 0: 129 | #If button is hit with no live bets disable button 130 | button.disabled = True 131 | await interaction.response.edit_message(view = self) 132 | elif collection.count_documents(query) == 1: 133 | win = generation.roulette_blackorred('red') 134 | if win == True: 135 | betData = collection.find_one({"_id": interaction.user.id}) 136 | bet = betData["bet"] 137 | collection.delete_one({"_id": interaction.user.id}) 138 | 139 | des = f"You Win {bet}\nReturn: {bet*2}" 140 | embed = discord.Embed(title="🟥🟥 Red Was Hit 🟥🟥 ", description=des, color=0x2D9922) 141 | embed2 = discord.Embed(title=f"🔔 {interaction.user.name} has just won {bet} in roulette 🔔", color=0x2D9922) 142 | 143 | win_ammount = bet * 2 144 | collection = db[COIN_COLLECTION] 145 | userData = collection.find_one({"_id": interaction.user.id}) 146 | userData["coins"] = userData["coins"] + win_ammount 147 | collection.replace_one({"_id":interaction.user.id}, userData) 148 | 149 | await interaction.response.send_message(embed= embed, ephemeral=True) 150 | await bot.get_channel(CHANNEL_ID).send(embed=embed2) 151 | 152 | if win == False: 153 | #Pull bet from mongo Return 154 | des = "You Lose" 155 | collection.delete_one({"_id": interaction.user.id}) 156 | embed = discord.Embed(title="⬛⬛ Black Was Hit ⬛⬛", description=des, color=0x2D9922) 157 | await interaction.response.send_message(embed= embed, ephemeral=True) 158 | 159 | #Sent into Generation 160 | @discord.ui.button(label = "Black", style = discord.ButtonStyle.secondary) 161 | async def black(self,interaction:discord.Interaction, button: discord.ui.Button): 162 | db = client[CLIENT] 163 | collection = db["LiveBets"] 164 | query = {"_id":interaction.user.id} 165 | if collection.count_documents(query) == 0: 166 | #If button is hit with no live bets disable button 167 | button.disabled = True 168 | await interaction.response.edit_message(view = self) 169 | elif collection.count_documents(query) == 1: 170 | win = generation.roulette_blackorred('black') 171 | if win == True: 172 | betData = collection.find_one({"_id": interaction.user.id}) 173 | bet = betData["bet"] 174 | collection.delete_one({"_id": interaction.user.id}) 175 | 176 | des = f"You Win {bet}\nReturn: {bet*2}" 177 | embed = discord.Embed(title="⬛⬛ Black Was Hit ⬛⬛", description=des, color=0x2D9922) 178 | embed2 = discord.Embed(title=f"🔔 {interaction.user.name} has just won {bet} in roulette 🔔", color=0x2D9922) 179 | 180 | win_ammount = bet * 2 181 | collection = db[COIN_COLLECTION] 182 | userData = collection.find_one({"_id": interaction.user.id}) 183 | userData["coins"] = userData["coins"] + win_ammount 184 | collection.replace_one({"_id":interaction.user.id}, userData) 185 | 186 | await interaction.response.send_message(embed= embed, ephemeral=True) 187 | await bot.get_channel(CHANNEL_ID).send(embed=embed2) 188 | 189 | if win == False: 190 | #Pull bet from mongo Return 191 | des = "You Lose" 192 | collection.delete_one({"_id": interaction.user.id}) 193 | embed = discord.Embed(title="🟥🟥 Red Was Hit 🟥🟥 ", description=des, color=0x2D9922) 194 | await interaction.response.send_message(embed= embed, ephemeral=True) 195 | 196 | #Sent into Generation 197 | #@discord.ui.button(label = "Numbers", style = discord.ButtonStyle.secondary) 198 | #async def start1(self,interaction:discord.Interaction, button: discord.ui.Button): 199 | #class roulette_numbers(discord.ui.View): 200 | #Itteration of all 0-36 numbers :( 201 | 202 | 203 | #------ BlackJack ------ 204 | @bot.tree.command() 205 | async def blackjack(interaction: discord.Interaction, bet:int): 206 | #Bet ammount first 207 | """Play Black Jack ♠️♥️♣️♦️""" 208 | bet = bet 209 | 210 | db = client[CLIENT] 211 | collection = db[COIN_COLLECTION] 212 | userData = collection["coins"] 213 | userData = collection.find_one({"_id": interaction.user.id}) 214 | total = userData["coins"] 215 | if total >= bet: 216 | db = client[CLIENT] 217 | collection = db[COIN_COLLECTION] 218 | userData["coins"] = userData["coins"] - bet 219 | collection.replace_one({"_id":interaction.user.id}, userData) 220 | collection = db["LiveBets"] 221 | collection.insert_one({"_id":interaction.user.id,"bet":bet,"ingame":False}) 222 | view = blackjack_check() 223 | embed = discord.Embed(title=f"Black Jack ♠️♥️♣️♦️",description=f"Confirm your bet amount of {bet}", color=0x11806A) 224 | await interaction.response.send_message(embed = embed,view=view,ephemeral=True) 225 | elif total < bet: 226 | embed = discord.Embed(title=f"Bet Canceled",description=f"Your total coins of {total} is less then bet amount {bet}", color=0xFF0000) 227 | log(interaction.user.name,interaction.user.id,f"Bet amount:{bet} but was over total {total} (Canceled)") 228 | await interaction.response.send_message(embed = embed,ephemeral=True) 229 | 230 | #Delete after its been sent 231 | class blackjack_check(discord.ui.View): 232 | @discord.ui.button(label = "Confirm", style = discord.ButtonStyle.success ) 233 | async def confirmed(self,interaction:discord.Interaction, button: discord.ui.Button): 234 | #### 235 | db = client[CLIENT] 236 | collection = db["LiveBets"] 237 | query = {"_id":interaction.user.id} 238 | if collection.count_documents(query) == 0: 239 | #If button is hit with no live bets disable button 240 | button.disabled = True 241 | await interaction.response.edit_message(view = self) 242 | userData = collection.find_one({"_id":interaction.user.id}) 243 | live = userData["ingame"] 244 | if live == True: 245 | #If button is hit with no live bets disable button 246 | button.disabled = True 247 | await interaction.response.edit_message(view = self) 248 | 249 | 250 | vals = ['2', '3', '4', '5', '6', '7', '8', '9', '10', 'Jack', 'Queen', 'King', 'Ace'] 251 | suits = ['spades', 'clubs', 'hearts', 'diamonds'] 252 | deck = list(itertools.product(vals, suits)) 253 | random.shuffle(deck) 254 | player_score = face(deck[0][0]) + face(deck[2][0]) 255 | dealer_score = face(deck[1][0]) + face(deck[3][0]) 256 | 257 | 258 | player_cards = [] 259 | dealer_cards = [] 260 | player_cards.append(deck[0][0]) 261 | player_cards.append(deck[2][0]) 262 | dealer_cards.append(deck[1][0]) 263 | dealer_cards.append(deck[3][0]) 264 | db = client[CLIENT] 265 | collection = db["LiveBets"] 266 | userData = collection.find_one({"_id":interaction.user.id}) 267 | userData["player_cards"] = player_cards 268 | userData["dealer_cards"] = dealer_cards 269 | userData["ingame"] = True 270 | collection.replace_one({"_id":interaction.user.id}, userData) 271 | player_cards.clear() 272 | dealer_cards.clear() 273 | #PUSH 21==21 274 | if player_score == 21 & dealer_score == 21: 275 | embed = discord.Embed(title="Dealer and House hit 21", description="Push", color=0x2D9922) 276 | collection.delete_one({"_id": interaction.user.id}) 277 | await interaction.response.send_message(embed= embed, ephemeral=True) 278 | #BLAKCJACK 279 | elif player_score == 21: 280 | des = f"You Win! \nReturn: 3/2" 281 | bet = userData["bet"] 282 | collection.delete_one({"_id": interaction.user.id}) 283 | collection = db[COIN_COLLECTION] 284 | userData = collection.find_one({"_id":interaction.user.id}) 285 | bet = round(bet * (1.5)) 286 | userData["coins"] = bet + userData["coins"] 287 | collection.replace_one({"_id":interaction.user.id}, userData) 288 | embed2 = discord.Embed(title=f"🔔🔔 {interaction.user.name} has just hit BlackJack winning {bet}🔔🔔", color=0x2D9922) 289 | embed = discord.Embed(title="♠️♥️♣️♦️ BlackJack ♠️♥️♣️♦️", description=des, color=0x2D9922) 290 | collection.delete_one({"_id": interaction.user.id}) 291 | await interaction.response.send_message(embed= embed, ephemeral=True) 292 | await bot.get_channel(CHANNEL_ID).send(embed=embed2) 293 | #HOUSE WIN 294 | elif dealer_score == 21: 295 | embed = discord.Embed(title="House Hits BlackJack", description="You Lose", color=0x2D9922) 296 | collection.delete_one({"_id": interaction.user.id}) 297 | await interaction.response.send_message(embed= embed, ephemeral=True) 298 | else: 299 | des = f"Dealer Hand:\n\t{get_emoji(deck[1][0])} | 🔲 \n\nYour Hand:\n\t {get_emoji(deck[0][0])} | {get_emoji(deck[2][0])} \n\n" 300 | #PUT CARDS IN DB 301 | view = hitormiss() 302 | embed = discord.Embed(title="Welcome to Black Jack ♠️♥️♣️♦️", description=des, color=0x2D9922) 303 | await interaction.response.send_message(embed= embed,ephemeral=True,view=view) 304 | @discord.ui.button(label = "", style = discord.ButtonStyle.grey, 305 | emoji = "❌" ) 306 | async def exit(self,interaction:discord.Interaction, button: discord.ui.Button): 307 | db = client[CLIENT] 308 | collection = db["LiveBets"] 309 | query = {"_id":interaction.user.id} 310 | if collection.count_documents(query) == 0: 311 | #If button is hit with no live bets disable button 312 | button.disabled = True 313 | await interaction.response.edit_message(view = self) 314 | elif collection.count_documents(query) == 1: 315 | betData = collection.find_one({"_id": interaction.user.id}) 316 | live = betData["ingame"] 317 | betData = collection.find_one({"_id": interaction.user.id}) 318 | if live == True: 319 | button.disabled = True 320 | await interaction.response.edit_message(view = self) 321 | else: 322 | #But bets back into wallet and cancel live bet 323 | db = client[CLIENT] 324 | collection = db["LiveBets"] 325 | betData = collection.find_one({"_id": interaction.user.id}) 326 | bet = betData["bet"] 327 | collection.delete_one({"_id": interaction.user.id}) 328 | collection = db[COIN_COLLECTION] 329 | userData = collection.find_one({"_id": interaction.user.id}) 330 | userData["coins"] = userData["coins"] + bet 331 | collection.replace_one({"_id":interaction.user.id}, userData) 332 | embed = discord.Embed(title="Canceled", description=f"Your bet of {bet} has been returned", color=0x2D9922) 333 | await interaction.response.send_message(embed= embed,ephemeral=True) 334 | 335 | class hitormiss(discord.ui.View): 336 | @discord.ui.button(label = "Hit", style = discord.ButtonStyle.success) 337 | async def hit(self,interaction:discord.Interaction, button: discord.ui.Button): 338 | db = client[CLIENT] 339 | collection = db["LiveBets"] 340 | query = {"_id":interaction.user.id} 341 | if collection.count_documents(query) == 0: 342 | #If button is hit with no live bets disable button 343 | button.disabled = True 344 | await interaction.response.edit_message(view = self) 345 | elif collection.count_documents(query) == 1: 346 | betData = collection.find_one({"_id": interaction.user.id}) 347 | live = betData["ingame"] 348 | betData = collection.find_one({"_id": interaction.user.id}) 349 | if live == False: 350 | button.disabled = True 351 | await interaction.response.edit_message(view = self) 352 | 353 | player_draw(interaction.user.id) 354 | 355 | userData = collection.find_one({"_id":interaction.user.id}) 356 | player_cards = userData["player_cards"] 357 | dealer_cards = userData["dealer_cards"] 358 | 359 | print(player_cards) 360 | player_total = 0 361 | player_size = len(player_cards) 362 | dealer_size = len(dealer_cards) 363 | for x in range(player_size): 364 | temp_num = player_cards[x] 365 | temp_num = face(temp_num) 366 | player_total = temp_num + player_total 367 | 368 | if player_total > 21: 369 | dealer_cards = userData["dealer_cards"] 370 | player_cards = userData["player_cards"] 371 | display_list = [] 372 | display_list2 = [] 373 | for x in range(dealer_size): 374 | temp_num = dealer_cards[x] 375 | display_list.append(get_emoji(temp_num)) 376 | for x in range(player_size): 377 | temp_num = player_cards[x] 378 | display_list2.append(get_emoji(temp_num)) 379 | des = f"Dealer Hand:\n{display_list}\n\nYour Hand:\n{display_list2}" 380 | embed = discord.Embed(title="(Bust) House Wins", description=des, color=0x2D9922) 381 | collection.delete_one({"_id": interaction.user.id}) 382 | display_list.clear() 383 | display_list2.clear() 384 | await interaction.response.send_message(embed= embed, ephemeral=True) 385 | 386 | elif player_total < 21: 387 | view = self 388 | dealer_cards = userData["dealer_cards"] 389 | player_cards = userData["player_cards"] 390 | display_list = [] 391 | display_list2 = [] 392 | temp_num = dealer_cards[0] 393 | display_list.append(get_emoji(temp_num)) 394 | for x in range(player_size): 395 | temp_num = player_cards[x] 396 | display_list2.append(get_emoji(temp_num)) 397 | des = f"Dealer Hand:\n{display_list}| 🔲\n\nYour Hand:\n{display_list2}" 398 | embed = discord.Embed(title="Welcome to Black Jack ♠️♥️♣️♦️", description=des, color=0x2D9922) 399 | display_list.clear() 400 | display_list2.clear() 401 | await interaction.response.edit_message(embed = embed,view = view) 402 | 403 | 404 | @discord.ui.button(label = "Stay", style = discord.ButtonStyle.grey) 405 | async def stay(self,interaction:discord.Interaction, button: discord.ui.Button): 406 | db = client[CLIENT] 407 | collection = db["LiveBets"] 408 | query = {"_id":interaction.user.id} 409 | if collection.count_documents(query) == 0: 410 | #If button is hit with no live bets disable button 411 | button.disabled = True 412 | await interaction.response.edit_message(view = self) 413 | elif collection.count_documents(query) == 1: 414 | betData = collection.find_one({"_id": interaction.user.id}) 415 | live = betData["ingame"] 416 | betData = collection.find_one({"_id": interaction.user.id}) 417 | if live == False: 418 | button.disabled = True 419 | await interaction.response.edit_message(view = self) 420 | 421 | userData = collection.find_one({"_id":interaction.user.id}) 422 | player_cards = userData["player_cards"] 423 | dealer_cards = userData["dealer_cards"] 424 | player_total = 0 425 | dealer_total = 0 426 | player_size = len(player_cards) 427 | dealer_size = len(dealer_cards) 428 | for x in range(player_size): 429 | temp_num = player_cards[x] 430 | temp_num = face(temp_num) 431 | player_total = temp_num + player_total 432 | for x in range(dealer_size): 433 | temp_num = dealer_cards[x] 434 | temp_num = face(temp_num) 435 | dealer_total = temp_num + dealer_total 436 | 437 | dealer_draw(interaction.user.id,dealer_total) 438 | 439 | #Recheck after draw 440 | userData = collection.find_one({"_id":interaction.user.id}) 441 | dealer_cards = userData["dealer_cards"] 442 | 443 | dealer_total = 0 444 | dealer_size = len(dealer_cards) 445 | for x in range(dealer_size): 446 | temp_num = dealer_cards[x] 447 | temp_num = face(temp_num) 448 | dealer_total = temp_num + dealer_total 449 | 450 | print(dealer_total) 451 | 452 | if dealer_total == player_total: 453 | dealer_cards = userData["dealer_cards"] 454 | player_cards = userData["player_cards"] 455 | display_list = [] 456 | display_list2 = [] 457 | for x in range(dealer_size): 458 | temp_num = dealer_cards[x] 459 | display_list.append(get_emoji(temp_num)) 460 | for x in range(player_size): 461 | temp_num = player_cards[x] 462 | display_list2.append(get_emoji(temp_num)) 463 | des = f"Dealer Hand:\n{display_list}\n\nYour Hand:\n{display_list2}" 464 | display_list.clear() 465 | display_list2.clear() 466 | embed = discord.Embed(title="House and Dealer Have Same Score", description="Push", color=0x2D9922) 467 | bet = userData["bet"] 468 | collection.delete_one({"_id": interaction.user.id}) 469 | collection = db[COIN_COLLECTION] 470 | userData = collection.find_one({"_id":interaction.user.id}) 471 | userData["coins"] = bet + userData["coins"] 472 | collection.replace_one({"_id":interaction.user.id}, userData) 473 | await interaction.response.send_message(embed= embed, ephemeral=True) 474 | elif dealer_total > player_total and dealer_total<21: 475 | dealer_cards = userData["dealer_cards"] 476 | player_cards = userData["player_cards"] 477 | display_list = [] 478 | display_list2 = [] 479 | for x in range(dealer_size): 480 | temp_num = dealer_cards[x] 481 | display_list.append(get_emoji(temp_num)) 482 | for x in range(player_size): 483 | temp_num = player_cards[x] 484 | display_list2.append(get_emoji(temp_num)) 485 | des = f"Dealer Hand:\n{display_list}\n\nYour Hand:\n{display_list2}" 486 | embed = discord.Embed(title="House Wins", description=des, color=0x2D9922) 487 | collection.delete_one({"_id": interaction.user.id}) 488 | display_list.clear() 489 | display_list2.clear() 490 | await interaction.response.send_message(embed= embed, ephemeral=True) 491 | elif player_total > dealer_total or dealer_total > 21: 492 | dealer_cards = userData["dealer_cards"] 493 | player_cards = userData["player_cards"] 494 | display_list = [] 495 | display_list2 = [] 496 | for x in range(dealer_size): 497 | temp_num = dealer_cards[x] 498 | display_list.append(get_emoji(temp_num)) 499 | for x in range(player_size): 500 | temp_num = player_cards[x] 501 | display_list2.append(get_emoji(temp_num)) 502 | des = f"Dealer Hand:\n{display_list}\n\nYour Hand:\n{display_list2}" 503 | display_list.clear() 504 | display_list2.clear() 505 | embed = discord.Embed(title="♠️♥️♣️♦️ Player Win ♠️♥️♣️♦️", description=des, color=0x2D9922) 506 | bet = userData["bet"] 507 | collection.delete_one({"_id": interaction.user.id}) 508 | collection = db[COIN_COLLECTION] 509 | userData = collection.find_one({"_id":interaction.user.id}) 510 | bet = round(bet * (1.5)) 511 | userData["coins"] = bet + userData["coins"] 512 | collection.replace_one({"_id":interaction.user.id}, userData) 513 | embed2 = discord.Embed(title=f"🔔 {interaction.user.name} has just won {bet} in BlackJack 🔔", color=0x2D9922) 514 | await interaction.response.send_message(embed= embed, ephemeral=True) 515 | await bot.get_channel(CHANNEL_ID).send(embed=embed2) 516 | 517 | #------ Dice ------ 518 | @bot.tree.command() 519 | async def dice(interaction: discord.Interaction, bet:int): 520 | #Bet ammount first 521 | """Play Roulette 🎲🎲🎲🎲""" 522 | bet = bet 523 | db = client[CLIENT] 524 | collection = db[COIN_COLLECTION] 525 | userData = collection.find_one({"_id": interaction.user.id}) 526 | total = userData["coins"] 527 | if bet > total: 528 | embed = discord.Embed(title=f"Bet Canceled",description=f"Your total coins of {total} is less then bet amount {bet}", color=0xFF0000) 529 | log(interaction.user.name,interaction.user.id,f"Bet amount:{bet} but was over total {total} (Canceled)") 530 | await interaction.response.send_message(embed = embed,ephemeral=True) 531 | elif bet <= total: 532 | log(interaction.user.name,interaction.user.id,f"Bet amount:{bet} with a of {total} (Confirmed) (Coins Held intill bet completed)") 533 | view = dice_check() 534 | userData["coins"] = userData["coins"] - bet 535 | collection.replace_one({"_id":interaction.user.id}, userData) 536 | db = client[CLIENT] 537 | collection = db["LiveBets"] 538 | collection.insert_one({"_id": interaction.user.id,"bet":bet}) 539 | embed = discord.Embed(title=f"Dice 🎲🎲🎲🎲",description=f"Confirm your bet amount of {bet}", color=0x11806A) 540 | await interaction.response.send_message(embed = embed,view=view,ephemeral=True) 541 | 542 | #Delete after its been sent 543 | class dice_check(discord.ui.View): 544 | @discord.ui.button(label = "Confirm", style = discord.ButtonStyle.success) 545 | async def confirmed(self,interaction:discord.Interaction, button: discord.ui.Button): 546 | db = client[CLIENT] 547 | collection = db["LiveBets"] 548 | query = {"_id":interaction.user.id} 549 | if collection.count_documents(query) == 0: 550 | #If button is hit with no live bets disable button 551 | button.disabled = True 552 | await interaction.response.edit_message(view = self) 553 | elif collection.count_documents(query) == 1: 554 | des = "Please pick Number" 555 | view = dice_game() 556 | embed = discord.Embed(title="Welcome to Dice", description=des, color=0x2D9922) 557 | await interaction.response.send_message(embed= embed,view=view,ephemeral=True) 558 | 559 | @discord.ui.button(label = "", style = discord.ButtonStyle.grey, 560 | emoji = "❌" ) 561 | async def exit(self,interaction:discord.Interaction, button: discord.ui.Button): 562 | db = client[CLIENT] 563 | collection = db["LiveBets"] 564 | query = {"_id":interaction.user.id} 565 | if collection.count_documents(query) == 0: 566 | #If button is hit with no live bets disable button 567 | button.disabled = True 568 | await interaction.response.edit_message(view = self) 569 | elif collection.count_documents(query) == 1: 570 | #But bets back into wallet and cancel live bet 571 | db = client[CLIENT] 572 | collection = db["LiveBets"] 573 | betData = collection.find_one({"_id": interaction.user.id}) 574 | bet = betData["bet"] 575 | collection.delete_one({"_id": interaction.user.id}) 576 | collection = db[COIN_COLLECTION] 577 | userData = collection.find_one({"_id": interaction.user.id}) 578 | userData["coins"] = userData["coins"] + bet 579 | collection.replace_one({"_id":interaction.user.id}, userData) 580 | embed = discord.Embed(title="Canceled", description=f"Your bet of {bet} has been returned", color=0x2D9922) 581 | await interaction.response.send_message(embed= embed,ephemeral=True) 582 | 583 | 584 | class dice_game(discord.ui.View): 585 | 586 | @discord.ui.button(label = "", style = discord.ButtonStyle.grey, 587 | emoji = "2️⃣" ) 588 | async def two(self,interaction:discord.Interaction, button: discord.ui.Button): 589 | db = client[CLIENT] 590 | collection = db["LiveBets"] 591 | query = {"_id":interaction.user.id} 592 | if collection.count_documents(query) == 0: 593 | #If button is hit with no live bets disable button 594 | button.disabled = True 595 | await interaction.response.edit_message(view = self) 596 | win,hit = generation.dice_game(2) 597 | if win == True: 598 | betData = collection.find_one({"_id": interaction.user.id}) 599 | bet = betData["bet"] 600 | collection.delete_one({"_id": interaction.user.id}) 601 | des = f"You Win {bet*34}\nReturn: {bet*35}" 602 | embed = discord.Embed(title=f" {hit} Was Hit ", description=des, color=0x2D9922) 603 | embed2 = discord.Embed(title=f"🔔 {interaction.user.name} has just won {bet*34} in dice 🔔", color=0x2D9922) 604 | win_ammount = bet * 34 605 | collection = db[COIN_COLLECTION] 606 | userData = collection.find_one({"_id": interaction.user.id}) 607 | userData["coins"] = userData["coins"] + win_ammount 608 | collection.replace_one({"_id":interaction.user.id}, userData) 609 | await interaction.response.send_message(embed= embed, ephemeral=True) 610 | await bot.get_channel(CHANNEL_ID).send(embed=embed2) 611 | else: 612 | collection.delete_one({"_id": interaction.user.id}) 613 | des = "You Lose" 614 | embed = discord.Embed(title=f" {hit} Was Hit ", description=des, color=0x2D9922) 615 | await interaction.response.send_message(embed= embed, ephemeral=True) 616 | 617 | @discord.ui.button(label = "", style = discord.ButtonStyle.grey, 618 | emoji = "3️⃣" ) 619 | async def three(self,interaction:discord.Interaction, button: discord.ui.Button): 620 | db = client[CLIENT] 621 | collection = db["LiveBets"] 622 | query = {"_id":interaction.user.id} 623 | if collection.count_documents(query) == 0: 624 | #If button is hit with no live bets disable button 625 | button.disabled = True 626 | await interaction.response.edit_message(view = self) 627 | win,hit = generation.dice_game(3) 628 | if win == True: 629 | betData = collection.find_one({"_id": interaction.user.id}) 630 | bet = betData["bet"] 631 | collection.delete_one({"_id": interaction.user.id}) 632 | des = f"You Win {bet*17}\nReturn: {bet*18}" 633 | embed = discord.Embed(title=f" {hit} Was Hit ", description=des, color=0x2D9922) 634 | embed2 = discord.Embed(title=f"🔔 {interaction.user.name} has just won {bet*17} in dice 🔔", color=0x2D9922) 635 | win_ammount = bet * 18 636 | collection = db[COIN_COLLECTION] 637 | userData = collection.find_one({"_id": interaction.user.id}) 638 | userData["coins"] = userData["coins"] + win_ammount 639 | collection.replace_one({"_id":interaction.user.id}, userData) 640 | await interaction.response.send_message(embed= embed, ephemeral=True) 641 | await bot.get_channel(CHANNEL_ID).send(embed=embed2) 642 | else: 643 | collection.delete_one({"_id": interaction.user.id}) 644 | des = "You Lose" 645 | embed = discord.Embed(title=f" {hit} Was Hit ", description=des, color=0x2D9922) 646 | await interaction.response.send_message(embed= embed, ephemeral=True) 647 | 648 | @discord.ui.button(label = "", style = discord.ButtonStyle.grey, 649 | emoji = "4️⃣" ) 650 | async def four(self,interaction:discord.Interaction, button: discord.ui.Button): 651 | db = client[CLIENT] 652 | collection = db["LiveBets"] 653 | query = {"_id":interaction.user.id} 654 | if collection.count_documents(query) == 0: 655 | #If button is hit with no live bets disable button 656 | button.disabled = True 657 | await interaction.response.edit_message(view = self) 658 | win,hit = generation.dice_game(4) 659 | if win == True: 660 | betData = collection.find_one({"_id": interaction.user.id}) 661 | bet = betData["bet"] 662 | collection.delete_one({"_id": interaction.user.id}) 663 | des = f"You Win {bet*11}\nReturn: {bet*12}" 664 | embed = discord.Embed(title=f" {hit} Was Hit ", description=des, color=0x2D9922) 665 | embed2 = discord.Embed(title=f"🔔 {interaction.user.name} has just won {bet*11} in dice 🔔", color=0x2D9922) 666 | win_ammount = bet * 12 667 | collection = db[COIN_COLLECTION] 668 | userData = collection.find_one({"_id": interaction.user.id}) 669 | userData["coins"] = userData["coins"] + win_ammount 670 | collection.replace_one({"_id":interaction.user.id}, userData) 671 | await interaction.response.send_message(embed= embed, ephemeral=True) 672 | await bot.get_channel(CHANNEL_ID).send(embed=embed2) 673 | else: 674 | collection.delete_one({"_id": interaction.user.id}) 675 | des = "You Lose" 676 | embed = discord.Embed(title=f" {hit} Was Hit ", description=des, color=0x2D9922) 677 | await interaction.response.send_message(embed= embed, ephemeral=True) 678 | @discord.ui.button(label = "", style = discord.ButtonStyle.grey, 679 | emoji = "5️⃣" ) 680 | async def five(self,interaction:discord.Interaction, button: discord.ui.Button): 681 | db = client[CLIENT] 682 | collection = db["LiveBets"] 683 | query = {"_id":interaction.user.id} 684 | if collection.count_documents(query) == 0: 685 | #If button is hit with no live bets disable button 686 | button.disabled = True 687 | await interaction.response.edit_message(view = self) 688 | win,hit = generation.dice_game(5) 689 | if win == True: 690 | betData = collection.find_one({"_id": interaction.user.id}) 691 | bet = betData["bet"] 692 | collection.delete_one({"_id": interaction.user.id}) 693 | des = f"You Win {bet*8}\nReturn: {bet*9}" 694 | embed = discord.Embed(title=f" {hit} Was Hit ", description=des, color=0x2D9922) 695 | embed2 = discord.Embed(title=f"🔔 {interaction.user.name} has just won {bet*8} in dice 🔔", color=0x2D9922) 696 | win_ammount = bet * 9 697 | collection = db[COIN_COLLECTION] 698 | userData = collection.find_one({"_id": interaction.user.id}) 699 | userData["coins"] = userData["coins"] + win_ammount 700 | collection.replace_one({"_id":interaction.user.id}, userData) 701 | await interaction.response.send_message(embed= embed, ephemeral=True) 702 | await bot.get_channel(CHANNEL_ID).send(embed=embed2) 703 | else: 704 | collection.delete_one({"_id": interaction.user.id}) 705 | des = "You Lose" 706 | embed = discord.Embed(title=f" {hit} Was Hit ", description=des, color=0x2D9922) 707 | await interaction.response.send_message(embed= embed, ephemeral=True) 708 | @discord.ui.button(label = "", style = discord.ButtonStyle.grey, 709 | emoji = "6️⃣" ) 710 | async def six(self,interaction:discord.Interaction, button: discord.ui.Button): 711 | db = client[CLIENT] 712 | collection = db["LiveBets"] 713 | query = {"_id":interaction.user.id} 714 | if collection.count_documents(query) == 0: 715 | #If button is hit with no live bets disable button 716 | button.disabled = True 717 | await interaction.response.edit_message(view = self) 718 | win,hit = generation.dice_game(6) 719 | if win == True: 720 | betData = collection.find_one({"_id": interaction.user.id}) 721 | bet = betData["bet"] 722 | collection.delete_one({"_id": interaction.user.id}) 723 | des = f"You Win {(bet*6)}\nReturn: {bet*7}" 724 | embed = discord.Embed(title=f" {hit} Was Hit ", description=des, color=0x2D9922) 725 | embed2 = discord.Embed(title=f"🔔 {interaction.user.name} has just won {bet*6} in dice 🔔", color=0x2D9922) 726 | win_ammount = bet * 7 727 | collection = db[COIN_COLLECTION] 728 | userData = collection.find_one({"_id": interaction.user.id}) 729 | userData["coins"] = userData["coins"] + win_ammount 730 | collection.replace_one({"_id":interaction.user.id}, userData) 731 | await interaction.response.send_message(embed= embed, ephemeral=True) 732 | await bot.get_channel(CHANNEL_ID).send(embed=embed2) 733 | else: 734 | collection.delete_one({"_id": interaction.user.id}) 735 | des = "You Lose" 736 | embed = discord.Embed(title=f" {hit} Was Hit ", description=des, color=0x2D9922) 737 | await interaction.response.send_message(embed= embed, ephemeral=True) 738 | @discord.ui.button(label = "", style = discord.ButtonStyle.grey, 739 | emoji = "7️⃣" ) 740 | async def seven(self,interaction:discord.Interaction, button: discord.ui.Button): 741 | db = client[CLIENT] 742 | collection = db["LiveBets"] 743 | query = {"_id":interaction.user.id} 744 | if collection.count_documents(query) == 0: 745 | #If button is hit with no live bets disable button 746 | button.disabled = True 747 | await interaction.response.edit_message(view = self) 748 | win,hit = generation.dice_game(7) 749 | if win == True: 750 | betData = collection.find_one({"_id": interaction.user.id}) 751 | bet = betData["bet"] 752 | collection.delete_one({"_id": interaction.user.id}) 753 | des = f"You Win {bet*5}\nReturn: {bet*6}" 754 | embed = discord.Embed(title=f" {hit} Was Hit ", description=des, color=0x2D9922) 755 | embed2 = discord.Embed(title=f"🔔 {interaction.user.name} has just won {bet*5} in dice 🔔", color=0x2D9922) 756 | win_ammount = bet * 6 757 | collection = db[COIN_COLLECTION] 758 | userData = collection.find_one({"_id": interaction.user.id}) 759 | userData["coins"] = userData["coins"] + win_ammount 760 | collection.replace_one({"_id":interaction.user.id}, userData) 761 | await interaction.response.send_message(embed= embed, ephemeral=True) 762 | await bot.get_channel(CHANNEL_ID).send(embed=embed2) 763 | else: 764 | collection.delete_one({"_id": interaction.user.id}) 765 | des = "You Lose" 766 | embed = discord.Embed(title=f" {hit} Was Hit ", description=des, color=0x2D9922) 767 | await interaction.response.send_message(embed= embed, ephemeral=True) 768 | @discord.ui.button(label = "", style = discord.ButtonStyle.grey, 769 | emoji = "8️⃣" ) 770 | async def eight(self,interaction:discord.Interaction, button: discord.ui.Button): 771 | db = client[CLIENT] 772 | collection = db["LiveBets"] 773 | query = {"_id":interaction.user.id} 774 | if collection.count_documents(query) == 0: 775 | #If button is hit with no live bets disable button 776 | button.disabled = True 777 | await interaction.response.edit_message(view = self) 778 | win,hit = generation.dice_game(8) 779 | if win == True: 780 | betData = collection.find_one({"_id": interaction.user.id}) 781 | bet = betData["bet"] 782 | collection.delete_one({"_id": interaction.user.id}) 783 | des = f"You Win {bet*6}\nReturn: {bet*7}" 784 | embed = discord.Embed(title=f" {hit} Was Hit ", description=des, color=0x2D9922) 785 | embed2 = discord.Embed(title=f"🔔 {interaction.user.name} has just won {bet*6} in dice 🔔", color=0x2D9922) 786 | win_ammount = bet * 7 787 | collection = db[COIN_COLLECTION] 788 | userData = collection.find_one({"_id": interaction.user.id}) 789 | userData["coins"] = userData["coins"] + win_ammount 790 | collection.replace_one({"_id":interaction.user.id}, userData) 791 | await interaction.response.send_message(embed= embed, ephemeral=True) 792 | await bot.get_channel(CHANNEL_ID).send(embed=embed2) 793 | else: 794 | collection.delete_one({"_id": interaction.user.id}) 795 | des = "You Lose" 796 | embed = discord.Embed(title=f" {hit} Was Hit ", description=des, color=0x2D9922) 797 | await interaction.response.send_message(embed= embed, ephemeral=True) 798 | @discord.ui.button(label = "", style = discord.ButtonStyle.grey, 799 | emoji = "9️⃣" ) 800 | async def nine(self,interaction:discord.Interaction, button: discord.ui.Button): 801 | db = client[CLIENT] 802 | collection = db["LiveBets"] 803 | query = {"_id":interaction.user.id} 804 | if collection.count_documents(query) == 0: 805 | #If button is hit with no live bets disable button 806 | button.disabled = True 807 | await interaction.response.edit_message(view = self) 808 | win,hit = generation.dice_game(9) 809 | if win == True: 810 | betData = collection.find_one({"_id": interaction.user.id}) 811 | bet = betData["bet"] 812 | collection.delete_one({"_id": interaction.user.id}) 813 | des = f"You Win {bet*8}\nReturn: {bet*9}" 814 | embed = discord.Embed(title=f" {hit} Was Hit ", description=des, color=0x2D9922) 815 | embed2 = discord.Embed(title=f"🔔 {interaction.user.name} has just won {bet*8} in dice 🔔", color=0x2D9922) 816 | win_ammount = bet * 9 817 | collection = db[COIN_COLLECTION] 818 | userData = collection.find_one({"_id": interaction.user.id}) 819 | userData["coins"] = userData["coins"] + win_ammount 820 | collection.replace_one({"_id":interaction.user.id}, userData) 821 | await interaction.response.send_message(embed= embed, ephemeral=True) 822 | await bot.get_channel(CHANNEL_ID).send(embed=embed2) 823 | else: 824 | collection.delete_one({"_id": interaction.user.id}) 825 | des = "You Lose" 826 | embed = discord.Embed(title=f" {hit} Was Hit ", description=des, color=0x2D9922) 827 | await interaction.response.send_message(embed= embed, ephemeral=True) 828 | @discord.ui.button(label = "", style = discord.ButtonStyle.grey, 829 | emoji = "🔟" ) 830 | async def ten(self,interaction:discord.Interaction, button: discord.ui.Button): 831 | db = client[CLIENT] 832 | collection = db["LiveBets"] 833 | query = {"_id":interaction.user.id} 834 | if collection.count_documents(query) == 0: 835 | #If button is hit with no live bets disable button 836 | button.disabled = True 837 | await interaction.response.edit_message(view = self) 838 | win,hit = generation.dice_game(10) 839 | if win == True: 840 | betData = collection.find_one({"_id": interaction.user.id}) 841 | bet = betData["bet"] 842 | collection.delete_one({"_id": interaction.user.id}) 843 | des = f"You Win {bet*11}\nReturn: {bet*12}" 844 | embed = discord.Embed(title=f" {hit} Was Hit ", description=des, color=0x2D9922) 845 | embed2 = discord.Embed(title=f"🔔 {interaction.user.name} has just won {bet*11} in dice 🔔", color=0x2D9922) 846 | win_ammount = bet * 12 847 | collection = db[COIN_COLLECTION] 848 | userData = collection.find_one({"_id": interaction.user.id}) 849 | userData["coins"] = userData["coins"] + win_ammount 850 | collection.replace_one({"_id":interaction.user.id}, userData) 851 | await interaction.response.send_message(embed= embed, ephemeral=True) 852 | await bot.get_channel(CHANNEL_ID).send(embed=embed2) 853 | else: 854 | collection.delete_one({"_id": interaction.user.id}) 855 | des = "You Lose" 856 | embed = discord.Embed(title=f" {hit} Was Hit ", description=des, color=0x2D9922) 857 | await interaction.response.send_message(embed= embed, ephemeral=True) 858 | @discord.ui.button(label = "11", style = discord.ButtonStyle.grey ) 859 | async def eleven(self,interaction:discord.Interaction, button: discord.ui.Button): 860 | db = client[CLIENT] 861 | collection = db["LiveBets"] 862 | query = {"_id":interaction.user.id} 863 | if collection.count_documents(query) == 0: 864 | #If button is hit with no live bets disable button 865 | button.disabled = True 866 | await interaction.response.edit_message(view = self) 867 | win,hit = generation.dice_game(11) 868 | if win == True: 869 | betData = collection.find_one({"_id": interaction.user.id}) 870 | bet = betData["bet"] 871 | collection.delete_one({"_id": interaction.user.id}) 872 | des = f"You Win {bet*17}\nReturn: {bet*18}" 873 | embed = discord.Embed(title=f" {hit} Was Hit ", description=des, color=0x2D9922) 874 | embed2 = discord.Embed(title=f"🔔 {interaction.user.name} has just won {bet*17} in dice 🔔", color=0x2D9922) 875 | win_ammount = bet * 18 876 | collection = db[COIN_COLLECTION] 877 | userData = collection.find_one({"_id": interaction.user.id}) 878 | userData["coins"] = userData["coins"] + win_ammount 879 | collection.replace_one({"_id":interaction.user.id}, userData) 880 | await interaction.response.send_message(embed= embed, ephemeral=True) 881 | await bot.get_channel(CHANNEL_ID).send(embed=embed2) 882 | else: 883 | collection.delete_one({"_id": interaction.user.id}) 884 | des = "You Lose" 885 | embed = discord.Embed(title=f" {hit} Was Hit ", description=des, color=0x2D9922) 886 | await interaction.response.send_message(embed= embed, ephemeral=True) 887 | @discord.ui.button(label = "12", style = discord.ButtonStyle.grey) 888 | async def twelve(self,interaction:discord.Interaction, button: discord.ui.Button): 889 | db = client[CLIENT] 890 | collection = db["LiveBets"] 891 | query = {"_id":interaction.user.id} 892 | if collection.count_documents(query) == 0: 893 | #If button is hit with no live bets disable button 894 | button.disabled = True 895 | await interaction.response.edit_message(view = self) 896 | win,hit = generation.dice_game(12) 897 | if win == True: 898 | betData = collection.find_one({"_id": interaction.user.id}) 899 | bet = betData["bet"] 900 | collection.delete_one({"_id": interaction.user.id}) 901 | des = f"You Win {bet*34}\nReturn: {bet*35}" 902 | embed = discord.Embed(title=f" {hit} Was Hit ", description=des, color=0x2D9922) 903 | embed2 = discord.Embed(title=f"🔔 {interaction.user.name} has just won {bet*34} in dice 🔔", color=0x2D9922) 904 | win_ammount = bet * 34 905 | collection = db[COIN_COLLECTION] 906 | userData = collection.find_one({"_id": interaction.user.id}) 907 | userData["coins"] = userData["coins"] + win_ammount 908 | collection.replace_one({"_id":interaction.user.id}, userData) 909 | await interaction.response.send_message(embed= embed, ephemeral=True) 910 | await bot.get_channel(CHANNEL_ID).send(embed=embed2) 911 | else: 912 | collection.delete_one({"_id": interaction.user.id}) 913 | des = "You Lose" 914 | embed = discord.Embed(title=f" {hit} Was Hit ", description=des, color=0x2D9922) 915 | await interaction.response.send_message(embed= embed, ephemeral=True) 916 | 917 | 918 | #------ LeaderBoard ------ 919 | @bot.tree.command() 920 | async def leaderboard(interaction: discord.Interaction): 921 | db = client[CLIENT] 922 | collection = db[COIN_COLLECTION] 923 | query_result = collection.find().sort('coins', pymongo.DESCENDING).limit(10) 924 | result_list = [(doc['user_name'], doc['coins']) for doc in query_result] 925 | 926 | leaderBlist = "" 927 | # Print the IDs on separate lines 928 | for user_name,coins in result_list: 929 | coins = str(coins) 930 | leaderBlist = leaderBlist + user_name +":" + coins +"\n" 931 | des = f"{leaderBlist}" 932 | embed = discord.Embed(title=f"Leaderboard",description=des, color=0x2D9922) 933 | await interaction.response.send_message(embed= embed) 934 | 935 | 936 | 937 | # 938 | def face(card_value:str): 939 | if card_value == 'Jack': 940 | card_value = '10' 941 | elif card_value == 'Queen': 942 | card_value = '10' 943 | elif card_value == 'King': 944 | card_value = '10' 945 | elif card_value == 'Ace': 946 | card_value = '11' 947 | card_value = int(card_value) 948 | return card_value 949 | 950 | def get_emoji(card_num:str): 951 | if card_num == 'Ace': 952 | return "🅰️" 953 | elif card_num == '2': 954 | return "2️⃣" 955 | elif card_num == '3': 956 | return "3️⃣" 957 | elif card_num == '4': 958 | return "4️⃣" 959 | elif card_num == '5': 960 | return "5️⃣" 961 | elif card_num == '6': 962 | return "6️⃣" 963 | elif card_num == '7': 964 | return "7️⃣" 965 | elif card_num == '8': 966 | return "8️⃣" 967 | elif card_num == '9': 968 | return "9️⃣" 969 | elif card_num == '10': 970 | return "🔟" 971 | elif card_num == 'Jack': 972 | return "🇯" 973 | elif card_num == 'Queen': 974 | return "🇶" 975 | elif card_num == 'King': 976 | return "🇰" 977 | 978 | def dealer_draw(user_id:int,dealer_total:int): 979 | if dealer_total > 16: 980 | return 981 | elif dealer_total < 17: 982 | vals = ['2', '3', '4', '5', '6', '7', '8', '9', '10', 'Jack', 'Queen', 'King', 'Ace'] 983 | suits = ['spades', 'clubs', 'hearts', 'diamonds'] 984 | deck = list(itertools.product(vals, suits)) 985 | random.shuffle(deck) 986 | db = client[CLIENT] 987 | collection = db["LiveBets"] 988 | userData = collection.find_one({"_id":user_id}) 989 | dealer_cards = userData["dealer_cards"] 990 | dealer_cards.append(deck[0][0]) 991 | print(dealer_cards) 992 | userData["dealer_cards"] = dealer_cards 993 | collection.replace_one({"_id":user_id}, userData) 994 | dealer_total = face(deck[0][0]) + dealer_total 995 | dealer_draw(user_id, dealer_total) 996 | 997 | def player_draw (user_id:int): 998 | vals = ['2', '3', '4', '5', '6', '7', '8', '9', '10', 'Jack', 'Queen', 'King', 'Ace'] 999 | suits = ['spades', 'clubs', 'hearts', 'diamonds'] 1000 | deck = list(itertools.product(vals, suits)) 1001 | random.shuffle(deck) 1002 | db = client[CLIENT] 1003 | collection = db["LiveBets"] 1004 | userData = collection.find_one({"_id":user_id}) 1005 | player_cards = userData["player_cards"] 1006 | player_cards.append(deck[0][0]) 1007 | userData["player_cards"] = player_cards 1008 | collection.replace_one({"_id":user_id}, userData) 1009 | 1010 | #------ Sync Command ------ 1011 | #Global Sync CMD to load slash commands 1012 | @bot.command() 1013 | @commands.guild_only() 1014 | @commands.is_owner() 1015 | async def sync(ctx: Context): 1016 | synced = await ctx.bot.tree.sync() 1017 | await ctx.send(f"Synced {len(synced)} commands {'globally'}") 1018 | 1019 | 1020 | def log(user_name:str,user_id:int,msg:str): 1021 | with open("log.txt", "w") as f: 1022 | # Write some text to the file 1023 | f.write(f"{user_name}:<{user_id}>: \n\t{msg}") 1024 | 1025 | bot.run(TOKEN) 1026 | --------------------------------------------------------------------------------