Initial commit

This commit is contained in:
0xVoodoo
2025-08-12 19:28:43 -06:00
parent 96e6e95c60
commit d861b7a58d
5 changed files with 327 additions and 0 deletions
+73
View File
@@ -0,0 +1,73 @@
import blackjack as b
import random
import discord
from dotenv import load_dotenv
from os import getenv
if __name__ == "__main__":
load_dotenv()
api_key = getenv("DISCORD_KEY")
activegames = []
gameexists = False
intents = discord.Intents.default()
intents.message_content = True
client = discord.Client(intents=intents)
@client.event
async def on_ready():
print(f'Dealer on duty: {client.user}')
@client.event
async def on_message(message):
msg = message.content.lower()
if message.author == client.user:
return
player = b.getstats(message.author.name.lower())
if msg.startswith("$deal") or msg.startswith("$d"):
bet = msg.split()
gameinfo = b.getgame(activegames, player.name)
if gameinfo[0] == True:
await message.channel.send("> **Game in progress, please !hit | !stand**")
elif len(bet) < 2:
await message.channel.send(">>> :clown: **Please place a bet!** :clown:\n\t\t\t\t__$u for help__")
elif bet[1].isnumeric() == False:
await message.channel.send(">>> :clown: **Please place a bet!** :clown:\n\t\t\t\t__$u for help__")
elif int(bet[1]) > int(player.money):
await message.channel.send("> :clown: **BET INVALID NOT ENOUGH CASH** :clown:")
else:
player = b.Player(player.name, player.wins, player.losses, player.money, bet[1])
b.writestats(player)
newgame = b.Game(player.name, b.newhand(), b.newhand())
await message.channel.send(f"> :clubs::diamonds: **Welcome __{newgame.player}!__** :hearts::spades:\n{b.showhand(newgame.phand, 'Player', 'hand')}\n> :joker::joker:Dealer hand: __{newgame.dhand[0]},?__ :joker::joker:\n>\t\t\t\t\tTotal: ?")
activegames.append(newgame)
elif msg.startswith("$hit") or msg.startswith("$h"):
player = b.getstats(message.author.name.lower())
gameinfo = b.getgame(activegames, player.name)
if gameinfo[0] == False:
await message.channel.send("No game found, please start one with $deal or get help with $usage!")
else:
currentgame = activegames[gameinfo[1]]
gameover = await b.hit(message, currentgame, player)
if gameover == True:
del activegames[gameinfo[1]]
elif msg.startswith("$stand") or msg.startswith("$s"):
player = b.getstats(message.author.name.lower())
gameinfo = b.getgame(activegames, player.name)
if gameinfo[0] == False:
await message.channel.send("No game found, please start one with !deal")
else:
currentgame = activegames[gameinfo[1]]
await b.stand(message, currentgame, player)
del activegames[gameinfo[1]]
elif msg.startswith("$useage") or msg.startswith("$u"):
await message.channel.send(">>> Welcome to the :clubs::hearts:**__Blackjack Bot__**:diamonds::spades:\nTo sart a game, use: $deal/$d + bet | ex: $d 10\nTo hit, use: $hit/$h\nTo stand, use: $stand/$s\nWritten by **__0xVoodoo__**")
elif msg.startswith("$info") or msg.startswith("$i"):
await message.channel.send(f">>> :joker: Blackjack Player: **__{player.name}__**\n:diamonds: W|L: {player.wins} | {player.losses}\n:money_with_wings: Money: {player.money}")
client.run(api_key)