const { MessageEmbed } = require('discord.js'); module.exports = { name: "money", debug: false, description: "add/remove money from user", usage: "[opt.] [user] [amount]", permissions: { channel: ["VIEW_CHANNEL", "SEND_MESSAGES", "EMBED_LINKS"], member: ["MANAGE_GUILD"], }, SlashCommand: { options: [ { name: "add", description: "add money to user", value: "add", type: 1, options: [ { name: "user", description: "user to give money", value: "user", type: 6, required: true, }, { name: "amount", description: "the amount to add to balance", value: 1000.00, type: 10, required: true, } ], }, { name: "remove", description: "remove money from user", value: "remove", type: 1, options: [ { name: "user", description: "user to give money", value: "user", type: 6, required: true, }, { name: "amount", description: "the amount to add to balance", value: 1000.00, type: 10, required: true, } ], } ], /** * * @param {require("../structures/QuarksBot")} client * @param {import("discord.js").MessageCreate} message * @param {string[]} args * @param {*} param3 */ run: async (client, interaction, args, { GuildDB }) => { if (GuildDB.customChannelStatus==true&&!GuildDB.allowedChannels.includes(interaction.channel_id)) { return interaction.send(`You are not allowed to use the bot in this channel.`); } if (args[0].name == "add") { // add money to user let targetUserID = args[0].options[0].value.replace('<@!', '').replace('>', ''); let banking = await client.dbo.collection("banking").findOne({"account.userID": targetUserID}).then(banking => banking); if (!banking) { banking = { account: { userID: targetUserID, balance: GuildDB.startingBalance + args[0].options[1].value, cash: 0.00, } } client.dbo.collection("banking").insertOne(banking, function(err, res) { if (err) { client.log(err); let embed = new MessageEmbed() .setTitle(err) .setColor("RED") return interaction.send({ embeds: [embed] }); } }); } else { let newBalance = banking.account.balance + args[0].options[1].value; client.dbo.collection("banking").updateOne({"account.userID":targetUserID},{$set:{"account.balance":newBalance}}, function(err, res) { if (err) { client.log(err); let embed = new MessageEmbed() .setTitle(err) .setColor("RED") return interaction.send({ embeds: [embed] }); } }); } let successEmbed = new MessageEmbed() .setDescription(`Successfully added $${args[1].value.toFixed(2)} to <@${targetUserID}>'s balance`) .setColor('GREEN'); return interaction.send({ embeds: [successEmbed] }); } else if (args[0].name == "remove") { // remove money from user let targetUserID = args[0].options[0].value.replace('<@!', '').replace('>', ''); let banking = await client.dbo.collection("banking").findOne({"account.userID": targetUserID}).then(banking => banking); if (!banking) { banking = { account: { userID: targetUserID, balance: GuildDB.startingBalance - args[0].options[1].value, cash: 0.00, } } client.dbo.collection("banking").insertOne(banking, function(err, res) { if (err) { client.log(err); let embed = new MessageEmbed() .setTitle(err) .setColor("RED") return interaction.send({ embeds: [embed] }); } }); } else { let newBalance = banking.account.balance - args[0].options[1].value; client.dbo.collection("banking").updateOne({"account.userID":targetUserID},{$set:{"account.balance":newBalance}}, function(err, res) { if (err) { client.log(err); let embed = new MessageEmbed() .setTitle(err) .setColor("RED") return interaction.send({ embeds: [embed] }); } }); } let successEmbed = new MessageEmbed() .setDescription(`Successfully removed $${args[1].value.toFixed(2)} from <@${targetUserID}>'s balance`) .setColor('GREEN'); return interaction.send({ embeds: [successEmbed] }); } }, }, }