studio script and balance command

This commit is contained in:
2025-12-05 20:03:51 +05:30
parent f27c9103f1
commit d541ed2fb3
2 changed files with 12 additions and 21 deletions

View File

@@ -12,12 +12,12 @@
"typescript": "^5" "typescript": "^5"
}, },
"scripts": { "scripts": {
"generate": "drizzle-kit generate", "generate": "docker compose run --rm app bun drizzle-kit generate",
"migrate": "drizzle-kit migrate", "migrate": "docker compose run --rm app bun drizzle-kit migrate",
"db:push": "drizzle-kit push", "db:push": "docker compose run --rm app bun drizzle-kit push",
"deploy": "docker compose run --rm app bun src/scripts/deploy.ts", "deploy": "docker compose run --rm app bun src/scripts/deploy.ts",
"dev": "bun --watch src/index.ts", "dev": "bun --watch src/index.ts",
"db:studio": "drizzle-kit studio" "db:studio": "docker compose run --rm -p 8080:8080 app bun drizzle-kit studio --host 127.0.0.1 --port 8080"
}, },
"dependencies": { "dependencies": {
"discord.js": "^14.25.1", "discord.js": "^14.25.1",

View File

@@ -6,30 +6,21 @@ import { SlashCommandBuilder, EmbedBuilder, PermissionFlagsBits } from "discord.
export const balance = createCommand({ export const balance = createCommand({
data: new SlashCommandBuilder() data: new SlashCommandBuilder()
.setName("balance") .setName("balance")
.setDescription("Check your balance or another user's balance (admins only)") .setDescription("Check your balance")
.addUserOption(option =>
option
.setName("user")
.setDescription("User to view balance of (admin only)")
.setRequired(false)
),
execute: async (interaction) => {
const isAdmin = interaction.memberPermissions?.has(PermissionFlagsBits.Administrator) || false;
const target = interaction.options.getUser("user");
const finalTarget = (!isAdmin || !target) ? interaction.user : target;
,execute: async (interaction) => {
const user = interaction.user;
// Ensure user exists in DB // Ensure user exists in DB
let dbUser = await getUserById(finalTarget.id); let dbUser = await getUserById(user.id);
if (!dbUser) { if (!dbUser) {
await createUser(finalTarget.id); await createUser(user.id);
} }
const balance = await getUserBalance(finalTarget.id); const balance = await getUserBalance(user.id);
const embed = new EmbedBuilder() const embed = new EmbedBuilder()
.setTitle(`${finalTarget.username}'s Balance`) .setTitle(`${user.username}'s Balance`)
.setDescription(`💰 **${balance} coins**`) .setDescription(`💰 **${balance} coins**`)
.setColor("Green"); .setColor("Green");