diff --git a/src/commands/attribute.js b/src/commands/attribute.js index 027900e..fa9622e 100644 --- a/src/commands/attribute.js +++ b/src/commands/attribute.js @@ -2,23 +2,24 @@ const globals = require('../globals') module.exports = async (message, args, db) => { try { // user calls without arguments. - if (!args) { + if (!args[0]) { message.reply('Bitte gib mir ein Attributswert, oder das Attribut auf welches du würfeln möchtest.') return } - let level = 8 - // user calls with text. - if (isNaN(args[0])) { - db.find({ - user: message.author.tag, - }, function (err, docs) { + let attributename + + await db.find({ + user: message.author.tag, + }, async function (err, docs) { + + // user calls with text. need to gather info from database + if (isNaN(args[0])) { if (!docs.length > 0) { message.reply('Sorry, Für dich habe ich keinen Eintrag 😥\n' + 'Bitte gib mir den Attributswert, auf welchen du würfeln möchtest.'); return } else { - let attributename // try to get id of short formatted attributes. if (args[0].length == 2) { for (let i in globals.Werte) { @@ -27,51 +28,46 @@ module.exports = async (message, args, db) => { } else { attributename = args[0].toLowerCase(); } - for (let i in docs[0].character.attributes) { if (docs[0].character.attributes[i].id == attributename) level = docs[0].character.attributes[i].level; } } - }); - } else { - level = args[0]; - } - - const countOccurrences = (arr, val) => arr.reduce((a, v) => (v === val ? a + 1 : a), 0); - let dice = [] - dice.push(Math.floor(Math.random() * 20) + 1); - if (dice[0] == 1 || dice[0] == 20) { + } else { + level = args[0]; + } + const countOccurrences = (arr, val) => arr.reduce((a, v) => (v === val ? a + 1 : a), 0); + let dice = [] dice.push(Math.floor(Math.random() * 20) + 1); - } - - // handle crits - if (countOccurrences(dice, 1) == 2) { - message.reply('Du hast einen kritischen Erfolg erzielt (' + dice.join(', ') + ')! 🎉🥳🎆'); - return - } else if (countOccurrences(dice, 20) == 2) { - message.reply('Du hast einen Patzer (' + dice.join(', ') + ')! 😭 Viel Erfolg beim nächsten mal!') - return - } - - if ((dice.length == 2 && dice[1] <= level) || (dice.length == 1 && dice[0] <= level)) { - if (attributename) { - message.reply('Du hast die Probe auf ' + attributename + ' (Stufe ' + level + ') bestanden.\n' + - 'Deine 🎲: ' + dice.join(', ')) - } else { - message.reply('Du hast die Probe (Stufe ' + level + ') bestanden.\n' + - 'Deine 🎲: ' + dice.join(', ')) + if (dice[0] == 1 || dice[0] == 20) { + dice.push(Math.floor(Math.random() * 20) + 1); } - } else { - if (attributename) { - message.reply('Du hast die Probe auf ' + attributename + ' (Stufe ' + level + ') leider nicht bestanden 😢.\n' + - 'Deine 🎲: ' + dice.join(', ')) - } else { - message.reply('Du hast die Probe (Stufe ' + level + ') leider nicht bestanden 😢.\n' + - 'Deine 🎲: ' + dice.join(', ')) + // handle crits + if (countOccurrences(dice, 1) == 2) { + message.reply('Du hast einen kritischen Erfolg erzielt (' + dice.join(', ') + ')! 🎉🥳🎆'); + return + } else if (countOccurrences(dice, 20) == 2) { + message.reply('Du hast einen Patzer (' + dice.join(', ') + ')! 😭 Viel Erfolg beim nächsten mal!') + return } - } - -} catch (e) { - throw e; -} + if ((dice.length == 2 && dice[0] != 20 && dice[1] <= level) || (dice.length == 1 && dice[0] <= level)) { + if (attributename) { + message.reply('Du hast die Probe auf ' + attributename + ' (Stufe ' + level + ') bestanden.\n' + + 'Deine 🎲: ' + dice.join(', ')) + } else { + message.reply('Du hast die Probe (Stufe ' + level + ') bestanden.\n' + + 'Deine 🎲: ' + dice.join(', ')) + } + } else { + if (attributename) { + message.reply('Du hast die Probe auf ' + attributename + ' (Stufe ' + level + ') leider nicht bestanden 😢.\n' + + 'Deine 🎲: ' + dice.join(', ')) + } else { + message.reply('Du hast die Probe (Stufe ' + level + ') leider nicht bestanden 😢.\n' + + 'Deine 🎲: ' + dice.join(', ')) + } + } + }); + } catch (e) { + throw e; + } }; \ No newline at end of file diff --git a/src/commands/index.js b/src/commands/index.js index 319239e..c2525b3 100644 --- a/src/commands/index.js +++ b/src/commands/index.js @@ -9,8 +9,14 @@ const tp = require('./tp'); const talent = require('./talent'); const skill = require('./skill'); const createFromFile = require('./createFromFile'); -const {kopf, zahl, heads, tails} = require('./HeadsOrTails'); -const {attribute, eigenschaft, e, a} = require('./attribute') +const kopf = require('./HeadsOrTails'); +const zahl = require('./HeadsOrTails'); +const heads = require('./HeadsOrTails'); +const tails = require('./HeadsOrTails'); +const e = require('./attribute') +const ew = require('./attribute') +const a = require('./attribute') +const attr = require('./attribute') require('dotenv').config(); const cmdprefix = process.env.CMDPREFIX || '!'; @@ -30,8 +36,8 @@ const commands = { tails, e, a, - attribute, - eigenschaft + attr, + ew }; const Datastore = require('nedb'), diff --git a/src/commands/roll.js b/src/commands/roll.js index 32eecd0..b6326a8 100644 --- a/src/commands/roll.js +++ b/src/commands/roll.js @@ -1,18 +1,20 @@ // eslint-disable-next-line no-unused-vars module.exports = async (message, args, db) => { - let command = args.join('') + let arguments = args.join('') let regex = /\s?[DdWw]\s?/; - command = command.split(regex); + arguments = arguments.split(regex); - if (command.length == 2){ - let numberOfDice = command[0]; - let diceValues = command[1]; + if (arguments.length == 2){ + let numberOfDice = arguments[0]; + let diceValues = arguments[1]; let roll = []; for (let i = 0; i W ')}