From d70e6427607dbb54b104a5d0853f7e8d8819bd0d Mon Sep 17 00:00:00 2001 From: Daniel Odendahl Jr Date: Tue, 15 Aug 2017 22:11:22 +0000 Subject: [PATCH] Shuffle and Nobody Name Commands --- commands/text-edit/organization-xiii-name.js | 29 ++++++++++++++++++++ commands/text-edit/shuffle.js | 26 ++++++++++++++++++ package.json | 4 +-- structures/Util.js | 10 +++++++ 4 files changed, 67 insertions(+), 2 deletions(-) create mode 100644 commands/text-edit/organization-xiii-name.js create mode 100644 commands/text-edit/shuffle.js diff --git a/commands/text-edit/organization-xiii-name.js b/commands/text-edit/organization-xiii-name.js new file mode 100644 index 00000000..5e9a58ab --- /dev/null +++ b/commands/text-edit/organization-xiii-name.js @@ -0,0 +1,29 @@ +const Command = require('../../structures/Command'); +const { shuffle } = require('../../structures/Util'); + +module.exports = class OrganizationXIIINameCommand extends Command { + constructor(client) { + super(client, { + name: 'organization-xiii-name', + aliases: ['org-xiii-name', 'xiii-name', 'nobody-name'], + group: 'text-edit', + memberName: 'organization-xiii-name', + description: 'Converts a name into the Organization XIII style.', + args: [ + { + key: 'text', + prompt: 'What name would you like to convert?', + type: 'string', + parse: text => text.toLowerCase().split('') + } + ] + }); + } + + run(msg, args) { + const { text } = args; + text.push('x'); + const converted = shuffle(text).join(''); + return msg.say(`\u180E${converted}`); + } +}; diff --git a/commands/text-edit/shuffle.js b/commands/text-edit/shuffle.js new file mode 100644 index 00000000..61513e08 --- /dev/null +++ b/commands/text-edit/shuffle.js @@ -0,0 +1,26 @@ +const Command = require('../../structures/Command'); +const { shuffle } = require('../../structrues/Util'); + +module.exports = class ShuffleCommand extends Command { + constructor(client) { + super(client, { + name: 'shuffle', + group: 'text-edit', + memberName: 'shuffle', + description: 'Shuffles text.', + args: [ + { + key: 'text', + prompt: 'What text would you like to shuffle?', + type: 'string' + } + ] + }); + } + + run(msg, args) { + const { text } = args; + const converted = shuffle(text.split('')).join(''); + return msg.say(`\u180E${converted}`); + } +}; diff --git a/package.json b/package.json index 381268d1..674cb93e 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "xiaobot", - "version": "30.2.1", + "version": "30.3.0", "description": "Your personal server companion.", "main": "Shard.js", "scripts": { @@ -42,7 +42,7 @@ "node-opus": "^0.2.6", "snekfetch": "^3.2.9", "uws": "^8.14.1", - "xml2js": "^0.4.17", + "xml2js": "^0.4.18", "zalgolize": "^1.2.4" }, "devDependencies": { diff --git a/structures/Util.js b/structures/Util.js index 2dfb6f58..bb379f4b 100644 --- a/structures/Util.js +++ b/structures/Util.js @@ -61,6 +61,16 @@ class Util { static wait(time) { return promisify(setTimeout)(time); } + + static shuffle(arr) { + for (let i = arr.length - 1; i > 0; i--) { + const j = Math.floor(Math.random() * (i + 1)); + const temp = arr[i]; + arr[i] = arr[j]; + arr[j] = temp; + } + return arr; + } } module.exports = Util;