feat: Add user existence checks to economy commands and refactor trade service to expose sessions for testing.

This commit is contained in:
syntaxbullet
2026-01-05 12:57:22 +01:00
parent 599684cde8
commit d0b4cb80de
7 changed files with 48 additions and 36 deletions

View File

@@ -33,6 +33,11 @@ export const pay = createCommand({
const amount = BigInt(interaction.options.getInteger("amount", true));
const senderId = interaction.user.id;
if (!targetUser) {
await interaction.reply({ embeds: [createErrorEmbed("User not found.")], flags: MessageFlags.Ephemeral });
return;
}
const receiverId = targetUser.id;
if (amount < config.economy.transfers.minAmount) {
@@ -40,14 +45,14 @@ export const pay = createCommand({
return;
}
if (senderId === receiverId) {
if (senderId === receiverId.toString()) {
await interaction.reply({ embeds: [createErrorEmbed("You cannot pay yourself.")], flags: MessageFlags.Ephemeral });
return;
}
try {
await interaction.deferReply();
await economyService.transfer(senderId, receiverId, amount);
await economyService.transfer(senderId, receiverId.toString(), amount);
const embed = createSuccessEmbed(`Successfully sent ** ${amount}** Astral Units to <@${targetUser.id}>.`, "💸 Transfer Successful");
await interaction.editReply({ embeds: [embed], content: `<@${receiverId}>` });