bot just crashes

const { Client, Interaction, ApplicationCommandOptionType, PermissionFlagsBits } = require('discord.js');
const fs = require('fs');
const path = require('path');

// Define the path to the data file three directories up from the current directory
const dataFilePath = path.join(__dirname, '../../../data.json');

module.exports = {
  name: 'add',
  description: 'Set the stock',
  options: [
    {
      name: 'account-type',
      description: 'The type of account',
      type: ApplicationCommandOptionType.Channel,
      required: true,
    },
    {
      name: 'state',
      description: 'The state of the account',
      type: ApplicationCommandOptionType.String,
      required: true,
      choices: [
        {
          name: 'resting',
          value: 'resting',
        },
        {
          name: 'stock',
          value: 'stock',
        },
      ],
    },
    {
      name: 'amount',
      description: 'The amount of accounts',
      type: ApplicationCommandOptionType.Number,
      required: true,
    },
  ],
  callback: async (client, interaction) => {
    console.log('Callback function triggered');
    try {
      // Read the JSON data from the file
      console.log(`Reading data from file: ${dataFilePath}`);
      const data = JSON.parse(await fs.promises.readFile(dataFilePath, 'utf8'));
      console.log('Data read successfully:', data);

      // Extract options
      const channelId = interaction.options.getChannel('account-type').id;
      const state = interaction.options.getString('state');
      const amount = interaction.options.getNumber('amount');

      // Log the extracted options
      console.log(`Extracted options - Channel ID: ${channelId}, State: ${state}, Amount: ${amount}`);

      // Find the channel in the data
      const channelData = data.channels.find(channel => channel.channelID === channelId);

      if (!channelData) {
        console.log(`Channel with ID ${channelId} not found.`);
        return interaction.reply({ content: `Channel with ID ${channelId} not found.`, ephemeral: true });
      }

      // Update the state with the new amount
      if (channelData.categories[state] !== undefined) {
        console.log(`Current amount for ${state} before update: ${channelData.categories[state].amount}`);
        oldamount = channelData.categories[state].amount
        channelData.categories[state].amount += amount;
        console.log(`Updated amount for ${state}: ${amount}`);

        // Save the updated data back to the JSON file
        await fs.promises.writeFile(dataFilePath, JSON.stringify(data, null, 2));
        console.log('Data successfully written to file.');

        return interaction.reply({ content: `Successfully updated ${state} amount to ${amount} for channel ID ${channelId}.`, ephemeral: true });
      } else {
        console.log(`State ${state} is not valid.`);
        return interaction.reply({ content: `State ${state} is not valid.`, ephemeral: true });
      }
    } catch (err) {
      console.error('Error processing the request:', err);
      return interaction.reply({ content: 'An error occurred while updating the data.', ephemeral: true });
    }
  },
};
with this code my bot just crashes
Was this page helpful?