Spaces:
Building
Building
import discord | |
from discord import app_commands | |
import asyncio | |
# Bot setup | |
class ShopBot(discord.Client): | |
def __init__(self): | |
super().__init__(intents=discord.Intents.default()) | |
self.tree = app_commands.CommandTree(self) | |
async def setup_hook(self): | |
await self.tree.sync() | |
# Initialize bot and user cash dictionary | |
client = ShopBot() | |
user_cash = {} # Stores user balances | |
# Empty inventory lists to show everything is out of stock | |
robux_codes = [] | |
steam_game_codes = [] | |
async def shop(interaction: discord.Interaction, item: str = None): | |
user_id = interaction.user.id | |
balance = user_cash.get(user_id, 0) | |
if item is None: | |
embed = discord.Embed( | |
title="Shop", | |
description="All items are currently out of stock", | |
color=0x787878 | |
) | |
embed.add_field( | |
name="@everyone Ping", | |
value="Price: $300,000,000\nStatus: Out of Stock", | |
inline=False | |
) | |
embed.add_field( | |
name="Robux Code (100 R$)", | |
value="Price: $999,000,000\nStatus: Out of Stock", | |
inline=False | |
) | |
embed.add_field( | |
name="Steam Game Code", | |
value="Price: $1,000,000,000\nStatus: Out of Stock", | |
inline=False | |
) | |
embed.set_footer(text="Use /shop <item> to attempt purchase") | |
await interaction.response.send_message(embed=embed) | |
return | |
# Handle purchase attempts | |
if item.lower() == "@everyone": | |
await interaction.response.send_message("This item is currently out of stock.") | |
elif item == "100": | |
await interaction.response.send_message("Robux codes are currently out of stock.") | |
elif item.lower() == "steam": | |
await interaction.response.send_message("Steam game codes are currently out of stock.") | |
else: | |
await interaction.response.send_message("Invalid item. Use /shop to see available items.") | |
async def balance(interaction: discord.Interaction): | |
user_id = interaction.user.id | |
balance = user_cash.get(user_id, 0) | |
embed = discord.Embed( | |
title="π° Balance", | |
description=f"Your current balance: ${balance:,}", | |
color=0x787878 | |
) | |
await interaction.response.send_message(embed=embed) | |
async def addmoney(interaction: discord.Interaction, user: discord.Member, amount: int): | |
user_id = user.id | |
user_cash[user_id] = user_cash.get(user_id, 0) + amount | |
embed = discord.Embed( | |
title="π΅ Money Added", | |
description=f"Added ${amount:,} to {user.mention}'s balance\nNew balance: ${user_cash[user_id]:,}", | |
color=0x787878 | |
) | |
await interaction.response.send_message(embed=embed) |