diff --git a/src/buttonEvents/Claim.ts b/src/buttonEvents/Claim.ts index 4f7f5ae..a1d2d44 100644 --- a/src/buttonEvents/Claim.ts +++ b/src/buttonEvents/Claim.ts @@ -31,8 +31,6 @@ export default class Claim extends ButtonEvent { return; } - await user.Save(User, user); - const claimed = await eClaim.FetchOneByClaimId(claimId); if (claimed) { @@ -45,6 +43,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