diff --git a/DiscordModules/General/system.js b/DiscordModules/General/system.js index cbf2a5c..45891bb 100644 --- a/DiscordModules/General/system.js +++ b/DiscordModules/General/system.js @@ -1,50 +1,54 @@ -const Command = require('../../src/structures/Command'); -const { MessageEmbed, version: DiscordVersion } = require('discord.js'); -const os = require('os'); -const { developers, contributors, source, color } = require('../../config'); -const db = require('quick.db'); -const Backend = new db.table('backend'); +const Command = require("../../src/structures/Command"); +const { MessageEmbed, version: DiscordVersion } = require("discord.js"); +const { developers, contributors, source, color } = require("../../config"); +const os = require("os"); +const db = require("quick.db"); +const Backend = new db.table("backend"); function format(seconds) { - function pad(s) { - return (s < 10 ? '0' : '') + s; - } - var hours = Math.floor(seconds / (60 * 60)); - var minutes = Math.floor((seconds % (60 * 60)) / 60); - var seconds = Math.floor(seconds % 60); + function pad(s) { + return (s < 10 ? "0" : "") + s; + } + var hours = Math.floor(seconds / (60 * 60)); + var minutes = Math.floor((seconds % (60 * 60)) / 60); + var seconds = Math.floor(seconds % 60); - return pad(hours) + 'h ' + pad(minutes) + 'm ' + pad(seconds) + 's'; + return pad(hours) + "h " + pad(minutes) + "m " + pad(seconds) + "s"; } module.exports = class Info extends Command { - constructor() { - super({ - name: 'system', - description: 'Show System Info', - aliases: [ 'sys', 'sysinfo' ], - module: 'General', - cooldown: 0, - guildOnly: false, - developerOnly: false - }); - } + constructor() { + super({ + name: "system", + description: "Show System Info", + aliases: ["sys", "sysinfo"], + module: "General", + cooldown: 0, + guildOnly: false, + developerOnly: false + }); + } - async command(ctx) { - let SystemEmbed = new MessageEmbed() - .setTitle(`${ctx.client.user.username} | v${ctx.vars.version}`) - .setColor(color) - .setDescription( - `Made by ${ctx.utils.format.bold( - ctx.client.users.find((user) => user.id === '318044130796109825').tag - )}` - ) - .addField('Language', 'Javascript', true) - .addField('Library', `d.js - v${DiscordVersion}`, true) - .addField('Uptime', `${format(process.uptime())}`, true) - .addField('Node', `${process.version}`, true) - .addField('Servers', ctx.client.guilds.size, true) - .addField('Users', ctx.client.users.size, true) - .addField('Total sauce found', ctx.db.backend.get('SourceFynnder.found'), true); + async command(ctx) { + let SystemEmbed = new MessageEmbed() + .setTitle(`${ctx.client.user.username} | v${ctx.vars.version}`) + .setColor(color) + .setDescription( + `Made by ${ctx.utils.format.bold( + ctx.client.users.find(user => user.id === "318044130796109825").tag + )}` + ) + .addField("Language", "Javascript", true) + .addField("Library", `d.js - v${DiscordVersion}`, true) + .addField("Uptime", `${format(process.uptime())}`, true) + .addField("Node", `${process.version}`, true) + .addField("Servers", ctx.client.guilds.size, true) + .addField("Users", ctx.client.users.size, true) + .addField( + "Total sauce found", + ctx.db.backend.get("SourceFynnder.found"), + true + ); - ctx.send(SystemEmbed); - } + ctx.send(SystemEmbed); + } }; diff --git a/package-lock.json b/package-lock.json index ade5b74..67df120 100755 --- a/package-lock.json +++ b/package-lock.json @@ -111,11 +111,6 @@ "resolved": "https://registry.npmjs.org/async-each/-/async-each-1.0.3.tgz", "integrity": "sha512-z/WhQ5FPySLdvREByI2vZiTWwCnF0moMJ1hK9YQwDTHKh6I7/uSckMetoRGb5UBZPC1z0jlw+n/XCgjeH7y1AQ==" }, - "async-limiter": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/async-limiter/-/async-limiter-1.0.1.tgz", - "integrity": "sha512-csOlWGAcRFJaI6m+F2WKdnMKr4HhdhFVBk0H/QbJFMCr+uO2kwohwXQPxw/9OCxp05r5ghVBFSyioixx3gfkNQ==" - }, "asynckit": { "version": "0.4.0", "resolved": "https://registry.npmjs.org/asynckit/-/asynckit-0.4.0.tgz", @@ -212,14 +207,6 @@ "resolved": "https://registry.npmjs.org/binary-extensions/-/binary-extensions-1.13.1.tgz", "integrity": "sha512-Un7MIEDdUC5gNpcGDV97op1Ywk748MpHcFTHoYs6qnj1Z3j7I53VG3nwZhKzoBZmbdRNnb6WRdFlwl7tSDuZGw==" }, - "bindings": { - "version": "1.5.0", - "resolved": "https://registry.npmjs.org/bindings/-/bindings-1.5.0.tgz", - "integrity": "sha512-p2q/t/mhvuOj/UeLlV6566GD/guowlr0hHxClI0W9m7MWYkL1F0hLo+0Aexs9HSPCtR1SXQ0TD3MMKrXZajbiQ==", - "requires": { - "file-uri-to-path": "1.0.0" - } - }, "blapi": { "version": "1.2.3", "resolved": "https://registry.npmjs.org/blapi/-/blapi-1.2.3.tgz", @@ -681,11 +668,17 @@ "abort-controller": "^3.0.0", "form-data": "^2.3.3", "node-fetch": "^2.3.0", - "pako": "^1.0.8", "prism-media": "^1.0.0", "setimmediate": "^1.0.5", "tweetnacl": "^1.0.1", - "ws": "^6.1.3" + "ws": "^7.2.0" + }, + "dependencies": { + "ws": { + "version": "7.2.1", + "resolved": "https://registry.npmjs.org/ws/-/ws-7.2.1.tgz", + "integrity": "sha512-sucePNSafamSKoOqoNfBd8V0StlkzJKL2ZAhGQinCfNQ+oacw+Pk7lcdAElecBF2VkLNZRiIb5Oi1Q5lVUVt2A==" + } } }, "dns-prefetch-control": { @@ -924,11 +917,6 @@ "resolved": "https://registry.npmjs.org/feature-policy/-/feature-policy-0.3.0.tgz", "integrity": "sha512-ZtijOTFN7TzCujt1fnNhfWPFPSHeZkesff9AXZj+UEjYBynWNUIYpC87Ve4wHzyexQsImicLu7WsC2LHq7/xrQ==" }, - "file-uri-to-path": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/file-uri-to-path/-/file-uri-to-path-1.0.0.tgz", - "integrity": "sha512-0Zt+s3L7Vf1biwWZ29aARiVYLx7iMGnEUl9x33fbB/j3jR81u/O2LbqK+Bm1CDSNDKVtJ/YjwY7TUd5SkeLQLw==" - }, "fill-range": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-4.0.0.tgz", @@ -1593,9 +1581,9 @@ "integrity": "sha512-a30VEBm4PEdx1dRB7MFK7BejejvCvBronbLjht+sHuGYj8PHs7M/5Z+rt5lw551vZ7yfTCj4Vuyy3mSJytDWRQ==" }, "handlebars": { - "version": "4.5.1", - "resolved": "https://registry.npmjs.org/handlebars/-/handlebars-4.5.1.tgz", - "integrity": "sha512-C29UoFzHe9yM61lOsIlCE5/mQVGrnIOrOq7maQl76L7tYPCgC1og0Ajt6uWnX4ZTxBPnjw+CUvawphwCfJgUnA==", + "version": "4.5.3", + "resolved": "https://registry.npmjs.org/handlebars/-/handlebars-4.5.3.tgz", + "integrity": "sha512-3yPecJoJHK/4c6aZhSvxOyG4vJKDshV36VHp0iVCDVh7o9w2vwi3NSnL2MMPj3YdduqaBcu7cGbggJQM0br9xA==", "requires": { "neo-async": "^2.6.0", "optimist": "^0.6.1", @@ -2222,7 +2210,8 @@ "nan": { "version": "2.14.0", "resolved": "https://registry.npmjs.org/nan/-/nan-2.14.0.tgz", - "integrity": "sha512-INOFj37C7k3AfaNTtX8RhsTw7qRy7eLET14cROi9+5HAVbbHuIWUHEauBv5qT4Av2tWasiTY1Jw6puUNqRJXQg==" + "integrity": "sha512-INOFj37C7k3AfaNTtX8RhsTw7qRy7eLET14cROi9+5HAVbbHuIWUHEauBv5qT4Av2tWasiTY1Jw6puUNqRJXQg==", + "optional": true }, "nanomatch": { "version": "1.2.13", @@ -2461,10 +2450,10 @@ "semver": "^5.1.0" } }, - "pako": { - "version": "1.0.10", - "resolved": "https://registry.npmjs.org/pako/-/pako-1.0.10.tgz", - "integrity": "sha512-0DTvPVU3ed8+HNXOu5Bs+o//Mbdj9VNQMUOe9oKCwh8l0GNwpTDMKCWbRjgtD291AWnkAgkqA/LOnQS8AmS1tw==" + "parse-ms": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/parse-ms/-/parse-ms-2.1.0.tgz", + "integrity": "sha512-kHt7kzLoS9VBZfUsiKjv43mr91ea+U05EyKkEtqp7vNbHxmaVuEqN7XxeEVnGrMtYOAxGrDElSi96K7EgO1zCA==" }, "parseurl": { "version": "1.3.3", @@ -2572,6 +2561,11 @@ "lodash.unset": "^4.5.2" } }, + "random-all": { + "version": "1.0.7", + "resolved": "https://registry.npmjs.org/random-all/-/random-all-1.0.7.tgz", + "integrity": "sha512-2+Aur0b6UJrq0rSXlt1Mo1oZWmCJjPtHOV9n3jfn3zQQaZXBv48x21OwnpmcXoTBNqdGWz1PR+Uyla62uyviyg==" + }, "range-parser": { "version": "1.2.1", "resolved": "https://registry.npmjs.org/range-parser/-/range-parser-1.2.1.tgz", @@ -3215,9 +3209,9 @@ } }, "uglify-js": { - "version": "3.6.8", - "resolved": "https://registry.npmjs.org/uglify-js/-/uglify-js-3.6.8.tgz", - "integrity": "sha512-XhHJ3S3ZyMwP8kY1Gkugqx3CJh2C3O0y8NPiSxtm1tyD/pktLAkFZsFGpuNfTZddKDQ/bbDBLAd2YyA1pbi8HQ==", + "version": "3.7.2", + "resolved": "https://registry.npmjs.org/uglify-js/-/uglify-js-3.7.2.tgz", + "integrity": "sha512-uhRwZcANNWVLrxLfNFEdltoPNhECUR3lc+UdJoG9CBpMcSnKyWA94tc3eAujB1GcMY5Uwq8ZMp4qWpxWYDQmaA==", "optional": true, "requires": { "commander": "~2.20.3", @@ -3332,15 +3326,6 @@ "prepend-http": "^1.0.1" } }, - "usage": { - "version": "0.7.1", - "resolved": "https://registry.npmjs.org/usage/-/usage-0.7.1.tgz", - "integrity": "sha1-JfMQalGVUKukG/bnaFvJvVMzYv8=", - "requires": { - "bindings": "1.x.x", - "nan": "^2.0.9" - } - }, "use": { "version": "3.1.1", "resolved": "https://registry.npmjs.org/use/-/use-3.1.1.tgz", @@ -3405,14 +3390,6 @@ "signal-exit": "^3.0.2" } }, - "ws": { - "version": "6.2.1", - "resolved": "https://registry.npmjs.org/ws/-/ws-6.2.1.tgz", - "integrity": "sha512-GIyAXC2cB7LjvpgMt9EKS2ldqr0MTrORaleiOno6TweZ6r3TKtoFQWay/2PceJ3RuBasOHzXNn5Lrw1X0bEjqA==", - "requires": { - "async-limiter": "~1.0.0" - } - }, "x-xss-protection": { "version": "1.3.0", "resolved": "https://registry.npmjs.org/x-xss-protection/-/x-xss-protection-1.3.0.tgz", diff --git a/package.json b/package.json index 92996b8..b59952c 100755 --- a/package.json +++ b/package.json @@ -22,12 +22,13 @@ "node-dig-dns": "^0.2.10", "nodemon": "^1.19.4", "ora": "^4.0.2", + "parse-ms": "^2.1.0", "phin": "*", "quick.db": "^7.0.0-b22", + "random-all": "^1.0.7", "restler": "^3.4.0", "shell-exec": "^1.0.2", "trello": "^0.9.1", - "usage": "^0.7.1", "yiff": "^1.2.7" }, "scripts": { diff --git a/utils/index.js b/utils/index.js index bf2508a..3d86e21 100755 --- a/utils/index.js +++ b/utils/index.js @@ -1,4 +1,8 @@ -const { Permissions: { FLAGS } } = require('discord.js'); +const { + Permissions: { + FLAGS + } +} = require('discord.js'); module.exports = { format: require('./src/format'), status: require('./src/statuses'), @@ -9,8 +13,8 @@ module.exports = { db: require('./src/database'), log: require('./src/logs'), int: require('./src/interactions'), - //eco: require('./src/economy'), + eco: require('./src/economy'), discord: require('discord.js'), yiff: require('yiff'), perms: FLAGS -}; +}; \ No newline at end of file diff --git a/utils/src/economy.js b/utils/src/economy.js index 69d25a5..255d3ce 100644 --- a/utils/src/economy.js +++ b/utils/src/economy.js @@ -1,15 +1,99 @@ -const { table } = require('quick.db'); -const Servers = new table('servers'); -const Users = new table('users'); -const Backend = new table('backend'); -let T = '-x-'; -let Message = {}; +const { + table +} = require("quick.db"); +const ms = require("parse-ms"); +const random = require("random-all"); + +const Users = new table("users"); +const Backend = new table("backend"); +let d; let hasVoted = false; -let NormalAmout = 5; +let Placeholder = "318044130796109825"; -async function CalculateFromMessage(ctx) { - Message.content = ctx.msg.content; - Message.length = ctx.msg.content.length; +module.exports = { + CalculateFromMessage: async function (Message) { + let hasVoted = await Users.get(`${Message.author.id}.voted`); + content = Message.content; + length = Message.content.length; + if (hasVoted) d = 1; + else d = 0.01; + e = (length * d).toFixed(1); + return await Users.add(`${Message.author.id}.money.bank`, e); + }, + Dailies: async function (User = Placeholder) { + let timeout = 86400000; + let amount = Math.floor(Math.random() * (200 - 150) + 150); - console.log(); -} + let daily = await Users.get(`${User}.money.daily`); + if (daily !== null && timeout - (Date.now() - daily) > 0) { + let time = ms(timeout - (Date.now() - daily)); + + throw new Error(`${time.hours}h ${time.minutes}m ${time.seconds}s`); + } else { + Users.add(`${User}.money.bank`, amount); + Users.set(`${User}.money.daily`, Date.now()); + + return { + success: true, + amount + }; + } + }, + weekly: async function (User = Placeholder) { + let timeout = 604800000; + let amount = Math.floor(Math.random() * (500 - 300) + 300); + + let weekly = await Users.get(`${User}.money.weekly`); + if (weekly !== null && timeout - (Date.now() - weekly) > 0) { + let time = ms(timeout - (Date.now() - weekly)); + throw new Error( + `${time.days}d ${time.hours}h ${time.minutes}m ${time.seconds}s` + ); + } else { + Users.add(`${User}.money.bank`, amount); + Users.set(`${User}.money.weekly`, Date.now()); + + return { + success: true, + amount + }; + } + }, + // Math.floor(Math.random() * (500 - 300) + 300); + quick: async function (kind, User = Placeholder) { + let way = { + work: { + payout: Math.floor(Math.random() * (500 - 300) + 300), + fine: Math.floor(Math.random() * (300 - 50) + 50), + probability: random.getBoolean(85) + }, + slut: { + payout: Math.floor(Math.random() * (500 - 300) + 300), + fine: Math.floor(Math.random() * (300 - 50) + 50), + probability: random.getBoolean(60) + }, + crime: { + payout: Math.floor(Math.random() * (500 - 300) + 300), + fine: Math.floor(Math.random() * (300 - 50) + 50), + probability: random.getBoolean(55) + } + }; + if (way.hasOwnProperty(kind)) { + console.log(way[kind].probability); + if (way[kind].probability) { + Users.add(`${User}.money.cash`, way[kind].payout); + return { + money: way[kind].payout, + text: `You got ${way[kind].payout} from doing ${kind}` + } + } else { + Users.subtract(`${User}.money.cash`, way[kind].fine); + return { + money: way[kind].fine, + text: `You were fined **${way[kind].fine}** by **${kind}**` + } + + } + } + } +}; \ No newline at end of file