const globals = require('../globals'); const { CountOccurences } = require('@dsabot/CountOccurences'); const { findMessage } = require('@dsabot/findMessage'); const Random = require('random'); const db = globals.db; module.exports = { name: 'attribute', description: '', aliases: ['ap', 'ep'], usage: ' / ', needs_args: true, async exec(message, args) { try { let level = 8; 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])) { HandleNamedAttributes(); } else { level = args[0]; } Random.use(message.author.tag); const dice = []; dice.push(Random.int(1, 20)); if (dice[0] == 1 || dice[0] == 20) { dice.push(Random.int(1, 20)); } // handle crits if (CountOccurences(dice, 1) == 2) { message.reply('Du hast einen kritischen Erfolg erzielt (' + dice.join(', ') + ')! πŸŽ‰πŸ₯³πŸŽ†'); return; } else if (CountOccurences(dice, 20) == 2) { message.reply('Du hast einen Patzer (' + dice.join(', ') + ')! 😭 Viel Erfolg beim nΓ€chsten mal!'); return; } 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; } }, }; const HandleCrits = (dice) => { }; const HandleNamedAttributes = () => { if (docs.length === 0) { message.reply(findMessage('NOENTRY')); return; } else { // try to get id of short formatted attributes. if (args[0].length == 2) { for (const i in globals.Werte) { if (globals.Werte[i].kuerzel == args[0].toUpperCase()) { attributename = globals.Werte[i].id; } } } else { attributename = args[0].toLowerCase(); } for (const i in docs[0].character.attributes) { if (docs[0].character.attributes[i].id == attributename) level = docs[0].character.attributes[i].level; } } }; //const docs = []; //console.log(HandleNamedAttributes())