Fix the claim logic removing a user's currency before it checks if the card is actually claimable
All checks were successful
Test / build (push) Successful in 7s
All checks were successful
Test / build (push) Successful in 7s
This commit is contained in:
parent
976445fa0d
commit
e584c1291b
3 changed files with 20 additions and 2 deletions
|
@ -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) {
|
||||
|
|
|
@ -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);
|
||||
|
|
15
src/client/interactionCreate/middleware/NewUserDiscovery.ts
Normal file
15
src/client/interactionCreate/middleware/NewUserDiscovery.ts
Normal file
|
@ -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}`);
|
||||
}
|
Loading…
Reference in a new issue