From 813e6a81a347222838e6e7f30f1126be31133f1b Mon Sep 17 00:00:00 2001 From: Braeden Sowinski Date: Mon, 1 Aug 2022 11:22:40 -0700 Subject: [PATCH] revamp bank commands --- commands/bal.js | 103 ---------- commands/bank.js | 472 +++++++++++++++++++++++++++++++++++++++++++ commands/deposit.js | 98 --------- commands/give.js | 178 ---------------- commands/settings.js | 18 +- commands/withdraw.js | 121 ----------- 6 files changed, 483 insertions(+), 507 deletions(-) delete mode 100644 commands/bal.js create mode 100644 commands/bank.js delete mode 100644 commands/deposit.js delete mode 100644 commands/give.js delete mode 100644 commands/withdraw.js diff --git a/commands/bal.js b/commands/bal.js deleted file mode 100644 index 37fcc55..0000000 --- a/commands/bal.js +++ /dev/null @@ -1,103 +0,0 @@ -const { MessageEmbed, Guild } = require('discord.js'); - -module.exports = { - name: "bal", - debug: false, - description: "View balance", - usage: "[user]", - permissions: { - channel: ["VIEW_CHANNEL", "SEND_MESSAGES", "EMBED_LINKS"], - member: [], - }, - SlashCommand: { - options: [ - { - name: "user", - description: "user to view ballance", - value: "user", - type: 6, - required: false, - } - ], - /** - * - * @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.`); - } - - let balanceEmbed = new MessageEmbed() - .setColor(client.config.EmbedColor); - - if (args&&args[0]) { - // Show target users balance - - let targetUserID = args[0].value.replace('<@!', '').replace('>', ''); - let targetUserBanking = await client.dbo.collection("banking").findOne({"account.userID":targetUserID}).then(inventory => inventory); - - if (!targetUserBanking) { - targetUserBanking = { - account: { - userID: interaction.member.user.id, - balance: GuildDB.startingBalance, - cash: 0.00, - } - } - - client.dbo.collection("banking").insertOne(targetUserBanking, function(err, res) { - if (err) { - client.log(err); - let embed = new MessageEmbed() - .setTitle(err) - .setColor("RED") - - return interaction.send({ embeds: [embed] }); - } - }); - } - - // This lame line of code to get username without ping on discord - const User = client.users.cache.get(targetUserID); - - balanceEmbed.setTitle(`${User.tag}'s Balance`); - balanceEmbed.setDescription(`**Bank:** $${targetUserBanking.account.balance}\n**Cash:** $${targetUserBanking.account.cash}`); - - } else { - // Show command authors balance - - let banking = await client.dbo.collection("banking").findOne({"account.userID": interaction.member.user.id}).then(banking => banking); - - if (!banking) { - banking = { - account: { - userID: interaction.member.user.id, - balance: GuildDB.startingBalance, - 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] }); - } - }); - } - - balanceEmbed.setTitle('Your Balance'); - balanceEmbed.setDescription(`**Bank:** $${banking.account.balance.toFixed(2)}\n**Cash:** $${banking.account.cash.toFixed(2)}`); - } - - return interaction.send({ embeds: [balanceEmbed] }); - }, - }, -} \ No newline at end of file diff --git a/commands/bank.js b/commands/bank.js new file mode 100644 index 0000000..9f3cb1c --- /dev/null +++ b/commands/bank.js @@ -0,0 +1,472 @@ +const { MessageEmbed } = require('discord.js'); + +module.exports = { + name: "bank", + debug: false, + description: "manage your banking", + usage: "[cmd] [amount]", + permissions: { + channel: ["VIEW_CHANNEL", "SEND_MESSAGES", "EMBED_LINKS"], + member: [], + }, + SlashCommand: { + options: [ + { + name: "deposit", + description: "deposit cash into your bank", + value: "deposit", + type: 1, + options: [{ + name: "amount", + description: "amount to deposit", + value: "amount", + type: 10, + min_value: 0.01, + required: true, + }] + }, + { + name: "withdraw", + description: "withdraw cash from you bank", + value: "deposit", + type: 1, + options: [{ + name: "amount", + description: "amount to withdraw", + value: "amount", + type: 10, + min_value: 0.01, + required: true, + }] + }, + { + name: "balance", + description: "view your bank balance and count your cash", + value: "balance", + type: 1, + options: [{ + name: "user", + description: "user to view ballance", + value: "user", + type: 6, + required: false, + }] + }, + { + name: "give", + description: "give a user cash", + value: "give", + type: 1, + options: [ + { + name: "user", + description: "user to give cash to", + value: "user", + type: 6, + required: true, + }, + { + name: "amount", + description: "the amount to give", + value: 1, + type: 10, + required: true, + }, + ] + }, + { + name: "transfer", + description: "transfer directly to users bank", + value: "transfer", + type: 1, + options: [ + { + name: "user", + description: "user to transfer to", + value: "user", + type: 6, + required: true, + }, + { + name: "amount", + description: "the amount to transfer", + value: 1, + 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.`); + } + + let banking = await client.dbo.collection("banking").findOne({"account.userID": interaction.member.user.id}).then(banking => banking); + + if (!banking) { + banking = { + account: { + userID: interaction.member.user.id, + balance: GuildDB.startingBalance, + cash: 0.00, + } + } + + client.dbo.collection("banking").insertOne(banking, function(err, res) { + if (err) { + client.log(err); + const embed = new MessageEmbed() + .setDescriptions(`**Internal Error:** ${err}\nContact the Developers`) + .setColor("RED") + + return interaction.send({ embeds: [embed] }); + } + }); + } + + + if (args[0].name == 'deposit') { + if (banking.account.cash.toFixed(2) - args[0].options[0].value < 0) { + const nsf = new MessageEmbed() + .setDescription('**Bank Notice:** NSF. Non sufficient funds') + .setColor("RED"); + + return interaction.send({ embeds: [nsf] }); + } + + newBalance = banking.account.balance + args[0].options[0].value; + newCash = Math.abs(banking.account.cash.toFixed(2) - args[0].options[0].value); + + client.dbo.collection("banking").updateOne({"account.userID":interaction.member.user.id},{$set:{"account.balance":newBalance,"account.cash":newCash}}, function(err, res) { + if (err) { + client.log(err); + const embed = new MessageEmbed() + .setDescriptions(`**Internal Error:** ${err}\nContact the Developers`) + .setColor("RED") + + return interaction.send({ embeds: [embed] }); + } + }); + client.dbo.collection("inventories").updateOne({"inventory.userID":interaction.member.user.id, "inventory.items.type":"wallet"}, + {$set:{"inventory.items.$.cash":newCash}}, function(err, res) { + if (err) { + client.log(err); + const embed = new MessageEmbed() + .setDescriptions(`**Internal Error:** ${err}\nContact the Developers`) + .setColor("RED") + + return interaction.send({ embeds: [embed] }); + } + }); + + const successEmbed = new MessageEmbed() + .setTitle('Bank Notice:') + .setDescription(`Successfully deposited **$${args[0].options[0].value.toFixed(2)}**\nUse \`/bank balance\` to view your balance`) + .setColor('GREEN'); + + return interaction.send({ embeds: [successEmbed] }); + + } else if (args[0].name == 'withdraw') { + if (args[0].options[0].value > banking.account.balance) { + let nsf = new MessageEmbed() + .setDescription('**Bank Notice:** NSF. Non sufficient funds') + .setColor("RED"); + + return interaction.send({ embeds: [nsf] }); + } + + newBalance = banking.account.balance - args[0].options[0].value; + newCash = banking.account.cash + args[0].options[0].value; + + client.dbo.collection("banking").updateOne({"account.userID":interaction.member.user.id},{$set:{"account.balance":newBalance,"account.cash":newCash}}, function(err, res) { + if (err) { + client.log(err); + const embed = new MessageEmbed() + .setDescriptions(`**Internal Error:** ${err}\nContact the Developers`) + .setColor("RED") + + return interaction.send({ embeds: [embed] }); + } + }); + let inventory = await client.dbo.collection("inventories").findOne({"inventory.userID": interaction.member.user.id}).then(inventory => inventory); + + if (!inventory) { + // Register inventory for user + let newInventory = new Inventory(); + newInventory.createInventory(interaction.member.user.id); + newInventory.inventory.items[0].cash = args[0].options[0].value; + newInventory.save() + .catch(err => { + if (err) { + client.log(err); + const embed = new MessageEmbed() + .setDescriptions(`**Internal Error:** ${err}\nContact the Developers`) + .setColor("RED") + + return interaction.send({ embeds: [embed] }); + } + }); + } else { + client.dbo.collection("inventories").updateOne({"inventory.userID":interaction.member.user.id, "inventory.items.type":"wallet"}, + {$set:{"inventory.items.$.cash":newCash}}, function(err, res) { + if (err) { + client.log(err); + const embed = new MessageEmbed() + .setDescriptions(`**Internal Error:** ${err}\nContact the Developers`) + .setColor("RED") + + return interaction.send({ embeds: [embed] }); + } + }); + } + + const successEmbed = new MessageEmbed() + .setTitle('Bank Notice:') + .setDescription(`Successfully withdrew **$${args[0].options[0].value.toFixed(2)}**\nUse \`/bank balance\` or \`/inventory wallet\` to view your cash balance`) + .setColor('GREEN'); + + return interaction.send({ embeds: [successEmbed] }); + + } else if (args[0].name == 'balance') { + let balanceEmbed = new MessageEmbed() + .setColor(client.config.EmbedColor); + + if (args[0].options&&args[0].options[0]) { + // Show target users balance + + let targetUserID = args[0].options[0].value.replace('<@!', '').replace('>', ''); + let targetUserBanking = await client.dbo.collection("banking").findOne({"account.userID":targetUserID}).then(inventory => inventory); + + if (!targetUserBanking) { + targetUserBanking = { + account: { + userID: interaction.member.user.id, + balance: GuildDB.startingBalance, + cash: 0.00, + } + } + + client.dbo.collection("banking").insertOne(targetUserBanking, function(err, res) { + if (err) { + client.log(err); + const embed = new MessageEmbed() + .setDescriptions(`**Internal Error:** ${err}\nContact the Developers`) + .setColor("RED") + + return interaction.send({ embeds: [embed] }); + } + }); + } + + // This lame line of code to get username without ping on discord + const User = client.users.cache.get(targetUserID); + + balanceEmbed.setTitle(`${User.tag}'s Bank Records`); + balanceEmbed.addFields( + { name: '**Bank**', value: `$${targetUserBanking.account.balance}`, inline: true }, + { name: '**Cash**', value: `$${targetUserBanking.account.cash}`, inline: true }); + + } else { + // Show command authors balance + + balanceEmbed.setTitle('Personal Bank Records'); + balanceEmbed.addFields( + { name: '**Bank**', value: `$${banking.account.balance.toFixed(2)}`, inline: true }, + { name: '**Cash**', value: `$${banking.account.cash.toFixed(2)}`, inline: true }); + } + + return interaction.send({ embeds: [balanceEmbed] }); + + } else if (args[0].name == 'give') { + // send money from wallet + + if (banking.account.cash.toFixed(2) - args[0].options[1].value < 0) { + let embed = new MessageEmbed() + .setTitle('Non sufficient funds! Withdraw more cash') + .setColor("RED"); + + return interaction.send({ embeds: [embed] }); + } + + newCash = banking.account.cash - args[0].options[1].value; + + client.dbo.collection("banking").updateOne({"account.userID":interaction.member.user.id},{$set:{"account.cash":newCash}}, function(err, res) { + if (err) { + client.log(err); + const embed = new MessageEmbed() + .setDescriptions(`**Internal Error:** ${err}\nContact the Developers`) + .setColor("RED") + + return interaction.send({ embeds: [embed] }); + } + }); + + client.dbo.collection("inventories").updateOne({"inventory.userID":interaction.member.user.id, "inventory.items.type":"wallet"}, + {$set:{"inventory.items.$.cash":newCash}}, function(err, res) { + if (err) { + client.log(err); + const embed = new MessageEmbed() + .setDescriptions(`**Internal Error:** ${err}\nContact the Developers`) + .setColor("RED") + + return interaction.send({ embeds: [embed] }); + } + }); + + let targetUserID = args[0].options[0].value.replace('<@!', '').replace('>', ''); + let targetUserInventory = await client.dbo.collection("inventories").findOne({"inventory.userID":targetUserID}).then(inventory => inventory); + + if (!targetUserInventory) { + // Register inventory for user + let newInventory = new Inventory(); + newInventory.createInventory(targetUserID); + newInventory.inventory.items[0].cash = args[0].options[1].value; + newInventory.save() + .catch(err => { + if (err) { + client.log(err); + const embed = new MessageEmbed() + .setDescriptions(`**Internal Error:** ${err}\nContact the Developers`) + .setColor("RED") + + return interaction.send({ embeds: [embed] }); + } + }); + } else { + let newTargetCash = targetUserInventory.inventory.items[0].cash + args[0].options[1].value; + + client.dbo.collection("inventories").updateOne({"inventory.userID":targetUserID, "inventory.items.type":"wallet"}, + {$set:{"inventory.items.$.cash":newTargetCash}}, function(err, res) { + if (err) { + client.log(err); + const embed = new MessageEmbed() + .setDescriptions(`**Internal Error:** ${err}\nContact the Developers`) + .setColor("RED") + + return interaction.send({ embeds: [embed] }); + } + }); + } + + let targetUserBanking = await client.dbo.collection("banking").findOne({"account.userID": targetUserID}).then(banking => banking); + + if (!targetUserBanking) { + targetUserBanking = { + account: { + userID: targetUserID, + balance: GuildDB.startingBalance, + cash: args[0].options[1].value, + } + } + + client.dbo.collection("banking").insertOne(targetUserBanking, function(err, res) { + if (err) { + client.log(err); + const embed = new MessageEmbed() + .setDescriptions(`**Internal Error:** ${err}\nContact the Developers`) + .setColor("RED") + + return interaction.send({ embeds: [embed] }); + } + }); + } else { + let newTargetCash = targetUserBanking.account.cash + args[0].options[1].value; + + client.dbo.collection("banking").updateOne({"account.userID": targetUserID}, {$set: {"account.cash": newTargetCash}}, function(err, res) { + if (err) { + client.log(err); + const embed = new MessageEmbed() + .setDescriptions(`**Internal Error:** ${err}\nContact the Developers`) + .setColor("RED") + + return interaction.send({ embeds: [embed] }); + } + }); + } + + const successEmbed = new MessageEmbed() + .setTitle('Success') + .setDescription(`Successfully gave <@${targetUserID}> $${args[0].options[1].value.toFixed(2)}`) + .setColor('GREEN'); + + return interaction.send({ embeds: [successEmbed] }); + + } else if (args[0].name == 'transfer') { + // send money from bank + + if (banking.account.balance.toFixed(2) - args[0].options[1].value < 0) { + let embed = new MessageEmbed() + .setTitle('Non sufficient funds! Withdraw more cash') + .setColor("RED"); + + return interaction.send({ embeds: [embed] }); + } + + newBalance = banking.account.balance - args[0].options[1].value; + + client.dbo.collection("banking").updateOne({"account.userID":interaction.member.user.id},{$set:{"account.balance":newBalance}}, function(err, res) { + if (err) { + client.log(err); + const embed = new MessageEmbed() + .setDescriptions(`**Internal Error:** ${err}\nContact the Developers`) + .setColor("RED") + + return interaction.send({ embeds: [embed] }); + } + }); + + let targetUserID = args[0].options[0].value.replace('<@!', '').replace('>', ''); + let targetUserBanking = await client.dbo.collection("banking").findOne({"account.userID": targetUserID}).then(banking => banking); + + if (!targetUserBanking) { + targetUserBanking = { + account: { + userID: targetUserID, + balance: (GuildDB.startingBalance + args[0].options[1].value), + cash: 0.00, + } + } + + client.dbo.collection("banking").insertOne(targetUserBanking, function(err, res) { + if (err) { + client.log(err); + const embed = new MessageEmbed() + .setDescriptions(`**Internal Error:** ${err}\nContact the Developers`) + .setColor("RED") + + return interaction.send({ embeds: [embed] }); + } + }); + } else { + let newTargetBalance = targetUserBanking.account.balance + args[0].options[1].value; + + client.dbo.collection("banking").updateOne({"account.userID":targetUserID},{$set:{"account.balance":newTargetBalance}}, function(err, res) { + if (err) { + client.log(err); + const embed = new MessageEmbed() + .setDescriptions(`**Internal Error:** ${err}\nContact the Developers`) + .setColor("RED") + + return interaction.send({ embeds: [embed] }); + } + }); + } + + const successEmbed = new MessageEmbed() + .setTitle('Bank Notice:') + .setDescription(`Successfully transfered <@${targetUserID}> $${args[0].options[1].value.toFixed(2)}`) + .setColor('GREEN'); + + return interaction.send({ embeds: [successEmbed] }); + } + }, + }, +} \ No newline at end of file diff --git a/commands/deposit.js b/commands/deposit.js deleted file mode 100644 index 2693141..0000000 --- a/commands/deposit.js +++ /dev/null @@ -1,98 +0,0 @@ -const { MessageEmbed } = require('discord.js'); - -module.exports = { - name: "deposit", - debug: false, - description: "deposit cash to your balance", - usage: "[amount]", - permissions: { - channel: ["VIEW_CHANNEL", "SEND_MESSAGES", "EMBED_LINKS"], - member: [], - }, - SlashCommand: { - options: [ - { - name: "amount", - description: "amount to deposit", - value: "amount", - type: 10, - min_value: 0.01, - 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.`); - } - - let banking = await client.dbo.collection("banking").findOne({"account.userID": interaction.member.user.id}).then(banking => banking); - - if (!banking) { - banking = { - account: { - userID: interaction.member.user.id, - balance: GuildDB.startingBalance, - 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] }); - } - }); - } - if (banking.account.cash.toFixed(2) - args[0].value < 0) { - let embed = new MessageEmbed() - .setTitle('Insufficient funds') - .setColor("RED"); - - return interaction.send({ embeds: [embed] }); - } - - newBalance = banking.account.balance + args[0].value; - newCash = Math.abs(banking.account.cash.toFixed(2) - args[0].value); - - client.dbo.collection("banking").updateOne({"account.userID":interaction.member.user.id},{$set:{"account.balance":newBalance,"account.cash":newCash}}, function(err, res) { - if (err) { - client.log(err); - let embed = new MessageEmbed() - .setTitle(err) - .setColor("RED") - - return interaction.send({ embeds: [embed] }); - } - }); - client.dbo.collection("inventories").updateOne({"inventory.userID":interaction.member.user.id, "inventory.items.type":"wallet"}, - {$set:{"inventory.items.$.cash":newCash}}, 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() - .setTitle('Success') - .setDescription(`Successfully deposited $${args[0].value.toFixed(2)}\nUse \`/bal\` to view your balance`) - .setColor('GREEN'); - - return interaction.send({ embeds: [successEmbed] }); - }, - }, -} \ No newline at end of file diff --git a/commands/give.js b/commands/give.js deleted file mode 100644 index 28df9b6..0000000 --- a/commands/give.js +++ /dev/null @@ -1,178 +0,0 @@ -const { MessageEmbed } = require('discord.js'); -const Inventory = require('../structures/inventory'); - -module.exports = { - name: "give", - debug: false, - description: "give user an amount of cash", - usage: "[amount]", - permissions: { - channel: ["VIEW_CHANNEL", "SEND_MESSAGES", "EMBED_LINKS"], - member: [], - }, - SlashCommand: { - options: [ - { - name: "user", - description: "user to give money", - value: "user", - type: 6, - required: true, - }, - { - name: "amount", - description: "the amount to send", - value: 1, - 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.`); - } - - // send money from wallet - - let banking = await client.dbo.collection("banking").findOne({"account.userID": interaction.member.user.id}).then(banking => banking); - - if (!banking) { - banking = { - account: { - userID: interaction.member.user.id, - balance: GuildDB.startingBalance, - 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] }); - } - }); - } - if (banking.account.cash.toFixed(2) - args[1].value < 0) { - let embed = new MessageEmbed() - .setTitle('Insufficient funds') - .setColor("RED"); - - return interaction.send({ embeds: [embed] }); - } - - newCash = banking.account.cash - args[1].value; - - client.dbo.collection("banking").updateOne({"account.userID":interaction.member.user.id},{$set:{"account.cash":newCash}}, function(err, res) { - if (err) { - client.log(err); - let embed = new MessageEmbed() - .setTitle(err) - .setColor("RED") - - return interaction.send({ embeds: [embed] }); - } - }); - - client.dbo.collection("inventories").updateOne({"inventory.userID":interaction.member.user.id, "inventory.items.type":"wallet"}, - {$set:{"inventory.items.$.cash":newCash}}, function(err, res) { - if (err) { - client.log(err); - let embed = new MessageEmbed() - .setTitle(err) - .setColor("RED") - - return interaction.send({ embeds: [embed] }); - } - }); - - let targetUserID = args[0].value.replace('<@!', '').replace('>', ''); - let targetUserInventory = await client.dbo.collection("inventories").findOne({"inventory.userID":targetUserID}).then(inventory => inventory); - - if (!targetUserInventory) { - // Register inventory for user - let newInventory = new Inventory(); - newInventory.createInventory(targetUserID); - newInventory.inventory.items[0].cash = args[1].value; - newInventory.save() - .catch(err => { - if (err) { - client.log(err); - let embed = new MessageEmbed() - .setTitle(err) - .setColor("RED") - - return interaction.send({ embeds: [embed] }); - } - }); - } else { - let newTargetCash = targetUserInventory.inventory.items[0].cash + args[1].value; - - client.dbo.collection("inventories").updateOne({"inventory.userID":targetUserID, "inventory.items.type":"wallet"}, - {$set:{"inventory.items.$.cash":newTargetCash}}, function(err, res) { - if (err) { - client.log(err); - let embed = new MessageEmbed() - .setTitle(err) - .setColor("RED") - - return interaction.send({ embeds: [embed] }); - } - }); - } - - let targetUserBanking = await client.dbo.collection("banking").findOne({"account.userID": targetUserID}).then(banking => banking); - - if (!targetUserBanking) { - targetUserBanking = { - account: { - userID: targetUserID, - balance: GuildDB.startingBalance, - cash: args[1].value, - } - } - - client.dbo.collection("banking").insertOne(targetUserBanking, function(err, res) { - if (err) { - client.log(err); - let embed = new MessageEmbed() - .setTitle(err) - .setColor("RED") - - return interaction.send({ embeds: [embed] }); - } - }); - } else { - let newTargetCash = targetUserBanking.account.cash + args[1].value; - - client.dbo.collection("banking").updateOne({"account.userID": targetUserID}, {$set: {"account.cash": newTargetCash}}, 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() - .setTitle('Success') - .setDescription(`Successfully gave <@${targetUserID}> $${args[1].value.toFixed(2)}`) - .setColor('GREEN'); - - return interaction.send({ embeds: [successEmbed] }); - }, - }, -} \ No newline at end of file diff --git a/commands/settings.js b/commands/settings.js index dc41969..8b75455 100644 --- a/commands/settings.js +++ b/commands/settings.js @@ -18,9 +18,9 @@ module.exports = { type: 1, options: [ { - name: "add/remove", + name: "add_or_remove", description: "add/remove channel", - value: "add/remove", + value: "add_or_remove", type: 3, required: true, choices: [ @@ -43,9 +43,9 @@ module.exports = { type: 1, options: [ { - name: "add/remove", + name: "add_or_remove", description: "add/remove channel", - value: "add/remove", + value: "add_or_remove", type: 3, required: true, choices: [ @@ -68,9 +68,9 @@ module.exports = { type: 1, options: [ { - name: "add/remove", + name: "add_or_remove", description: "add/remove channel", - value: "add/remove", + value: "add_or_remove", type: 3, required: true, choices: [ @@ -241,6 +241,7 @@ module.exports = { }); return; } + } else if (args[0].name == 'action_channel') { const channelid = args[0].options[1].value; @@ -313,6 +314,7 @@ module.exports = { }); return; } + } else if (args[0].name == 'tweet_channel') { const channelid = args[0].options[1].value; @@ -385,6 +387,7 @@ module.exports = { }); return; } + } else if (args[0].name == 'starting_balance') { client.dbo.collection("guilds").updateOne({"server.serverID": GuildDB.serverID}, {"server.startingBalance":args[0].options[0].value}, function(err, res) { if (err) { @@ -430,7 +433,7 @@ module.exports = { }); } else { client.dbo.collection("guilds").updateOne({"server.serverID":Guild.serverID, "server.incomeRoles.role": args[0].options[0].value}, - {$set: {"server.incomeRoles.$.income": args[1].value}}, function(err, res) { + {$set: {"server.incomeRoles.$.income": args[0].options[1].value}}, function(err, res) { if (err) { client.log(err); const embed = new MessageEmbed() @@ -447,6 +450,7 @@ module.exports = { .setColor('GREEN'); return interaction.send({ embeds: [successEmbed] }); + } else if (args[0].name == 'remove_income_role') { const searchIndex = GuildDB.incomeRoles.findIndex((role) => role.role==args[0].options[0].value); if (searchIndex == -1) { diff --git a/commands/withdraw.js b/commands/withdraw.js deleted file mode 100644 index 4b29305..0000000 --- a/commands/withdraw.js +++ /dev/null @@ -1,121 +0,0 @@ -const { MessageEmbed } = require('discord.js'); -const Inventory = require('./inventory'); - -module.exports = { - name: "withdraw", - debug: false, - description: "withdraw cash from balance", - usage: "[amount]", - permissions: { - channel: ["VIEW_CHANNEL", "SEND_MESSAGES", "EMBED_LINKS"], - member: [], - }, - SlashCommand: { - options: [ - { - name: "amount", - description: "amount to withdraw", - value: "amount", - type: 10, - min_value: 0.01, - 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.`); - } - - let banking = await client.dbo.collection("banking").findOne({"account.userID": interaction.member.user.id}).then(banking => banking); - - if (!banking) { - banking = { - account: { - userID: interaction.member.user.id, - balance: GuildDB.startingBalance, - 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] }); - } - }); - } - - if (args[0].value > banking.account.balance) { - let embed = new MessageEmbed() - .setTitle('Insufficient funds') - .setColor("RED"); - - return interaction.send({ embeds: [embed] }); - } - - newBalance = banking.account.balance - args[0].value; - newCash = banking.account.cash + args[0].value; - - client.dbo.collection("banking").updateOne({"account.userID":interaction.member.user.id},{$set:{"account.balance":newBalance,"account.cash":newCash}}, function(err, res) { - if (err) { - client.log(err); - let embed = new MessageEmbed() - .setTitle(err) - .setColor("RED") - - return interaction.send({ embeds: [embed] }); - } - }); - - let inventory = await client.dbo.collection("inventories").findOne({"inventory.userID": interaction.member.user.id}).then(inventory => inventory); - - if (!inventory) { - // Register inventory for user - let newInventory = new Inventory(); - newInventory.createInventory(interaction.member.user.id); - newInventory.inventory.items[0].cash = args[0].value; - newInventory.save() - .catch(err => { - if (err) { - client.log(err); - let embed = new MessageEmbed() - .setTitle(err) - .setColor("RED") - - return interaction.send({ embeds: [embed] }); - } - }); - } else { - client.dbo.collection("inventories").updateOne({"inventory.userID":interaction.member.user.id, "inventory.items.type":"wallet"}, - {$set:{"inventory.items.$.cash":newCash}}, 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() - .setTitle('Success') - .setDescription(`Successfully withdrew $${args[0].value.toFixed(2)}\nUse \`/bal\` or \`/inventory wallet\` to view your cash balance`) - .setColor('GREEN'); - - return interaction.send({ embeds: [successEmbed] }); - }, - }, -} \ No newline at end of file