This commit is contained in:
Daniel Odendahl Jr
2018-01-26 14:35:47 +00:00
parent 2c4ded3804
commit 6e96c5e914
8 changed files with 79 additions and 26 deletions
Binary file not shown.
+49
View File
@@ -0,0 +1,49 @@
const { Command } = require('discord.js-commando');
const { createCanvas, registerFont } = require('canvas');
const path = require('path');
registerFont(path.join(__dirname, '..', '..', 'assets', 'fonts', 'Captcha.ttf'), { family: 'Captcha' });
module.exports = class CaptchaQuizCommand extends Command {
constructor(client) {
super(client, {
name: 'captcha-quiz',
aliases: ['captcha'],
group: 'games',
memberName: 'captcha-quiz',
description: 'Try to guess what the captcha says.',
throttling: {
usages: 1,
duration: 10
},
clientPermissions: ['ATTACH_FILES']
});
}
async run(msg) {
const canvas = createCanvas(100, 32);
const ctx = canvas.getContext('2d');
const text = this.randomText(5);
ctx.fillStyle = 'white';
ctx.fillRect(0, 0, canvas.width, canvas.height);
ctx.beginPath();
ctx.strokeStyle = '#0088cc';
ctx.font = '26px Captcha';
ctx.rotate(-0.05);
ctx.strokeText(text, 15, 26);
await msg.say({ files: [{ attachment: canvas.toBuffer(), name: 'captcha-quiz.png' }] });
const msgs = await msg.channel.awaitMessages(res => res.author.id === msg.author.id, {
max: 1,
time: 15000
});
if (!msgs.size) return msg.say(`Sorry, time is up! It was ${text}.`);
if (msgs.first().content !== text) return msg.say(`Nope, sorry, it's ${text}.`);
return msg.say('Nice job! 10/10! You deserve some cake!');
}
randomText(len) {
const pool = 'abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ23456789'.split('');
const result = [];
for (let i = 0; i > len; i++) result.push(pool[Math.floor(Math.random() * pool.length)]);
return result.join('');
}
};
@@ -11,13 +11,13 @@ const maxValues = {
impossible: 1000000
};
module.exports = class MathGameCommand extends Command {
module.exports = class MathQuizCommand extends Command {
constructor(client) {
super(client, {
name: 'math-game',
aliases: ['math-quiz', 'math-test'],
name: 'math-quiz',
aliases: ['math-game'],
group: 'games',
memberName: 'math',
memberName: 'math-quiz',
description: 'See how fast you can answer a math problem in a given time limit.',
args: [
{
+1 -1
View File
@@ -9,7 +9,7 @@ module.exports = class QuizCommand extends Command {
constructor(client) {
super(client, {
name: 'quiz',
aliases: ['jeopardy', 'test'],
aliases: ['jeopardy'],
group: 'games',
memberName: 'quiz',
description: 'Answer a quiz question.',
@@ -11,13 +11,13 @@ const times = {
impossible: 5000
};
module.exports = class TypingGameCommand extends Command {
module.exports = class TypingTestCommand extends Command {
constructor(client) {
super(client, {
name: 'typing-game',
aliases: ['typing-quiz', 'typing-test'],
name: 'typing-test',
aliases: ['typing-game'],
group: 'games',
memberName: 'typing',
memberName: 'typing-test',
description: 'See how fast you can type a sentence in a given time limit.',
args: [
{
+19 -15
View File
@@ -106,24 +106,11 @@ module.exports = class WizardConventionCommand extends Command {
max: players.size,
time: 120000
});
const counts = new Collection();
for (const vote of votes.values()) {
const player = players.get(playersArr[parseInt(vote.content, 10) - 1].id);
if (counts.has(player.id)) {
++counts.get(player.id).votes;
} else {
counts.set(player.id, {
id: player.id,
votes: 1,
user: player.user
});
}
}
if (!counts.size) {
if (!votes.size) {
await msg.say('No one will be expelled.');
continue;
}
const expelled = counts.sort((a, b) => b.votes - a.votes).first();
const expelled = this.getExpelled(votes, players, playersArr);
await msg.say(`${expelled.user} will be expelled.`);
players.delete(expelled.id);
++turn;
@@ -154,4 +141,21 @@ module.exports = class WizardConventionCommand extends Command {
i++;
}
}
getExpelled(votes, players, playersArr) {
const counts = new Collection();
for (const vote of votes.values()) {
const player = players.get(playersArr[parseInt(vote.content, 10) - 1].id);
if (counts.has(player.id)) {
++counts.get(player.id).votes;
} else {
counts.set(player.id, {
id: player.id,
votes: 1,
user: player.user
});
}
}
return counts.sort((a, b) => b.votes - a.votes).first();
}
};
+1 -1
View File
@@ -19,7 +19,7 @@ module.exports = class InfoCommand extends Command {
run(msg) {
const embed = new MessageEmbed()
.setColor(0x00AE86)
.setFooter('©2017 dragonfire535#8081')
.setFooter('©2017 dragonfire535#0817')
.addField(' Servers',
this.client.guilds.size, true)
.addField(' Shards',
+1 -1
View File
@@ -1,6 +1,6 @@
{
"name": "xiao",
"version": "61.5.0",
"version": "62.0.0",
"description": "Your personal server companion.",
"main": "Xiao.js",
"scripts": {