diff --git a/.env.example b/.env.example index bd411ca..d660884 100644 --- a/.env.example +++ b/.env.example @@ -7,7 +7,7 @@ # any secret values. BOT_TOKEN= -BOT_VER=0.6.3 +BOT_VER=0.6.4 BOT_AUTHOR=Vylpes BOT_OWNERID=147392775707426816 BOT_CLIENTID=682942374040961060 diff --git a/package.json b/package.json index d36086d..a08fd37 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "card-drop", - "version": "0.6.3", + "version": "0.6.4", "main": "./dist/bot.js", "typings": "./dist", "scripts": { diff --git a/src/buttonEvents/Claim.ts b/src/buttonEvents/Claim.ts index 04c7f7f..e12c674 100644 --- a/src/buttonEvents/Claim.ts +++ b/src/buttonEvents/Claim.ts @@ -39,8 +39,6 @@ export default class Claim extends ButtonEvent { return; } - await user.Save(User, user); - const claimed = await eClaim.FetchOneByClaimId(claimId); if (claimed) { @@ -53,6 +51,8 @@ export default class Claim extends ButtonEvent { return; } + await user.Save(User, user); + let inventory = await Inventory.FetchOneByCardNumberAndUserId(userId, cardNumber); if (!inventory) { diff --git a/src/client/events.ts b/src/client/events.ts index 0b82cee..f02fb9c 100644 --- a/src/client/events.ts +++ b/src/client/events.ts @@ -2,11 +2,14 @@ import { Interaction } from "discord.js"; import ChatInputCommand from "./interactionCreate/ChatInputCommand"; import Button from "./interactionCreate/Button"; import AppLogger from "./appLogger"; +import NewUserDiscovery from "./interactionCreate/middleware/NewUserDiscovery"; export class Events { public async onInteractionCreate(interaction: Interaction) { if (!interaction.guildId) return; + await NewUserDiscovery(interaction); + if (interaction.isChatInputCommand()) { AppLogger.LogVerbose("Client", `ChatInputCommand: ${interaction.commandName}`); ChatInputCommand.onChatInput(interaction); diff --git a/src/client/interactionCreate/middleware/NewUserDiscovery.ts b/src/client/interactionCreate/middleware/NewUserDiscovery.ts new file mode 100644 index 0000000..dcbe75a --- /dev/null +++ b/src/client/interactionCreate/middleware/NewUserDiscovery.ts @@ -0,0 +1,15 @@ +import { Interaction } from "discord.js"; +import User from "../../../database/entities/app/User"; +import CardConstants from "../../../constants/CardConstants"; +import AppLogger from "../../appLogger"; + +export default async function NewUserDiscovery(interaction: Interaction) { + const existingUser = await User.FetchOneById(User, interaction.user.id); + + if (existingUser) return; + + const newUser = new User(interaction.user.id, CardConstants.StartingCurrency); + await newUser.Save(User, newUser); + + AppLogger.LogInfo("NewUserDiscovery", `Discovered new user ${interaction.user.id}`); +} \ No newline at end of file