From 388c65c6dcde49cb9ea4d84e67dad39263da814f Mon Sep 17 00:00:00 2001 From: ION606 Date: Fri, 17 Jun 2022 16:41:02 +0300 Subject: [PATCH] Added the framework for the 'game battle --> item' command, fixed the 'buy' command, changed the currency symbol, added the 'game equip' command, added extra fields to the 'items --> wepaons category --- COMPLETE_INIT.js | 295 ++++++++++++------------ SELMER_COIN.png | Bin 0 -> 93334 bytes commands/Selmer Specific/postProfile.js | 6 +- commands/db/battle.js | 79 +++++-- commands/db/econ.js | 87 ++++--- commands/db/external_game_functions.js | 8 +- commands/db/game.js | 53 ++++- main.js | 18 +- 8 files changed, 328 insertions(+), 218 deletions(-) create mode 100644 SELMER_COIN.png diff --git a/COMPLETE_INIT.js b/COMPLETE_INIT.js index a284430..75562d9 100644 --- a/COMPLETE_INIT.js +++ b/COMPLETE_INIT.js @@ -2,150 +2,157 @@ let d = new Date(); const START = d.getTime(); -const { MongoClient, ServerApiVersion } = require('mongodb'); -const mongouri = process.env.MONGODB_URI; //DO NOT RUN LOCALLY (no process.env) +resetShop = false; -const client = new MongoClient(mongouri, { useNewUrlParser: true, useUnifiedTopology: true, serverApi: ServerApiVersion.v1 }); -let collectiontemp; -client.connect(err => { - collectiontemp = client.db("main").collection("shop"); - // perform actions on the collection object - collectiontemp.insertMany( - [ - { name: 'Grapes', cost: 2, icon: '๐Ÿ‡', sect: 'Food' }, - { name: 'Melon', cost: 5, icon: '๐Ÿˆ', sect: 'Food' }, - { name: 'Watermelon', cost: 5, icon: '๐Ÿ‰', sect: 'Food' }, - { name: 'Tangerine', cost: 3, icon: '๐ŸŠ', sect: 'Food' }, - { name: 'Lemon', cost: 3, icon: '๐Ÿ‹', sect: 'Food' }, - { name: 'Banana', cost: 4, icon: '๐ŸŒ', sect: 'Food' }, - { name: 'Pineapple', cost: 4, icon: '๐Ÿ', sect: 'Food' }, - { name: 'Mango', cost: 3, icon: '๐Ÿฅญ', sect: 'Food' }, - { name: 'Red Apple', cost: 3, icon: '๐ŸŽ', sect: 'Food' }, - { name: 'Green Apple', cost: 3, icon: '๐Ÿ', sect: 'Food' }, - { name: 'Pear', cost: 3, icon: '๐Ÿ', sect: 'Food' }, - { name: 'Peach', cost: 3, icon: '๐Ÿ‘', sect: 'Food' }, - { name: 'Cherries', cost: 4, icon: '๐Ÿ’', sect: 'Food' }, - { name: 'Strawberry', cost: 3, icon: '๐Ÿ“', sect: 'Food' }, - { name: 'Blueberries', cost: 3, icon: '๐Ÿซ', sect: 'Food' }, - { name: 'Kiwi', cost: 3, icon: '๐Ÿฅ', sect: 'Food' }, - { name: 'Tomato', cost: 4, icon: '๐Ÿ…', sect: 'Food' }, - { name: 'Olive', cost: 4, icon: '๐Ÿซ’', sect: 'Food' }, - { name: 'Coconut', cost: 3, icon: '๐Ÿฅฅ', sect: 'Food' }, - { name: 'Avocado', cost: 3, icon: '๐Ÿฅ‘', sect: 'Food' }, - { name: 'Eggplant', cost: 10, icon: '๐Ÿ†', sect: 'Food' }, - { name: 'Potato', cost: 3, icon: '๐Ÿฅ”', sect: 'Food' }, - { name: 'Carrot', cost: 3, icon: '๐Ÿฅ•', sect: 'Food' }, - { name: 'Ear of Corn', cost: 3, icon: '๐ŸŒฝ', sect: 'Food' }, - { name: 'Hot Pepper', cost: 3, icon: '๐ŸŒถ๏ธ', sect: 'Food' }, - { name: 'Bell Pepper', cost: 3, icon: '๐Ÿซ‘', sect: 'Food' }, - { name: 'Cucumber', cost: 3, icon: '๐Ÿฅ’', sect: 'Food' }, - { name: 'Leafy Green', cost: 3, icon: '๐Ÿฅฌ', sect: 'Food' }, - { name: 'Broccoli', cost: 2, icon: '๐Ÿฅฆ', sect: 'Food' }, - { name: 'Garlic', cost: 3, icon: '๐Ÿง„', sect: 'Food' }, - { name: 'Onion', cost: 3, icon: '๐Ÿง…', sect: 'Food' }, - { name: 'Mushroom', cost: 3, icon: '๐Ÿ„', sect: 'Food' }, - { name: 'Peanuts', cost: 4, icon: '๐Ÿฅœ', sect: 'Food' }, - { name: 'Chestnut', cost: 3, icon: '๐ŸŒฐ', sect: 'Food' }, - { name: 'Bread', cost: 5, icon: '๐Ÿž', sect: 'Food' }, - { name: 'Croissant', cost: 7, icon: '๐Ÿฅ', sect: 'Food' }, - { name: 'Baguette Bread', cost: 10, icon: '๐Ÿฅ–', sect: 'Food' }, - { name: 'Flatbread', cost: 9, icon: '๐Ÿซ“', sect: 'Food' }, - { name: 'Pretzel', cost: 5, icon: '๐Ÿฅจ', sect: 'Food' }, - { name: 'Bagel', cost: 4, icon: '๐Ÿฅฏ', sect: 'Food' }, - { name: 'Pancakes', cost: 5, icon: '๐Ÿฅž', sect: 'Food' }, - { name: 'Waffle', cost: 5, icon: '๐Ÿง‡', sect: 'Food' }, - { name: 'Cheese Wedge', cost: 3, icon: '๐Ÿง€', sect: 'Food' }, - { name: 'Meat on the Bone', cost: 5, icon: '๐Ÿ–', sect: 'Food' }, - { name: 'Checken Leg', cost: 5, icon: '๐Ÿ—', sect: 'Food' }, - { name: 'Cut of Meat', cost: 4, icon: '๐Ÿฅฉ', sect: 'Food' }, - { name: 'Bacon', cost: 4, icon: '๐Ÿฅ“', sect: 'Food' }, - { name: 'Hamburger', cost: 5, icon: '๐Ÿ”', sect: 'Food' }, - { name: 'French Fries', cost: 3, icon: '๐ŸŸ', sect: 'Food' }, - { name: 'Pizza', cost: 6, icon: '๐Ÿ•', sect: 'Food' }, - { name: 'Hot Dog', cost: 3, icon: '๐ŸŒญ', sect: 'Food' }, - { name: 'Sandwich', cost: 3, icon: '๐Ÿฅช', sect: 'Food' }, - { name: 'Taco', cost: 3, icon: '๐ŸŒฎ', sect: 'Food' }, - { name: 'Burrito', cost: 5, icon: '๐ŸŒฏ', sect: 'Food' }, - { name: 'Tamale', cost: 5, icon: '๐Ÿซ”', sect: 'Food' }, - { name: 'Stuffed Flatbread', cost: 5, icon: '๐Ÿฅ™', sect: 'Food' }, - { name: 'Falafel', cost: 4, icon: '๐Ÿง†', sect: 'Food' }, - { name: 'Egg', cost: 3, icon: '๐Ÿฅš', sect: 'Food' }, - { name: 'Hot Pot', cost: 12, icon: '๐Ÿฒ', sect: 'Food' }, - { name: 'Fondue', cost: 8, icon: '๐Ÿซ•', sect: 'Food' }, - { name: 'Green Salad', cost: 3, icon: '๐Ÿฅ—', sect: 'Food' }, - { name: 'Popcorn', cost: 3, icon: '๐Ÿฟ', sect: 'Food' }, - { name: 'Butter', cost: 2, icon: '๐Ÿงˆ', sect: 'Food' }, - { name: 'Salt', cost: 2, icon: '๐Ÿง‚', sect: 'Food' }, - { name: 'Canned Food', cost: 3, icon: '๐Ÿฅซ', sect: 'Food' }, - { name: 'Bento Box', cost: 7, icon: '๐Ÿฑ', sect: 'Food' }, - { name: 'Rice Cracker', cost: 1, icon: '๐Ÿ˜', sect: 'Food' }, - { name: 'Rice Ball', cost: 3, icon: '๐Ÿ™', sect: 'Food' }, - { name: 'Cooked Rice', cost: 3, icon: '๐Ÿš', sect: 'Food' }, - { name: 'Curry Rice', cost: 4, icon: '๐Ÿ›', sect: 'Food' }, - { name: 'Ramen', cost: 4, icon: '๐Ÿœ', sect: 'Food' }, - { name: 'Spaghetti', cost: 5, icon: '๐Ÿ', sect: 'Food' }, - { name: 'Roasted Sweet Potato', cost: 3, icon: '๐Ÿ ', sect: 'Food' }, - { name: 'Oden', cost: 3, icon: '๐Ÿข', sect: 'Food' }, - { name: 'Sushi', cost: 4, icon: '๐Ÿฃ', sect: 'Food' }, - { name: 'Fried Shrimp', cost: 3, icon: '๐Ÿค', sect: 'Food' }, - { name: 'Fish Cake', cost: 3, icon: '๐Ÿฅ', sect: 'Food' }, - { name: 'Moon Cake', cost: 3, icon: '๐Ÿฅฎ', sect: 'Food' }, - { name: 'Dango', cost: 3, icon: '๐Ÿก', sect: 'Food' }, - { name: 'Dumpling', cost: 3, icon: '๐ŸฅŸ', sect: 'Food' }, - { name: 'Fortune Cookie', cost: 3, icon: '๐Ÿฅ ', sect: 'Food' }, - { name: 'Oyster', cost: 4, icon: '๐Ÿฆช', sect: 'Food' }, - { name: 'Ice Cream Cone', cost: 3, icon: '๐Ÿฆ', sect: 'Food' }, - { name: 'Shaved Ice', cost: 3, icon: '๐Ÿง', sect: 'Food' }, - { name: 'Ice Cream', cost: 3, icon: '๐Ÿจ', sect: 'Food' }, - { name: 'Doughnut', cost: 3, icon: '๐Ÿฉ', sect: 'Food' }, - { name: 'Cookie', cost: 3, icon: '๐Ÿช', sect: 'Food' }, - { name: 'Birthday Cake', cost: 7, icon: '๐ŸŽ‚', sect: 'Food' }, - { name: 'Shortcake', cost: 4, icon: '๐Ÿฐ', sect: 'Food' }, - { name: 'Cupcake', cost: 3, icon: '๐Ÿง', sect: 'Food' }, - { name: 'Pie', cost: 4, icon: '๐Ÿฅง', sect: 'Food' }, - { name: 'Chocolate Bar', cost: 2, icon: '๐Ÿซ', sect: 'Food' }, - { name: 'Candy', cost: 1, icon: '๐Ÿฌ', sect: 'Food' }, - { name: 'Lollipop', cost: 1, icon: '๐Ÿญ', sect: 'Food' }, - { name: 'Custard', cost: 3, icon: '๐Ÿฎ', sect: 'Food' }, - { name: 'Honey Pot', cost: 3, icon: '๐Ÿฏ', sect: 'Food' }, - { name: 'Baby Bottle', cost: 3, icon: '๐Ÿผ', sect: 'Food' }, - { name: 'Glass of Milk', cost: 3, icon: '๐Ÿฅ›', sect: 'Food' }, - { name: 'Coffee', cost: 3, icon: 'โ˜•', sect: 'Food' }, - { name: 'Teapot', cost: 3, icon: '๐Ÿซ–', sect: 'Food' }, - { name: 'Tea', cost: 3, icon: '๐Ÿต', sect: 'Food' }, - { name: 'Sake', cost: 3, icon: '๐Ÿถ', sect: 'Food' }, - { name: 'Champagne', cost: 3, icon: '๐Ÿพ', sect: 'Food' }, - { name: 'Wine Glass', cost: 3, icon: '๐Ÿท', sect: 'Food' }, - { name: 'Cocktail Glass', cost: 3, icon: '๐Ÿธ', sect: 'Food' }, - { name: 'Tropical Drink', cost: 3, icon: '๐Ÿน', sect: 'Food' }, - { name: 'Beer Mug', cost: 3, icon: '๐Ÿบ', sect: 'Food' }, - { name: 'Tumbler', cost: 3, icon: '๐Ÿฅƒ', sect: 'Food' }, - { name: 'Soda', cost: 3, icon: '๐Ÿฅค', sect: 'Food' }, - { name: 'Bubble Tea', cost: 3, icon: '๐Ÿง‹', sect: 'Food' }, - { name: 'Beverage Box', cost: 30, icon: '๐Ÿงƒ', sect: 'Food' }, - { name: 'Mate', cost: 3, icon: '๐Ÿง‰', sect: 'Food' }, - - //Weapons - { name: 'Swords_special', cost: 3, icon: 'โš”๏ธ', sect: 'Weapons' }, - { name: 'Boomerang', cost: 300, icon: '๐Ÿชƒ', sect: 'Weapons' }, - { name: 'Boomerang', cost: 200, icon: '๐Ÿน', sect: 'Weapons' }, - { name: 'Knife', cost: 20, icon: '๐Ÿ”ช', sect: 'Weapons' }, - { name: 'Dagger', cost: 60, icon: '๐Ÿ—ก', sect: 'Weapons' }, - { name: 'Shield', cost: 100, icon: '๐Ÿ›ก', sect: 'Weapons' }, - { name: 'Axe', cost: 40, icon: '๐Ÿช“', sect: 'Weapons' }, - { name: 'Trident', cost: 140, icon: '๐Ÿ”ฑ', sect: 'Weapons' }, - { name: 'Scissors', cost: 10, icon: 'โœ‚๏ธ', sect: 'Weapons' }, - //Potions (of varying sections) - { name: 'HP Potion', cost: 20, icon: 'CUSTOM|healing_potion', sect: 'HP' }, - { name: 'MP Potion', cost: 15, icon: 'CUSTOM|mana_potion', sect: 'MP' }, - { name: 'Super HP Potion', cost: 50, icon: 'CUSTOM|superior_healing_potion', sect: 'HP' }, - { name: 'Super MP Potion', cost: 40, icon: 'CUSTOM|superior_mana_potion', sect: 'MP' } - - ]); -}); +if (resetShop) { + const { MongoClient, ServerApiVersion } = require('mongodb'); + const mongouri = process.env.MONGODB_URI; //DO NOT RUN LOCALLY (no process.env) -client.close().then(function() { - const END = d.getTime(); - console.log(`Total time in SECONDS: ${(((END - START) % 60000) / 1000).toFixed(0)} ms!`); -}); \ No newline at end of file + const client = new MongoClient(mongouri, { useNewUrlParser: true, useUnifiedTopology: true, serverApi: ServerApiVersion.v1 }); + let collectiontemp; + client.connect(err => { + collectiontemp = client.db("main").collection("shop"); + // perform actions on the collection object + collectiontemp.insertMany( + [ + { name: 'Grapes', cost: 2, icon: '๐Ÿ‡', sect: 'Food' }, + { name: 'Melon', cost: 5, icon: '๐Ÿˆ', sect: 'Food' }, + { name: 'Watermelon', cost: 5, icon: '๐Ÿ‰', sect: 'Food' }, + { name: 'Tangerine', cost: 3, icon: '๐ŸŠ', sect: 'Food' }, + { name: 'Lemon', cost: 3, icon: '๐Ÿ‹', sect: 'Food' }, + { name: 'Banana', cost: 4, icon: '๐ŸŒ', sect: 'Food' }, + { name: 'Pineapple', cost: 4, icon: '๐Ÿ', sect: 'Food' }, + { name: 'Mango', cost: 3, icon: '๐Ÿฅญ', sect: 'Food' }, + { name: 'Red Apple', cost: 3, icon: '๐ŸŽ', sect: 'Food' }, + { name: 'Green Apple', cost: 3, icon: '๐Ÿ', sect: 'Food' }, + { name: 'Pear', cost: 3, icon: '๐Ÿ', sect: 'Food' }, + { name: 'Peach', cost: 3, icon: '๐Ÿ‘', sect: 'Food' }, + { name: 'Cherries', cost: 4, icon: '๐Ÿ’', sect: 'Food' }, + { name: 'Strawberry', cost: 3, icon: '๐Ÿ“', sect: 'Food' }, + { name: 'Blueberries', cost: 3, icon: '๐Ÿซ', sect: 'Food' }, + { name: 'Kiwi', cost: 3, icon: '๐Ÿฅ', sect: 'Food' }, + { name: 'Tomato', cost: 4, icon: '๐Ÿ…', sect: 'Food' }, + { name: 'Olive', cost: 4, icon: '๐Ÿซ’', sect: 'Food' }, + { name: 'Coconut', cost: 3, icon: '๐Ÿฅฅ', sect: 'Food' }, + { name: 'Avocado', cost: 3, icon: '๐Ÿฅ‘', sect: 'Food' }, + { name: 'Eggplant', cost: 10, icon: '๐Ÿ†', sect: 'Food' }, + { name: 'Potato', cost: 3, icon: '๐Ÿฅ”', sect: 'Food' }, + { name: 'Carrot', cost: 3, icon: '๐Ÿฅ•', sect: 'Food' }, + { name: 'Ear of Corn', cost: 3, icon: '๐ŸŒฝ', sect: 'Food' }, + { name: 'Hot Pepper', cost: 3, icon: '๐ŸŒถ๏ธ', sect: 'Food' }, + { name: 'Bell Pepper', cost: 3, icon: '๐Ÿซ‘', sect: 'Food' }, + { name: 'Cucumber', cost: 3, icon: '๐Ÿฅ’', sect: 'Food' }, + { name: 'Leafy Green', cost: 3, icon: '๐Ÿฅฌ', sect: 'Food' }, + { name: 'Broccoli', cost: 2, icon: '๐Ÿฅฆ', sect: 'Food' }, + { name: 'Garlic', cost: 3, icon: '๐Ÿง„', sect: 'Food' }, + { name: 'Onion', cost: 3, icon: '๐Ÿง…', sect: 'Food' }, + { name: 'Mushroom', cost: 3, icon: '๐Ÿ„', sect: 'Food' }, + { name: 'Peanuts', cost: 4, icon: '๐Ÿฅœ', sect: 'Food' }, + { name: 'Chestnut', cost: 3, icon: '๐ŸŒฐ', sect: 'Food' }, + { name: 'Bread', cost: 5, icon: '๐Ÿž', sect: 'Food' }, + { name: 'Croissant', cost: 7, icon: '๐Ÿฅ', sect: 'Food' }, + { name: 'Baguette Bread', cost: 10, icon: '๐Ÿฅ–', sect: 'Food' }, + { name: 'Flatbread', cost: 9, icon: '๐Ÿซ“', sect: 'Food' }, + { name: 'Pretzel', cost: 5, icon: '๐Ÿฅจ', sect: 'Food' }, + { name: 'Bagel', cost: 4, icon: '๐Ÿฅฏ', sect: 'Food' }, + { name: 'Pancakes', cost: 5, icon: '๐Ÿฅž', sect: 'Food' }, + { name: 'Waffle', cost: 5, icon: '๐Ÿง‡', sect: 'Food' }, + { name: 'Cheese Wedge', cost: 3, icon: '๐Ÿง€', sect: 'Food' }, + { name: 'Meat on the Bone', cost: 5, icon: '๐Ÿ–', sect: 'Food' }, + { name: 'Checken Leg', cost: 5, icon: '๐Ÿ—', sect: 'Food' }, + { name: 'Cut of Meat', cost: 4, icon: '๐Ÿฅฉ', sect: 'Food' }, + { name: 'Bacon', cost: 4, icon: '๐Ÿฅ“', sect: 'Food' }, + { name: 'Hamburger', cost: 5, icon: '๐Ÿ”', sect: 'Food' }, + { name: 'French Fries', cost: 3, icon: '๐ŸŸ', sect: 'Food' }, + { name: 'Pizza', cost: 6, icon: '๐Ÿ•', sect: 'Food' }, + { name: 'Hot Dog', cost: 3, icon: '๐ŸŒญ', sect: 'Food' }, + { name: 'Sandwich', cost: 3, icon: '๐Ÿฅช', sect: 'Food' }, + { name: 'Taco', cost: 3, icon: '๐ŸŒฎ', sect: 'Food' }, + { name: 'Burrito', cost: 5, icon: '๐ŸŒฏ', sect: 'Food' }, + { name: 'Tamale', cost: 5, icon: '๐Ÿซ”', sect: 'Food' }, + { name: 'Stuffed Flatbread', cost: 5, icon: '๐Ÿฅ™', sect: 'Food' }, + { name: 'Falafel', cost: 4, icon: '๐Ÿง†', sect: 'Food' }, + { name: 'Egg', cost: 3, icon: '๐Ÿฅš', sect: 'Food' }, + { name: 'Hot Pot', cost: 12, icon: '๐Ÿฒ', sect: 'Food' }, + { name: 'Fondue', cost: 8, icon: '๐Ÿซ•', sect: 'Food' }, + { name: 'Green Salad', cost: 3, icon: '๐Ÿฅ—', sect: 'Food' }, + { name: 'Popcorn', cost: 3, icon: '๐Ÿฟ', sect: 'Food' }, + { name: 'Butter', cost: 2, icon: '๐Ÿงˆ', sect: 'Food' }, + { name: 'Salt', cost: 2, icon: '๐Ÿง‚', sect: 'Food' }, + { name: 'Canned Food', cost: 3, icon: '๐Ÿฅซ', sect: 'Food' }, + { name: 'Bento Box', cost: 7, icon: '๐Ÿฑ', sect: 'Food' }, + { name: 'Rice Cracker', cost: 1, icon: '๐Ÿ˜', sect: 'Food' }, + { name: 'Rice Ball', cost: 3, icon: '๐Ÿ™', sect: 'Food' }, + { name: 'Cooked Rice', cost: 3, icon: '๐Ÿš', sect: 'Food' }, + { name: 'Curry Rice', cost: 4, icon: '๐Ÿ›', sect: 'Food' }, + { name: 'Ramen', cost: 4, icon: '๐Ÿœ', sect: 'Food' }, + { name: 'Spaghetti', cost: 5, icon: '๐Ÿ', sect: 'Food' }, + { name: 'Roasted Sweet Potato', cost: 3, icon: '๐Ÿ ', sect: 'Food' }, + { name: 'Oden', cost: 3, icon: '๐Ÿข', sect: 'Food' }, + { name: 'Sushi', cost: 4, icon: '๐Ÿฃ', sect: 'Food' }, + { name: 'Fried Shrimp', cost: 3, icon: '๐Ÿค', sect: 'Food' }, + { name: 'Fish Cake', cost: 3, icon: '๐Ÿฅ', sect: 'Food' }, + { name: 'Moon Cake', cost: 3, icon: '๐Ÿฅฎ', sect: 'Food' }, + { name: 'Dango', cost: 3, icon: '๐Ÿก', sect: 'Food' }, + { name: 'Dumpling', cost: 3, icon: '๐ŸฅŸ', sect: 'Food' }, + { name: 'Fortune Cookie', cost: 3, icon: '๐Ÿฅ ', sect: 'Food' }, + { name: 'Oyster', cost: 4, icon: '๐Ÿฆช', sect: 'Food' }, + { name: 'Ice Cream Cone', cost: 3, icon: '๐Ÿฆ', sect: 'Food' }, + { name: 'Shaved Ice', cost: 3, icon: '๐Ÿง', sect: 'Food' }, + { name: 'Ice Cream', cost: 3, icon: '๐Ÿจ', sect: 'Food' }, + { name: 'Doughnut', cost: 3, icon: '๐Ÿฉ', sect: 'Food' }, + { name: 'Cookie', cost: 3, icon: '๐Ÿช', sect: 'Food' }, + { name: 'Birthday Cake', cost: 7, icon: '๐ŸŽ‚', sect: 'Food' }, + { name: 'Shortcake', cost: 4, icon: '๐Ÿฐ', sect: 'Food' }, + { name: 'Cupcake', cost: 3, icon: '๐Ÿง', sect: 'Food' }, + { name: 'Pie', cost: 4, icon: '๐Ÿฅง', sect: 'Food' }, + { name: 'Chocolate Bar', cost: 2, icon: '๐Ÿซ', sect: 'Food' }, + { name: 'Candy', cost: 1, icon: '๐Ÿฌ', sect: 'Food' }, + { name: 'Lollipop', cost: 1, icon: '๐Ÿญ', sect: 'Food' }, + { name: 'Custard', cost: 3, icon: '๐Ÿฎ', sect: 'Food' }, + { name: 'Honey Pot', cost: 3, icon: '๐Ÿฏ', sect: 'Food' }, + { name: 'Baby Bottle', cost: 3, icon: '๐Ÿผ', sect: 'Food' }, + { name: 'Glass of Milk', cost: 3, icon: '๐Ÿฅ›', sect: 'Food' }, + { name: 'Coffee', cost: 3, icon: 'โ˜•', sect: 'Food' }, + { name: 'Teapot', cost: 3, icon: '๐Ÿซ–', sect: 'Food' }, + { name: 'Tea', cost: 3, icon: '๐Ÿต', sect: 'Food' }, + { name: 'Sake', cost: 3, icon: '๐Ÿถ', sect: 'Food' }, + { name: 'Champagne', cost: 3, icon: '๐Ÿพ', sect: 'Food' }, + { name: 'Wine Glass', cost: 3, icon: '๐Ÿท', sect: 'Food' }, + { name: 'Cocktail Glass', cost: 3, icon: '๐Ÿธ', sect: 'Food' }, + { name: 'Tropical Drink', cost: 3, icon: '๐Ÿน', sect: 'Food' }, + { name: 'Beer Mug', cost: 3, icon: '๐Ÿบ', sect: 'Food' }, + { name: 'Tumbler', cost: 3, icon: '๐Ÿฅƒ', sect: 'Food' }, + { name: 'Soda', cost: 3, icon: '๐Ÿฅค', sect: 'Food' }, + { name: 'Bubble Tea', cost: 3, icon: '๐Ÿง‹', sect: 'Food' }, + { name: 'Beverage Box', cost: 30, icon: '๐Ÿงƒ', sect: 'Food' }, + { name: 'Mate', cost: 3, icon: '๐Ÿง‰', sect: 'Food' }, + + //Weapons + // { name: 'Swords_special', cost: 3, icon: 'โš”๏ธ', sect: 'Weapons', double: false }, + { name: 'Boomerang', cost: 300, icon: '๐Ÿชƒ', sect: 'Weapons', double: false, def: false }, + { name: 'Crossbow', cost: 200, icon: '๐Ÿน', sect: 'Weapons', double: true, def: false }, + { name: 'Knife', cost: 20, icon: '๐Ÿ”ช', sect: 'Weapons', double: false, def: false }, + { name: 'Dagger', cost: 60, icon: '๐Ÿ—ก', sect: 'Weapons', double: false, def: false }, + { name: 'Shield', cost: 100, icon: '๐Ÿ›ก', sect: 'Weapons', double: false, def: true }, + { name: 'Axe', cost: 40, icon: '๐Ÿช“', sect: 'Weapons', double: false, def: false }, + { name: 'Trident', cost: 140, icon: '๐Ÿ”ฑ', sect: 'Weapons', double: false, def: false }, + { name: 'Scissors', cost: 10, icon: 'โœ‚๏ธ', sect: 'Weapons', double: false, def: false }, + + //Potions (of varying sections) + { name: 'HP Potion', cost: 20, icon: 'CUSTOM|healing_potion', sect: 'HP' }, + { name: 'MP Potion', cost: 15, icon: 'CUSTOM|mana_potion', sect: 'MP' }, + { name: 'Super HP Potion', cost: 50, icon: 'CUSTOM|superior_healing_potion', sect: 'HP' }, + { name: 'Super MP Potion', cost: 40, icon: 'CUSTOM|superior_mana_potion', sect: 'MP' } + + ]); + }); + + client.close().then(function() { + const END = d.getTime(); + console.log(`Total time in SECONDS: ${(((END - START) % 60000) / 1000).toFixed(0)} ms!`); + }); +} else { + console.log('To reset the main shop, please change the variable "resetShop" in the "COMPLETE_INIT.js" file to true'); +} \ No newline at end of file diff --git a/SELMER_COIN.png b/SELMER_COIN.png new file mode 100644 index 0000000000000000000000000000000000000000..959b2a6f2f6be7242b75c7e15ea13b6276d1d2be GIT binary patch literal 93334 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 R)V^WjTSC3E|GR$oe*j;|At?X= literal 0 HcmV?d00001 diff --git a/commands/Selmer Specific/postProfile.js b/commands/Selmer Specific/postProfile.js index 51c94ed..f031fb6 100644 --- a/commands/Selmer Specific/postProfile.js +++ b/commands/Selmer Specific/postProfile.js @@ -9,9 +9,9 @@ module.exports = { //.setDescription('My professional resume') .setImage('https://github.com/ION606/selmerBot/blob/main/Sleemer_Bringsjorgend.png?raw=true') .addFields( - {name: 'My Epithets:', value: "Pearls of Wisdom"}, - {name: '\t1. ', value: "Negative money is the best money"}, - {name: '\t2. ', value: "There is no god, only logic"} + {name: 'My Epithets:', value: "~~Pearls of Wisdom~~"}, + {name: '\t__Epithet 1__', value: "_Negative money is the best money_"}, + {name: '\t__Epithet 2__', value: "_There is no god, only logic_"} ); message.channel.send({ embeds: [newEmbed] }); diff --git a/commands/db/battle.js b/commands/db/battle.js index 414f507..dd89ee5 100644 --- a/commands/db/battle.js +++ b/commands/db/battle.js @@ -3,6 +3,7 @@ const { MessageActionRow, MessageButton, MessageSelectMenu } = require('discord. const { STATE } = require('./econ'); const { winGame, getCustomEmoji } = require('./external_game_functions.js'); const { changeTurn } = require('../turnManager.js'); +const { default: mongoose } = require('mongoose'); function postActionBar(thread, user_dbo) { @@ -39,7 +40,7 @@ function attack_special() { //Bow special phrase: ฮฃ>โ€•(ยด๏ฝฅฯ‰๏ฝฅ`)โ†’ -function attack(client, user_dbo, other_dbo, bot, thread, command, mongouri, items, xp_collection, interaction) { +function attack(client, user_dbo, other_dbo, bot, thread, xp_collection, interaction) { //Get the weapon user_dbo.find({'equipped': {$exists: true}}).toArray(function(err, docs) { const doc = docs[0]; @@ -53,7 +54,7 @@ function attack(client, user_dbo, other_dbo, bot, thread, command, mongouri, ite dmg = doc.rank; } else { dmg = (doc.rank - 1) + Math.round(weapon.cost/5); - } + } other_dbo.find({'equipped': {$exists: true}}).toArray(function (err, docs) { const odoc = docs[0]; @@ -71,7 +72,7 @@ function attack(client, user_dbo, other_dbo, bot, thread, command, mongouri, ite if (new_hp <= 0) { winGame(client, bot, client.db(user_dbo.s.namespace.db), user_dbo, xp_collection, interaction.message); } else { - other_dbo.updateOne({'equipped': {$exists: true}}, { $set: { 'hpmp.hp' :new_hp }}); + other_dbo.updateOne({'equipped': {$exists: true}}, { $set: { 'hpmp.hp' :new_hp, state: STATE.FIGHTING }}); } }); @@ -85,13 +86,13 @@ function attack(client, user_dbo, other_dbo, bot, thread, command, mongouri, ite } -/** - * Called by "item" - */ + async function heal(interaction, client, user_dbo, bot, thread, command, mongouri, items) { if (interaction.message.content.toLowerCase().indexOf('Which item would you like to use?') != -1) { // The person picked out an item + //I think this is unecessary } + //Get the 'healing' items (stored in "{item}: num" format) user_dbo.find({'equipped': {$exists: true}}).toArray(async function(err, docs) { const doc = docs[0]; @@ -100,8 +101,8 @@ async function heal(interaction, client, user_dbo, bot, thread, command, mongour if (JSON.stringify(items) == '[]') { - postActionBar(thread, user_dbo); - return interaction.editReply("You don't have any items!"); + interaction.editReply("You don't have any items!"); + return postActionBar(thread, user_dbo); } else { console.log(JSON.stringify(items))} var itemlist = []; @@ -142,22 +143,66 @@ async function heal(interaction, client, user_dbo, bot, thread, command, mongour //Gets items by section/name, reacts with them to the message, when pressed, trigger a response -function item() { - throw 'THE "ITEM" COMMAND HAS NOT BEEN SET UP YET!'; +function presentItems(interaction, client, user_dbo, bot, thread) { + // throw 'THE "ITEM" COMMAND HAS NOT BEEN SET UP YET!'; + user_dbo.find({'equipped': {$exists: true}}).toArray(async function(err, docs) { + const doc = docs[0]; + const items = doc.equipped.items; + // const items = rawitems.filter(function(f) { return (f.sect.toLowerCase() == 'hp') }); + + + if (JSON.stringify(items) == '[]' || JSON.stringify(items) == '{}') { + interaction.editReply("You don't have any items!"); + return postActionBar(thread, user_dbo); + } else { console.log(JSON.stringify(items))} + + var itemlist = []; + + items.forEach(function(item) { + let n = item.name; + + + + itemlist.push({label: n, description: `${item.num} equipped!`, value: `${n}`}); + }); + + + //Find something to heal with + const row = new MessageActionRow() + .addComponents( + new MessageSelectMenu() + .setCustomId(`${interaction.user.id}|heal`) + .setPlaceholder('Nothing selected') + .addOptions(itemlist) + ); + + await interaction.editReply({ content: 'Please choose a health potion!', components: [row] }); + }); } -function defend(user_dbo, bot, thread, command, mongouri, items) { +function defend(client, interaction, user_dbo, bot, thread) { user_dbo.find({'equipped': {$exists: true}}).toArray(function(err, docs) { const doc = docs[0]; const all_weapons = doc.get('weapons'); const shield = all_weapons.get('secondary'); + //They don't have a shield + if (shield == undefined) { + thread.send("You don't have a shield equipped!"); + return postActionBar(thread, user_dbo); + } + + //Change state + user_dbo.updateOne({state: {$exists: true}}, {$set: {state: STATE.DEFENDING}}); }) + + changeTurn(client, bot, interaction); + postActionBar(thread, user_dbo); } -function usePotion(interaction, client, user_dbo, bot, thread, command, mongouri) { +function usePotion(interaction, client, user_dbo, bot, thread) { const name = interaction.values[0]; const cursor = user_dbo.find({'equipped.items': {$exists: true}}); @@ -176,7 +221,7 @@ function usePotion(interaction, client, user_dbo, bot, thread, command, mongouri //If there's more than 1, subtract 1 if (items.num > 1) { items.num -= 1; allitems[ind] = items; } else { allitems.splice(ind, 1) } - + user_dbo.updateOne({'equipped.items': {$exists: true}}, {$set: {'equipped.items': allitems}}); }) @@ -196,14 +241,16 @@ async function handle(client, user_dbo, other_dbo, bot, thread, command, mongour if (command == 'initalize') { return postActionBar(thread, user_dbo); } else if (command == 'attack') { - attack(client, user_dbo, other_dbo, bot, thread, command, mongouri, items, xp_collection, interaction); + attack(client, user_dbo, other_dbo, bot, thread, xp_collection, interaction); postActionBar(thread, other_dbo); } else if (command == 'items') { - item(); + presentItems(interaction, client, user_dbo, bot, thread); } else if (command == 'heal') { heal(interaction, client, user_dbo, bot, thread, command, mongouri, items); //.then(() => {postActionBar(thread, other_dbo)}); } else if (command == 'usepotion') { - usePotion(interaction, client, user_dbo, bot, thread, command, mongouri); + usePotion(interaction, client, user_dbo, bot, thread); + } else if (command == 'defend') { + defend(client, interaction, user_dbo, bot, thread); } // initiate(user_dbo, other_dbo, command, message); diff --git a/commands/db/econ.js b/commands/db/econ.js index 45452d3..3d337f3 100644 --- a/commands/db/econ.js +++ b/commands/db/econ.js @@ -2,6 +2,9 @@ const { MongoClient, ServerApiVersion } = require('mongodb'); // const { update } = require('apt'); const { Collection, Client, Formatters, Intents } = require('discord.js'); const { CLIENT_ODBC } = require('mysql/lib/protocol/constants/client'); +const { time } = require('@discordjs/builders'); + +let currencySymbol = '$'; //Declair an "enum" to help with BASE calculations const BASE = { @@ -91,7 +94,11 @@ function addxp(message, dbo, amt, xp_list) { function getBalance(dbo, message) { dbo.find({"balance": {$exists: true}}).toArray(function(err, doc) { - return message.reply('Your current balance is $' + String(doc[0].balance)); + let bal = 0; + if (doc[0] && doc[0].balance) { + bal = doc[0].balance; + } + return message.reply(`Your current balance is ${currencySymbol}${bal}`); }); } @@ -114,26 +121,25 @@ function convertCurrency(id, amt, dbo) { } function checkAndUpdateBal(dbo, item, message, args) { - let b = false; - dbo.find({"balance": {$exists: true}}).toArray(b = function(err, doc) { - if (!String(doc)) { - message.reply("Your account doesn't exist, please contact the mods for support"); - return false; - } + return new Promise(function(resolve, reject) { + dbo.find({"balance": {$exists: true}}).toArray(b = function(err, doc) { + if (!String(doc)) { + message.reply("Your account doesn't exist, please contact the mods for support"); + return false; + } - const icost = args[0] * item.cost; - if (doc[0].balance < icost) { - message.reply("Insufficient funds!"); - return false; - } else { - let temp = doc[0]; - dbo.updateOne({balance: temp.balance, rank: temp.rank, lastdayworked: temp.lastdayworked}, { $set: { balance: doc[0].balance -= icost }}); - message.reply("You have bought " + item.name + " for $" + icost + "!"); - return true; - } + const icost = args[0] * item.cost; + if (doc[0].balance < icost) { + message.reply("Insufficient funds!"); + resolve(false); + } else { + let temp = doc[0]; + dbo.updateOne({balance: temp.balance, rank: temp.rank, lastdayworked: temp.lastdayworked}, { $set: { balance: doc[0].balance -= icost }}); + message.reply(`You have bought ${item.name} for ${currencySymbol}${icost}!`); + resolve(true); + } + }); }); - - return b; } @@ -142,25 +148,29 @@ function buy(id, message, args, dbo, shop, xp_list) { if (!isNum(args[0])) { return message.reply("Please enter a number for query 2"); } let query = args[1]; - let item = shop.filter(function (item) { return item.name.toLowerCase() == query.toLowerCase(); }); + let item = shop.filter(function (item) { return item.name.toLowerCase() == query.toLowerCase(); })[0]; if (!String(item)) { return message.reply("This item does not exist!"); } - let success = Boolean(checkAndUpdateBal(dbo, item[0], message, args)); - if (!success) { return; } + // let success = Boolean(checkAndUpdateBal(dbo, item, message, args)); + checkAndUpdateBal(dbo, item, message, args).then((success) => { + if (!success) { return } //The message is handled in the CheckAndUpdateBal() function - var newObj = { name: item[0].name, cost: item[0].cost, icon: item[0].icon, sect: item[0].sect}; + var newObj = { name: item.name, cost: item.cost, icon: item.icon, sect: item.sect}; - addxp(message, dbo, Math.ceil(item[0].cost * 1.2), xp_list); - - dbo.find(newObj, {$exists: true}).toArray(function(err, doc) { - if(String(doc)) { - let newnum = doc[0].num + Number(args[0]); - dbo.updateOne({ name: item[0].name }, {$set: {num: newnum}}); - } else { - dbo.insertOne({ name: item[0].name, cost: item[0].cost, icon: item[0].icon, sect: item[0].sect, num: Number(args[0])}); - } - }); + addxp(message, dbo, Math.ceil(item.cost * 1.2), xp_list); + + dbo.find(newObj, {$exists: true}).toArray(function(err, doc) { + if(String(doc)) { + let newnum = doc[0].num + Number(args[0]); + dbo.updateOne({ name: item.name }, {$set: {num: newnum}}); + } else { + // dbo.insertOne({ name: item.name, cost: item.cost, icon: item.icon, sect: item.sect, num: Number(args[0])}); //Causes "cyclic dependancy" + dbo.insertOne(item); + dbo.updateOne(item, { $set: {num: Number(args[0]) }}); + } + }); + }) }; @@ -201,7 +211,7 @@ function sell(id, message, args, dbo, shop, xp_list) { addxp(message, dbo, Math.ceil(functional_item.cost * 1.2), xp_list); - message.reply(`You've sold ${num} ${String(functional_item.name)} for $${amountSoldFor}`); + message.reply(`You've sold ${num} ${String(functional_item.name)} for ${currencySymbol}${amountSoldFor}`); } else { message.reply("You don't own this item!"); } @@ -225,7 +235,7 @@ function work(dbo, message, xp_list) { //Update the amount to the new TOTAL balance dbo.updateOne({"balance": {$exists: true}}, { $set: { balance: doc[0].balance + amt, lastdayworked: date }}); addxp(message, dbo, xp_earned, xp_list); - message.channel.send('<@' + message.author.id + '> worked and earned $' + amt +' and ' + String(xp_earned) + ' xp!'); + message.channel.send(`<@${message.author.id}> worked and earned ${currencySymbol}${amt} and ${xp_earned} xp!`); } }); } @@ -235,10 +245,11 @@ function printInventory(dbo, message) { let tempstring = ""; dbo.find().toArray(function(err, docs){ docs.forEach(val => { - if (!val.balance) { + if (!val.balance && val.name != undefined) { tempstring += String(val.num) + " " + val.name + " (" + val.icon + ")\n"; } }); + if (tempstring == "") { tempstring += "You have nothing in your inventory!"; } message.reply(tempstring); }); @@ -266,7 +277,7 @@ function getShop(message, args, items, bot) { } const items2 = items.filter(function(f) { return (f.sect.toLowerCase() == args[0].toLowerCase()) }).slice((ind - 1)*10, (ind - 1)*10+10); - newText = Formatters.codeBlock(items2.map(i => `${i.icon} (${i.name}): \$${i.cost}`).join('\n')); + newText = Formatters.codeBlock(items2.map(i => `${i.icon} (${i.name}): $${i.cost}`).join('\n')); //${currencySymbol} doesn't owrk for some reason if (noinp) { newText += `(Use ${bot.prefix}shop [type] [page number] to access other pages)`; @@ -305,6 +316,8 @@ module.exports = { const dbo = db.collection(id); if (err) { return console.log(err); } + currencySymbol = bot.currencysymbolmmain; + //test area if (command == 'xp' || command == 'adbal') { //Selmer Dev only command diff --git a/commands/db/external_game_functions.js b/commands/db/external_game_functions.js index e95d1ca..1ff876c 100644 --- a/commands/db/external_game_functions.js +++ b/commands/db/external_game_functions.js @@ -11,10 +11,11 @@ function loseGame(user_dbo, xp_collection, message, bot = null) { if (doc == undefined) { return message.reply("Oops! There's been an error! Please contact support if this problem persists!"); } if (doc.game == null) { return message.reply("You're not even in a game and you're trying to quit! Sad..."); } + var addbal; //If this function was called from "winGame", return if (doc.opponent) { //If remove some money (looting) [maybe implement a "friendly" game setting later with no looting] - var addbal = doc.rank * 2; + addbal = doc.rank * 2; if (doc.balance - addbal < 5) { addbal = addbal - doc.balance; } if (doc.balance > 5) { user_dbo.updateOne(doc, { $set: { balance: doc.balance - addbal}}); @@ -60,12 +61,17 @@ function winGame(client, bot, db, user_dbo, xp_collection, message) { function equipItem(client, bot, db, dbo, message) { + if (!bot.inDebugMode) { return; } let items = [ { name: 'HP Potion', cost: 20, icon: 'CUSTOM|healing_potion', sect: 'HP', num: 2 }, { name: 'Super HP Potion', cost: 50, icon: 'CUSTOM|super_healing_potion', sect: 'HP', num: 2 }, { name: 'MP Potion', cost: 15, icon: 'CUSTOM|mana_potion', sect: 'MP', num: 2 } ] + for (let i = 1; i <= 10; i ++) { + + items.push({ name: `${String.fromCharCode(i + 64)}`, cost: i * 10, icon: 'N/A', sect: 'N/A', num: i }) + } dbo.updateMany({}, {$set: {'equipped.items': items}}); } diff --git a/commands/db/game.js b/commands/db/game.js index af7645a..6c0d49c 100644 --- a/commands/db/game.js +++ b/commands/db/game.js @@ -1,4 +1,4 @@ -// @ts-check +// // @ts-check //Disabled const { MongoClient, ServerApiVersion } = require('mongodb'); let ecoimport = require("./econ.js"); @@ -130,15 +130,52 @@ function hpmp(message, command, dbo) { } -function equip(client, message, command, dbo, bot) { +function equip(message, args, command, dbo, bot, shop) { + const inp = args[1]; + //Check if the user is already in a game - + dbo.find({'game': {$exists: true}}).toArray(function(err, docs) { + const doc = docs[0]; + + if (doc.game != null) { + ret = true; + console.log(doc.game); + return message.reply('You can\'t equip while in a game!'); + } + + //If the thing is a shield, add it to secondary + if (inp.toLowerCase().indexOf('shield') != -1) { + dbo.find({def: true}).toArray(function(err, docs) { + if (docs[0] != undefined) { + dbo.updateOne({}, {$set: {'equipped.weapons.secondary': docs[0]}}); + } else { + message.reply("You don't own a shield!"); + } + }); + + } else { + //Else, equip the weapon(s) + + dbo.find({name: inp, sect: 'Weapons'}).toArray(function(err, docs) { + if (docs[0] != undefined) { + //Equip the weapon + dbo.updateOne({}, {$set: {'equipped.weapons.main': docs[0]}}); + } else { + message.reply(`You don't own any ${inp}s!`); + } + }); + } + }); + } //#endregion -//#region GAME SPECIFIC + + +//#region Game Handlers + function in_game_redirector(bot, interaction, threadname, doc, client, mongouri, items, xp_collection) { //Maybe fix this later...... @@ -276,7 +313,8 @@ module.exports ={ } else if (command == 'hp' || command == 'mp') { hpmp(message, command, dbo); } else if (command == 'equip') { - equipItem(client, bot, db, dbo, message); + // equipItem(client, bot, db, dbo, message); + equip(message, args, command, dbo, bot, items); } //#endregion @@ -305,4 +343,7 @@ module.exports ={ client.close(); }, allGames, in_game_redirector -} \ No newline at end of file +} + + +//#endregion \ No newline at end of file diff --git a/main.js b/main.js index 77e5cc5..95e98e8 100644 --- a/main.js +++ b/main.js @@ -151,6 +151,12 @@ bot.on('ready', async () => { } else { console.log("Testing testing 1 2 5..."); } + + + //Add the money symbol + let srv = bot.guilds.cache.get(bot.home_server).emojis.cache; + emj = srv.find((g) => { return g.name == 'selmer_coin' }); + bot.currencysymbolmmain = `${emj}`; }); @@ -239,7 +245,6 @@ bot.on('interactionCreate', async interaction => { interaction.editReply(`<@${interaction.user.id}> used a _${interaction.values[0]}_!`); - //remove the old interation message await interaction.message.delete(); @@ -283,7 +288,7 @@ bot.on('guildMemberAdd', async (member) => { await welcome(member, welcomechannel, docs[0].welcomemessage); }) - }) + }) }); @@ -312,16 +317,7 @@ bot.on('messageCreate', (message) => { message.channel.send({ components: [row] }); } - //TEMP - if (command == 'emj') { - let srv = bot.guilds.cache.get(bot.home_server).emojis.cache; - // console.log(srv); - emj = srv.find((g) => { return g.name == 'healing_potion' }); - // console.log(emj); exit(); - message.channel.send(`${emj}`); - } - //Check if the user has sufficient permission //Performes the command //Admin section if (command == 'reactionrole') { bot.commands.get(command).execute(message, args, Discord, bot); }