From b887ba4df18e6f1a4cbd5764fa39d0b3c9f7790b Mon Sep 17 00:00:00 2001 From: not-pyroman Date: Mon, 11 Mar 2024 21:55:55 -0600 Subject: [PATCH] implement the inventory system for testing --- commands.json | 13 +++++++++++++ index.js | 50 +++++++++++++++++++++++++++++++++++++++++++++++++- 2 files changed, 62 insertions(+), 1 deletion(-) diff --git a/commands.json b/commands.json index 3e3c30a..404a9bc 100644 --- a/commands.json +++ b/commands.json @@ -309,5 +309,18 @@ "required": false } ] + }, + { + "name": "inventory", + "description": "Check the inventory of yourself or another user", + "type": 1, + "options": [ + { + "name": "user", + "description": "The user to check", + "type": 6, + "required": false + } + ] } ] diff --git a/index.js b/index.js index 2f2a817..93dd7df 100644 --- a/index.js +++ b/index.js @@ -227,6 +227,31 @@ checkItems = (user, type) => { }); } +//If the user has 0 of that item, then we will return -1 to indicate as such +checkOwnedItems = (user, type) => { + // Needs to be awaited + return new Promise((resolve, reject) => { + db.get(`SELECT * FROM ${type} WHERE id = '${user.id}'`, async (err, row) => { + if (err) { + console.error(`Something went wrong: ${err}`); + reject(err); + } + if (!row) { + await db.run(`INSERT INTO ${type} (id, ${type}) VALUES ('${user.id}', 0)`); + resolve(-1); + } + if (row) { + if (row[type] > 0) { + resolve(row[type]); + } else { + resolve(-1); + } + } + }); + }); +} + +//TODO: I don't think this code actually works the way i want it to, do better next time sleep deprived me checkAllItems = (user) => { // Needs to be awaited return new Promise((resolve, reject) => { @@ -239,7 +264,7 @@ checkAllItems = (user) => { } if (!row) { await db.run(`INSERT INTO ${item} (id, ${item}) VALUES ('${user.id}', 0)`); - resolve(0); + return; } if (row) { resolve(row[item]); @@ -265,6 +290,29 @@ client.on("interactionCreate", async interaction => { }] }); break; + + case "inventory": + // Get user data + inv = []; + for (var i=0, l=items.list.all.length; i