From 6ec0a2fe686ad8191c2ef934c647739e43025057 Mon Sep 17 00:00:00 2001 From: TobenderZephyr Date: Sun, 18 Apr 2021 22:13:36 +0200 Subject: [PATCH] refactored Skill command --- commands/Skill.js | 17 ++++++----------- data/dsabot.db | 1 + functions/getSkill.js | 20 ++++++++++++++++++++ 3 files changed, 27 insertions(+), 11 deletions(-) create mode 100644 functions/getSkill.js diff --git a/commands/Skill.js b/commands/Skill.js index 8030f8b..84880d8 100644 --- a/commands/Skill.js +++ b/commands/Skill.js @@ -1,6 +1,7 @@ const globals = require('../globals'); const db = globals.db; const { findMessage }= require('@dsabot/findMessage'); +const { getSkill } = require('@dsabot/getSkill'); module.exports = { name: 'skill', description: 'Zeigt dir deinen Fertigkeitswert im jeweiligen Talent.', @@ -17,16 +18,9 @@ module.exports = { return message.reply(findMessage('NOENTRY')); } else { - let level = 0; - /* - for (let i in docs[0].character.skills) { - if (docs[0].character.skills[i].id == args[0]) { - level = docs[0].character.skills[i].level; - } - } - */ - level = docs[0].character.skills.find(skill => skill.id === args[0]).level; - message.reply('Du hast folgenden Talentwert in ' + args[0] + ': ' + level); + const Skill = getSkill({Character: docs[0].character, args: args}); + if(!Skill) { return message.reply(findMessage('TALENT_UNKNOWN'));} + return message.reply(`Du hast folgenden Wert in **${Skill.Name}**: ${Skill.Level}`) } }); } @@ -34,4 +28,5 @@ module.exports = { throw e; } }, -}; \ No newline at end of file +}; + diff --git a/data/dsabot.db b/data/dsabot.db index e69de29..28f986e 100644 --- a/data/dsabot.db +++ b/data/dsabot.db @@ -0,0 +1 @@ +{"user":"tobenderzephyr#2509","gold":0,"silver":0,"bronce":0,"iron":0,"hp":0,"character":{"age":"36","armor":[{"amount":1,"equipped":true,"ruleelement":{"id":"lederruestung","type":"armor"}}],"attributes":[{"id":"mut","level":12},{"id":"klugheit","level":11},{"id":"intuition","level":12},{"id":"charisma","level":11},{"id":"fingerfertigkeit","level":12},{"id":"gewandtheit","level":13},{"id":"konstitution","level":12},{"id":"koerperkraft","level":12}],"basevalues":[{"id":"lebensenergie"},{"id":"astralenergie"},{"id":"karmaenergie"},{"id":"seelenkraft"},{"id":"zaehigkeit"},{"id":"ausweichen"},{"id":"initiative"},{"id":"geschwindigkeit"},{"id":"schicksalspunkte"}],"checkrange":true,"combattechniques":[{"id":"dolche","level":8},{"id":"raufen","level":8}],"culture":"suedaventurier","disadvantages":[{"id":"angstvor","level":2,"variant":{"name":"Spinnen","type":"string"}},{"id":"schlechteeigenschaft","variant":{"apcost":-5,"name":"Neugier","type":"stringwithcost"}},{"id":"stigma","variant":{"name":"Grüne Haare","type":"string"}},{"id":"beidhaendig"},{"id":"glueck","level":1},{"id":"kaelteempfindlich"},{"id":"persoenlichkeitsschwaeche","variant":{"apcost":-5,"name":"Neid","type":"stringwithcost"}},{"id":"unscheinbar"},{"id":"herausragendersinngehoer"},{"id":"herausragendersinnsicht"},{"id":"schlechteangewohnheit","variant":{"name":"Raucher","type":"string"}},{"id":"unfaehig","variant":{"ruleelement":{"id":"booteschiffe","type":"skill"},"type":"ruleelement"}},{"id":"unfaehig","variant":{"ruleelement":{"id":"zechen","type":"skill"},"type":"ruleelement"}},{"id":"angstvor","level":1,"variant":{"name":"Schlangen","type":"string"}},{"id":"waffenbegabung","variant":{"ruleelement":{"id":"dolche","type":"combattechnique"},"type":"ruleelement"}}],"eyecolor":"grün","haircolor":"schwarz","height":"17300","meleeweapons":[{"amount":1,"equipped":true,"handling":[],"ruleelement":{"id":"dolch","type":"meleeweapon"}},{"amount":1,"equipped":true,"handling":[],"ruleelement":{"id":"waqqif","type":"meleeweapon"}}],"mothertongues":[{"id":"sprache","level":3,"variant":{"ruleelement":{"id":"garethi","type":"language"},"text":"Brabaci","type":"ruleelement"}}],"name":"Diego Lupinez","otherobjects":[{"amount":4,"ruleelement":{"id":"dietriche","type":"equipment"}},{"amount":2,"ruleelement":{"id":"falscherbart","type":"equipment"}},{"amount":2,"ruleelement":{"id":"peruecke","type":"equipment"}},{"amount":2,"ruleelement":{"id":"dolchscheide","type":"equipment"}},{"amount":1,"ruleelement":{"id":"verband","type":"equipment"}},{"amount":1,"ruleelement":{"id":"kletterseil10schritt","type":"equipment"}},{"amount":3,"ruleelement":{"id":"fesselseil","type":"equipment"}},{"amount":1,"ruleelement":{"id":"gugel","type":"equipment"}},{"amount":1,"ruleelement":{"id":"halstuch","type":"equipment"}},{"amount":1,"ruleelement":{"id":"geldbeutel","type":"equipment"}},{"amount":1,"ruleelement":{"id":"lederrucksack","type":"equipment"}},{"amount":1,"ruleelement":{"id":"geldkatze","type":"equipment"}},{"amount":1,"ruleelement":{"id":"zunder","type":"equipment"}},{"amount":1,"ruleelement":{"id":"papier1blatt","type":"equipment"}},{"amount":1,"ruleelement":{"id":"kohlestift","type":"equipment"}},{"amount":1,"ruleelement":{"id":"siegelwachs","type":"equipment"}},{"amount":1,"ruleelement":{"id":"tinte","type":"equipment"}},{"amount":1,"ruleelement":{"id":"federkiel","type":"equipment"}},{"amount":1,"ruleelement":{"id":"federmesser","type":"equipment"}},{"amount":1,"ruleelement":{"id":"kapuzenumhang","type":"equipment"}},{"amount":1,"ruleelement":{"id":"lederguertel","type":"equipment"}},{"amount":1,"ruleelement":{"id":"unterhosen","type":"equipment"}},{"amount":1,"ruleelement":{"id":"wollstruempfe","type":"equipment"}},{"amount":1,"ruleelement":{"id":"feile","type":"equipment"}},{"amount":1,"ruleelement":{"id":"proviant","type":"equipment"}}],"profession":"spitzel","professionname":"Spitzel","purse":"24945","race":"mittellaender","rangedweapons":[{"amount":2,"ruleelement":{"id":"wurfdolch","type":"rangedweapon"}}],"rules":{"focusrules":[{"choice":-1,"id":"liturgieerweiterungen"},{"choice":-1,"id":"predigtenundvisionen"},{"choice":-1,"id":"myranischesprachen"},{"choice":-1,"id":"kontaktebeiderheldenerschaffung"},{"choice":-1,"id":"spezielleverletzungenundbehandlung"},{"choice":-1,"id":"anbahnung"},{"choice":-1,"id":"uthurischesprachen"},{"choice":-1,"id":"liturgiestile"},{"choice":-1,"id":"sprachspezialisierungen"},{"choice":-1,"id":"trefferzonenregeln1"},{"choice":-1,"id":"zauberstile"},{"choice":-1,"id":"talismane"},{"choice":-1,"id":"zaubererweiterungen"},{"choice":-1,"id":"talentstile"},{"choice":-1,"id":"lebensstilregeln"},{"choice":-1,"id":"startkapitalnacherfahrung"},{"choice":-1,"id":"heldenundmeisterpersonen"},{"choice":-1,"id":"kontakteundverbindungen"},{"choice":-1,"id":"hoehereverteidigung"},{"id":"eigenschaftsobergrenze"},{"choice":-1,"id":"talentgruppenprobe"},{"choice":-1,"id":"merkmalsproben"},{"choice":-1,"id":"praegungen"},{"choice":-1,"id":"kampfstile"}],"rulebooks":["regelwerk"],"rulesystem":"dsa5aventurien","version":"3"},"sex":"male","shields":[],"skills":[{"id":"gaukeleien","level":4},{"id":"klettern","level":6},{"id":"koerperbeherrschung","level":6},{"id":"kraftakt","level":2},{"id":"schwimmen","level":4},{"id":"sinnesschaerfe","level":7},{"id":"taschendiebstahl","level":8},{"id":"verbergen","level":8},{"id":"betoeren","level":1},{"id":"gassenwissen","level":8},{"id":"menschenkenntnis","level":8},{"id":"ueberreden","level":7},{"id":"verkleiden","level":8},{"id":"willenskraft","level":6},{"id":"fesseln","level":6},{"id":"fischenangeln","level":1},{"id":"orientierung","level":4},{"id":"goetterkulte","level":2},{"id":"mechanik","level":5},{"id":"rechnen","level":3},{"id":"rechtskunde","level":3},{"id":"sagenlegenden","level":2},{"id":"booteschiffe","level":1},{"id":"handel","level":6},{"id":"heilkundegift","level":1},{"id":"malenzeichnen","level":8},{"id":"schloesserknacken","level":8}],"specialabilities":[{"id":"sprache","level":3,"variant":{"ruleelement":{"id":"garethi","type":"language"},"text":"Brabaci","type":"ruleelement"}},{"id":"fertigkeitsspezialisierung","variant":{"application":"sich Verstecken","skill":"verbergen","type":"skillspecialization"}},{"id":"dokumentenfaelscher"},{"id":"hehlerei"},{"id":"gelaendekunde","variant":{"name":"Gebirge","type":"string"}},{"id":"attackeverbessern"},{"id":"wachsamkeitverbessern"},{"id":"ausweichenverbessern"},{"id":"kreuzblock"},{"id":"verbessertesausweichen","level":1},{"id":"fallenentschaerfen"},{"id":"haltegriff"}],"uuid":"{271e0de0-eb6e-4855-9d2c-eafedc5c84ff}","weigth":"26800000","xp":{"startinglevel":"unerfahren"}},"_id":"3jo0jWYKgEFsQVdh"} diff --git a/functions/getSkill.js b/functions/getSkill.js new file mode 100644 index 0000000..ab20bcd --- /dev/null +++ b/functions/getSkill.js @@ -0,0 +1,20 @@ +const globals = require('../globals'); + +const getSkill = ({ Character: Character = [], args: args = [] } = {}) => { + let skill_entry = globals.Talente.find(skill => skill.id.toLowerCase() === args[0].toLowerCase()) || + globals.Talente.find(skill => skill.name.toLowerCase() === args[0].toLowerCase()); + + if (!skill_entry) { return; } + let Level = 0; // This is the minimum attributes value. + let cSkill = Character.skills.find(skill => skill.id === skill_entry.id) || {}; + if (cSkill) { + Level = cSkill.level || 0; + } + let Name = globals.Talente.find(skill => skill.id === skill_entry.id).name; + + return { + Name: Name, + Level: Level + }; +}; +module.exports = { getSkill };