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;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
await user.Save(User, user);
|
|
||||||
|
|
||||||
const claimed = await eClaim.FetchOneByClaimId(claimId);
|
const claimed = await eClaim.FetchOneByClaimId(claimId);
|
||||||
|
|
||||||
if (claimed) {
|
if (claimed) {
|
||||||
|
@ -45,6 +43,8 @@ export default class Claim extends ButtonEvent {
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
await user.Save(User, user);
|
||||||
|
|
||||||
let inventory = await Inventory.FetchOneByCardNumberAndUserId(userId, cardNumber);
|
let inventory = await Inventory.FetchOneByCardNumberAndUserId(userId, cardNumber);
|
||||||
|
|
||||||
if (!inventory) {
|
if (!inventory) {
|
||||||
|
|
|
@ -2,11 +2,14 @@ import { Interaction } from "discord.js";
|
||||||
import ChatInputCommand from "./interactionCreate/ChatInputCommand";
|
import ChatInputCommand from "./interactionCreate/ChatInputCommand";
|
||||||
import Button from "./interactionCreate/Button";
|
import Button from "./interactionCreate/Button";
|
||||||
import AppLogger from "./appLogger";
|
import AppLogger from "./appLogger";
|
||||||
|
import NewUserDiscovery from "./interactionCreate/middleware/NewUserDiscovery";
|
||||||
|
|
||||||
export class Events {
|
export class Events {
|
||||||
public async onInteractionCreate(interaction: Interaction) {
|
public async onInteractionCreate(interaction: Interaction) {
|
||||||
if (!interaction.guildId) return;
|
if (!interaction.guildId) return;
|
||||||
|
|
||||||
|
await NewUserDiscovery(interaction);
|
||||||
|
|
||||||
if (interaction.isChatInputCommand()) {
|
if (interaction.isChatInputCommand()) {
|
||||||
AppLogger.LogVerbose("Client", `ChatInputCommand: ${interaction.commandName}`);
|
AppLogger.LogVerbose("Client", `ChatInputCommand: ${interaction.commandName}`);
|
||||||
ChatInputCommand.onChatInput(interaction);
|
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