diff options
author | RaindropsSys <contact@minteck.org> | 2023-05-24 21:59:05 +0200 |
---|---|---|
committer | RaindropsSys <contact@minteck.org> | 2023-05-24 21:59:05 +0200 |
commit | a58e83a4ad1e7686d94e26d06a582a47606efb2a (patch) | |
tree | 3e41bced9e09e2ed52cb1eb6fadec7b57da02298 | |
parent | cf643205ad8838d224c1a912d28fe3d46108473b (diff) | |
download | butterscotch-a58e83a4ad1e7686d94e26d06a582a47606efb2a.tar.gz butterscotch-a58e83a4ad1e7686d94e26d06a582a47606efb2a.tar.bz2 butterscotch-a58e83a4ad1e7686d94e26d06a582a47606efb2a.zip |
Updated 3 files and added 2 files (automated)
-rw-r--r-- | commands/score.js | 10 | ||||
-rw-r--r-- | help/score.json | 6 | ||||
-rw-r--r-- | index.js | 17 | ||||
-rw-r--r-- | matrix.js | 44 | ||||
-rw-r--r-- | package.json | 2 |
5 files changed, 77 insertions, 2 deletions
diff --git a/commands/score.js b/commands/score.js new file mode 100644 index 0000000..e69a136 --- /dev/null +++ b/commands/score.js @@ -0,0 +1,10 @@ +const axios = require("axios"); + +module.exports = (parameter, wrapper) => { + if (wrapper.sender !== "@cloudburst:equestria.dev" && wrapper.sender !== "@raindrops:equestria.dev" && wrapper.sender !== "186730180872634368" && wrapper.sender !== "493845599469174794") { + wrapper.send("⛔️ This command is private and you are not allowed to use it."); + return; + } + + wrapper.send("💘 The current love score is **" + score['percentage'].toFixed(2) + "%**."); +}
\ No newline at end of file diff --git a/help/score.json b/help/score.json new file mode 100644 index 0000000..f25d432 --- /dev/null +++ b/help/score.json @@ -0,0 +1,6 @@ +{ + "description": "Shows the current love score.", + "parameters": "", + "aliases": [ "sc", "love", "l" ], + "exempt": false +}
\ No newline at end of file @@ -3,6 +3,7 @@ const fs = require("fs"); if (!fs.existsSync("cache")) fs.mkdirSync("cache"); if (!fs.existsSync("cache/lastMessages.json")) fs.writeFileSync("cache/lastMessages.json", "{}"); if (!fs.existsSync("cache/ratelimits.json")) fs.writeFileSync("cache/ratelimits.json", `{"month":{},"day":{},"hour":{},"minute":{}}`); +if (!fs.existsSync("cache/score.json")) fs.writeFileSync("cache/score.json", `{"history":{},"score":0,"percentage":0}`); try { global.lastMessages = JSON.parse(fs.readFileSync("cache/lastMessages.json").toString()); @@ -16,12 +17,20 @@ global.aliases = {}; try { global.ratelimits = JSON.parse(fs.readFileSync("cache/ratelimits.json").toString()); } catch (e) { - fs.writeFileSync("cache/ratelimits.json", "{}"); + fs.writeFileSync("cache/ratelimits.json", "{\"month\":{},\"day\":{},\"hour\":{},\"minute\":{}}"); global.ratelimits = JSON.parse(fs.readFileSync("cache/ratelimits.json").toString()); } +try { + global.score = JSON.parse(fs.readFileSync("cache/score.json").toString()); +} catch (e) { + fs.writeFileSync("cache/score.json", "{\"history\":{},\"score\":0,\"percentage\":0}"); + global.score = JSON.parse(fs.readFileSync("cache/score.json").toString()); +} + let lastSavedLastMessages = JSON.stringify(lastMessages); let lastSavedRateLimits = JSON.stringify(ratelimits); +let lastSavedScore = JSON.stringify(score); global.maxCredits = { month: 400 @@ -39,6 +48,12 @@ setInterval(() => { fs.writeFileSync("cache/lastMessages.json", JSON.stringify(lastMessages)); lastSavedLastMessages = JSON.stringify(lastMessages); } + + if (JSON.stringify(score) !== lastSavedScore) { + console.log("Saving score"); + fs.writeFileSync("cache/score.json", JSON.stringify(score)); + lastSavedScore = JSON.stringify(score); + } }, 1000); for (let helpFile of fs.readdirSync("./help")) { @@ -82,6 +82,50 @@ function startMatrix() { if (!lastMessages[room.roomId]) lastMessages[room.roomId] = []; lastMessages[room.roomId].unshift(event.event.content.body); lastMessages[room.roomId] = lastMessages[room.roomId].splice(0, 5); + + let text = event.event.content.body.toLowerCase(); + + if (event.event.sender === "@cloudburst:equestria.dev" || event.event.sender === "@raindrops:equestria.dev") { + if (text.includes("...")) { + score['score'] -= text.replace(/[^.]/gm, "").length; + } else if (text.includes("bye")) { + score['score'] -= 50; + } else if (text.endsWith(".")) { + score['score'] -= 10; + } else if (text.match(/^\*(.*)\*$/gm)) { + score['score'] += 2; + } else if (text.includes("❤")) { + score['score'] += text.replace(/[^❤]/gm, "").length; + } else if (text.includes("hehe")) { + score['score'] += 2; + } else if (text.includes("pff")) { + score['score'] += 2; + } else if (text.includes("cutie")) { + score['score'] += 2; + } else if (text.includes("sweetie")) { + score['score'] += 2; + } else if (text.includes("sis")) { + score['score'] += 2; + } else if (text.includes("hehehehe")) { + score['score'] += 4; + } else if (text.includes("hehehe")) { + score['score'] += 3; + } else if (text.includes("/s")) { + score['score'] += 3; + } else if (text.includes("love you")) { + score['score'] += 5; + } else if (text.includes("love u")) { + score['score'] += 5; + } else if (text.includes("^c^")) { + score['score'] += 3; + } + + if (Math.floor(score['percentage']) > Math.floor(score['score'] / 20)) { + matrixSend(room.roomId, "🎉 Congrats! Your love score is now at " + Math.floor(score['score'] / 20) + ", keep it up!"); + } + + score['percentage'] = score['score'] / 20; + } } } }); diff --git a/package.json b/package.json index a966b2d..856fe61 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "scripts": { - "start": "nodemon -i ./cache index.js" + "start": "nodemon -i ./cache -i ./cache/lastMessages.json -i ./cache/ratelimits.json -i ./cache/score.json index.js" }, "dependencies": { "axios": "^1.4.0", |