added random. Use Embed messages for Help and Skill list
This commit is contained in:
45
package-lock.json
generated
45
package-lock.json
generated
@ -37,6 +37,15 @@
|
||||
"resolved": "https://registry.npmjs.org/asynckit/-/asynckit-0.4.0.tgz",
|
||||
"integrity": "sha1-x57Zf380y48robyXkLzDZkdLS3k="
|
||||
},
|
||||
"babel-runtime": {
|
||||
"version": "6.26.0",
|
||||
"resolved": "https://registry.npmjs.org/babel-runtime/-/babel-runtime-6.26.0.tgz",
|
||||
"integrity": "sha1-llxwWGaOgrVde/4E/yM3vItWR/4=",
|
||||
"requires": {
|
||||
"core-js": "^2.4.0",
|
||||
"regenerator-runtime": "^0.11.0"
|
||||
}
|
||||
},
|
||||
"binary-search-tree": {
|
||||
"version": "0.2.5",
|
||||
"resolved": "https://registry.npmjs.org/binary-search-tree/-/binary-search-tree-0.2.5.tgz",
|
||||
@ -53,6 +62,11 @@
|
||||
"delayed-stream": "~1.0.0"
|
||||
}
|
||||
},
|
||||
"core-js": {
|
||||
"version": "2.6.12",
|
||||
"resolved": "https://registry.npmjs.org/core-js/-/core-js-2.6.12.tgz",
|
||||
"integrity": "sha512-Kb2wC0fvsWfQrgk8HU5lW6U/Lcs8+9aaYcy4ZFc6DDlo4nZ7n70dEgE5rtR0oG6ufKDUnrwfWL1mXR5ljDatrQ=="
|
||||
},
|
||||
"delayed-stream": {
|
||||
"version": "1.0.0",
|
||||
"resolved": "https://registry.npmjs.org/delayed-stream/-/delayed-stream-1.0.0.tgz",
|
||||
@ -154,11 +168,42 @@
|
||||
"resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-2.6.1.tgz",
|
||||
"integrity": "sha512-V4aYg89jEoVRxRb2fJdAg8FHvI7cEyYdVAh94HH0UIK8oJxUfkjlDQN9RbMx+bEjP7+ggMiFRprSti032Oipxw=="
|
||||
},
|
||||
"ow": {
|
||||
"version": "0.4.0",
|
||||
"resolved": "https://registry.npmjs.org/ow/-/ow-0.4.0.tgz",
|
||||
"integrity": "sha512-kJNzxUgVd6EF5LoGs+s2/etJPwjfRDLXPTCfEgV8At77sRrV+PSFA8lcoW2HF15Qd455mIR2Stee/2MzDiFBDA=="
|
||||
},
|
||||
"ow-lite": {
|
||||
"version": "0.0.2",
|
||||
"resolved": "https://registry.npmjs.org/ow-lite/-/ow-lite-0.0.2.tgz",
|
||||
"integrity": "sha1-359QDmdAtlkKHpqWVzDUmo61l9E="
|
||||
},
|
||||
"prism-media": {
|
||||
"version": "1.2.2",
|
||||
"resolved": "https://registry.npmjs.org/prism-media/-/prism-media-1.2.2.tgz",
|
||||
"integrity": "sha512-I+nkWY212lJ500jLe4tN9tWO7nRiBAVdMv76P9kffZjYhw20raMlW1HSSvS+MLXC9MmbNZCazMrAr+5jEEgTuw=="
|
||||
},
|
||||
"random": {
|
||||
"version": "2.2.0",
|
||||
"resolved": "https://registry.npmjs.org/random/-/random-2.2.0.tgz",
|
||||
"integrity": "sha512-4HBR4Xye4jJ41QBi6RfIaO1yKQpxVUZafQtdE6NvvjzirNlwWgsk3tkGLTbQtWUarF4ofZsUVEmWqB1TDQlkwA==",
|
||||
"requires": {
|
||||
"babel-runtime": "^6.26.0",
|
||||
"ow": "^0.4.0",
|
||||
"ow-lite": "^0.0.2",
|
||||
"seedrandom": "^3.0.5"
|
||||
}
|
||||
},
|
||||
"regenerator-runtime": {
|
||||
"version": "0.11.1",
|
||||
"resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.11.1.tgz",
|
||||
"integrity": "sha512-MguG95oij0fC3QV3URf4V2SDYGJhJnJGqvIIgdECeODCT98wSWDAJ94SSuVpYQUoTcGUIL6L4yNB7j1DFFHSBg=="
|
||||
},
|
||||
"seedrandom": {
|
||||
"version": "3.0.5",
|
||||
"resolved": "https://registry.npmjs.org/seedrandom/-/seedrandom-3.0.5.tgz",
|
||||
"integrity": "sha512-8OwmbklUNzwezjGInmZ+2clQmExQPvomqjL7LFqOYqtmuxRgQYqOD3mHaU+MvZn5FLUeVxVfQjwLZW/n/JFuqg=="
|
||||
},
|
||||
"setimmediate": {
|
||||
"version": "1.0.5",
|
||||
"resolved": "https://registry.npmjs.org/setimmediate/-/setimmediate-1.0.5.tgz",
|
||||
|
@ -13,7 +13,8 @@
|
||||
"discord.js": "^12.5.0",
|
||||
"dotenv": "^8.2.0",
|
||||
"nedb": "^1.8.0",
|
||||
"node-fetch": "^2.6.1"
|
||||
"node-fetch": "^2.6.1",
|
||||
"random": "^2.2.0"
|
||||
},
|
||||
"devDependencies": {
|
||||
"jest": "^26.6.3"
|
||||
|
@ -1,5 +1,7 @@
|
||||
const globals = require('../globals');
|
||||
const Random = require('random')
|
||||
module.exports = async (message, args, db) => {
|
||||
const coin = Math.floor(Math.random() * 2);
|
||||
Random.use(message.author.tag)
|
||||
const coin = Random.int(0,1)
|
||||
message.reply('Die Münze bleibt auf **' + globals.Coin[coin] + '** liegen.');
|
||||
};
|
@ -1,4 +1,5 @@
|
||||
const globals = require('../globals');
|
||||
const Random = require('random')
|
||||
module.exports = async (message, args, db) => {
|
||||
try {
|
||||
// user calls without arguments.
|
||||
@ -40,11 +41,12 @@ module.exports = async (message, args, db) => {
|
||||
else {
|
||||
level = args[0];
|
||||
}
|
||||
Random.use(message.author.tag)
|
||||
const countOccurrences = (arr, val) => arr.reduce((a, v) => (v === val ? a + 1 : a), 0);
|
||||
const dice = [];
|
||||
dice.push(Math.floor(Math.random() * 20) + 1);
|
||||
dice.push(Random.int(1,20));
|
||||
if (dice[0] == 1 || dice[0] == 20) {
|
||||
dice.push(Math.floor(Math.random() * 20) + 1);
|
||||
dice.push(Random.int(1,20));
|
||||
}
|
||||
// handle crits
|
||||
if (countOccurrences(dice, 1) == 2) {
|
||||
|
@ -1,38 +1,60 @@
|
||||
const cmdprefix = process.env.CMDPREFIX || '!';
|
||||
const Discord = require('discord.js')
|
||||
const cmdprefix = process.env.CMDPREFIX||'!'
|
||||
module.exports = async (message, args, db) => {
|
||||
message.author.send(
|
||||
'Hinweis: Werte in Klammern müssen nicht angegeben werden.\n\n' +
|
||||
cmdprefix + '**kopf**\n' +
|
||||
' Wirf eine Münze. Kopf oder Zahl?\n\n' +
|
||||
const Help = new Discord.MessageEmbed()
|
||||
.setColor('#0099ff')
|
||||
.setTitle('Hilfe')
|
||||
.setDescription('Das sind die Befehle, die du verwenden kannst.\n' +
|
||||
'Werte in Klammern müssen nicht mit angegeben werden.')
|
||||
|
||||
cmdprefix + '**roll __Anzahl__ W __Augenzahl__**\n' +
|
||||
' Lass die Würfel rollen. Benötigt wird die Anzahl sowie die Augenzahl auf den Würfeln.\n\n' +
|
||||
|
||||
cmdprefix + '**ep/ap __Eigenschaftswert__** \n' +
|
||||
' Du machst eine Eigenschaftsprobe / Attributprobe.\n' +
|
||||
' Du würfelst mit einem W20 auf deinen Eigenschaftswert.\n' +
|
||||
' Bei einer 1 oder 20 wird der Bestätigungswurf ausgeführt.\n\n' +
|
||||
|
||||
cmdprefix + '**tp/fp __Eigenschaftswert1__ __Eigenschaftswert2__ __Eigenschaftswert3__ (Fertigkeitswert) (+Eleichtert/-Erschwert)**\n' +
|
||||
' Du machst eine Fertigkeitsprobe.\n' +
|
||||
' Es werden drei Würfel auf deine Eigenschaftswerte geworfen. Hast du Boni auf dein Talent und/oder ' +
|
||||
'ist der Wurf erleichtert oder erschwert, wird dies in die Berechnung einbezogen.\n\n' +
|
||||
|
||||
cmdprefix + '**talents**\\n' +
|
||||
' Du erhälst eine Liste mit den Talentnamen, die du für ' + cmdprefix + 'talent/skill nutzen kannst.\n\n' +
|
||||
|
||||
'Folgendes funktioniert, wenn du mir deine `tda`-Datei zuschickst:\n\n' +
|
||||
|
||||
cmdprefix + '**ep/ap Klugheit** oder ' + cmdprefix + '**ep/ap FF**\n\n' +
|
||||
|
||||
cmdprefix + '**talent __Talentname__ (+Erleichtert/-Erschwert)**\n' +
|
||||
' siehe ' + cmdprefix + 'tp.\n' +
|
||||
' Hier musst du allerdings deine Eigenschaftswerte und Fertigkeitswerte nicht raussuchen.\n\n' +
|
||||
|
||||
cmdprefix + '**skill __Talentname__**\n' +
|
||||
' Ich sage dir deinen Fertigkeitswert im Talent.\n\n' +
|
||||
|
||||
cmdprefix + '**remove**\n' +
|
||||
' Ich lösche deinen Charakter aus meiner Datenbank. Schicke mir gerne erneut eine `tda`-Datei zu.'
|
||||
);
|
||||
.addFields({
|
||||
name: cmdprefix + 'kopf',
|
||||
value: 'Wirf eine Münze. Kopf oder Zahl?',
|
||||
inline: false
|
||||
}, {
|
||||
name: cmdprefix + 'roll <Anzahl> W <Augenzahl>',
|
||||
value: 'Lass die Würfel rollen. Benötigt wird die Anzahl sowie die Augenzahl auf den Würfeln.',
|
||||
inline: false
|
||||
}, {
|
||||
name: cmdprefix + 'ep/ap <Eigenschaftswert>',
|
||||
value: ' Du machst eine Eigenschaftsprobe / Attributprobe.\n' +
|
||||
' Du würfelst mit einem W20 auf deinen Eigenschaftswert.\n' +
|
||||
' Bei einer 1 oder 20 wird der Bestätigungswurf ausgeführt.',
|
||||
inline: false
|
||||
}, {
|
||||
name: cmdprefix + 'tp/fp <Eigenschaftswert1> <Eigenschaftswert2> <Eigenschaftswert3> (Fertigkeitswert) (+Erleichtert/-Erschwert)',
|
||||
value: ' Du machst eine Fertigkeitsprobe.\n' +
|
||||
' Es werden drei Würfel auf deine Eigenschaftswerte geworfen. Hast du Boni auf dein Talent und/oder' +
|
||||
' ist der Wurf erleichtert oder erschwert, wird dies in die Berechnung einbezogen.',
|
||||
inline: false
|
||||
}, {
|
||||
name: cmdprefix + 'talents',
|
||||
value: ' Du erhälst eine Liste mit den Talentnamen, die du für ' +
|
||||
cmdprefix + 'talent/' + cmdprefix + 'skill nutzen kannst.',
|
||||
inline: false
|
||||
}, {
|
||||
name: '\u200B',
|
||||
value: '\u200B'
|
||||
}, {
|
||||
name: '\u200B',
|
||||
value: 'Wenn du mir deine .tdc Datei zusendest, kannst du folgendes nutzen:'
|
||||
}, {
|
||||
name: cmdprefix + 'ep/ap [Klugheit] oder ' + cmdprefix + 'ep/ap [FF]',
|
||||
value: 'siehe oben. Du brauchst deinen Wert nicht wissen.',
|
||||
inline: false
|
||||
}, {
|
||||
name: cmdprefix + 'talent <Talentname> (+Erleichtert/-Erschwert)',
|
||||
value: 'siehe tp. Allerdings musst du deine Werte nicht wissen.',
|
||||
inline: false
|
||||
}, {
|
||||
name: cmdprefix + 'skill <Talentname>',
|
||||
value: 'Zeigt dir deinen Fertigkeitswert im jeweiligen Talent.',
|
||||
inline: false
|
||||
}, {
|
||||
name: cmdprefix + 'remove',
|
||||
value: 'Löscht deinen Charakter aus der Datenbank. Sinnvoll, wenn du mir eine neue zusenden möchtest.',
|
||||
inline: false
|
||||
}
|
||||
)
|
||||
message.author.send(Help);
|
||||
};
|
@ -1,19 +1,21 @@
|
||||
// eslint-disable-next-line no-unused-vars
|
||||
const globals = require('../globals')
|
||||
const Random = require('random')
|
||||
module.exports = async (message, args, db) => {
|
||||
Random.use(message.author.tag)
|
||||
let msg;
|
||||
let arguments = args.join('');
|
||||
const regex = /\s?[DdWw]\s?/;
|
||||
arguments = arguments.split(regex);
|
||||
arguments = arguments.split(globals.DiceRegex);
|
||||
|
||||
if (arguments.length == 2) {
|
||||
let numberOfDice = arguments[0];
|
||||
const diceValues = arguments[1];
|
||||
const roll = [];
|
||||
for (let i = 0; i < numberOfDice; i++) {
|
||||
const a = Math.floor(Math.random() * diceValues) + 1;
|
||||
const a = Random.int(1,diceValues);
|
||||
roll.push(a);
|
||||
}
|
||||
if(numberOfDice == 1) { let = 'n';}
|
||||
if(numberOfDice == 1) { msg = 'n';}
|
||||
else { msg = ' ' + numberOfDice;}
|
||||
message.reply('Das sind deine Ergebnisse für deine' + msg + ' ' + diceValues + '-seitigen 🎲: ' + roll.join(', ') + '.');
|
||||
}
|
||||
|
@ -20,17 +20,4 @@ module.exports = async (message, args, db) => {
|
||||
catch (e) {
|
||||
throw e;
|
||||
}
|
||||
|
||||
|
||||
/* db.query('SELECT * FROM dsageld WHERE userName = ' + '"' + message.author.tag + '"', function(err, row) { //the row is the user's data
|
||||
if(row && err) {
|
||||
message.reply('Es gab einen Fehler.');
|
||||
}
|
||||
if(row.length < 1) { //if the user is not in the database
|
||||
message.reply('Es existiert kein Eintrag für dich füge ihn mit !create hinzu.');
|
||||
} else if(row.length >= 1){
|
||||
message.reply('du hast: ' + row[0].GD + ' GD, ' + row[0].ST + ' ST, ' + row[0].BH + ' BH, ' + row[0].EK + ' EK.' + row[0].LP + ' LeP.');
|
||||
}
|
||||
}
|
||||
);*/
|
||||
};
|
@ -1,4 +1,5 @@
|
||||
const globals = require('../globals');
|
||||
const Random = require('random')
|
||||
module.exports = async (message, args, db) => {
|
||||
try {
|
||||
db.find({
|
||||
@ -6,7 +7,14 @@ module.exports = async (message, args, db) => {
|
||||
}, function(err, docs) {
|
||||
if (!docs.length > 0) {message.reply('Sorry, Für dich habe ich keinen Eintrag 😥');}
|
||||
else {
|
||||
if (!args) message.reply('Sorry, du musst mir schon etwas zum prüfen geben.');
|
||||
|
||||
if (!args){
|
||||
message.reply('Sorry, du musst mir schon etwas zum prüfen geben.');
|
||||
return
|
||||
}
|
||||
|
||||
Random.use(message.author.tag)
|
||||
|
||||
if (args[1]) {
|
||||
var erschwernis = parseInt(args[1]);
|
||||
}
|
||||
@ -47,13 +55,9 @@ module.exports = async (message, args, db) => {
|
||||
if (docs[0].character.attributes[val].id == kuerzel.id) values.push(docs[0].character.attributes[val].level);
|
||||
}
|
||||
}
|
||||
// message.reply(`Du musst mit ${result.values.join(", ")} würfeln. Die werte sind: ${values.join(", ")}. Dein Bonus auf ${result.name}: ${bonus}`)
|
||||
|
||||
|
||||
// roll dice.
|
||||
for (i = 1; i <= 3; i++) {
|
||||
const a = Math.floor(Math.random() * 20 + 1);
|
||||
roll.push(a);
|
||||
roll.push(Random.int(1,20));
|
||||
}
|
||||
// compare results
|
||||
for (i = 0; i < 3; i++) {
|
||||
@ -89,8 +93,6 @@ module.exports = async (message, args, db) => {
|
||||
'Das waren deine 🎲: ' + roll.join(', ') + '. Damit hast du ' + ok + '/3 Proben bestanden. Dein Bonus: ' + bonus + '/' + bonus_orig + '.',
|
||||
);
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
});
|
||||
}
|
||||
|
@ -1,10 +1,12 @@
|
||||
// eslint-disable-next-line no-unused-vars
|
||||
const Random = require('random')
|
||||
module.exports = async (message, args, db) => {
|
||||
if (args.length < 3) {
|
||||
message.reply('Der Talentwurf funktioniert so:\n' +
|
||||
'!tp Eigenschaftswert1 Eigenschaftswert2 Eigenschaftswert3 [Bonus] [Erschwernis]');
|
||||
}
|
||||
else {
|
||||
Random.use(message.author.tag)
|
||||
const roll = [];
|
||||
if (args[3]) {
|
||||
var bonus = parseInt(args[3]);
|
||||
@ -19,8 +21,7 @@ module.exports = async (message, args, db) => {
|
||||
erschwernis = 0;
|
||||
}
|
||||
for (i = 1; i <= 3; i++) {
|
||||
const a = Math.floor(Math.random() * 20 + 1);
|
||||
roll.push(a);
|
||||
roll.push(Random.int(1,20));
|
||||
}
|
||||
let ok = 0;
|
||||
let patzer = 0;
|
||||
|
@ -1,9 +1,8 @@
|
||||
const money = [{
|
||||
'GD': 'Golddukaten',
|
||||
'ST': 'Silbertaler',
|
||||
|
||||
|
||||
}];
|
||||
const DiceRegex = /\s?[DdWw]\s?/;
|
||||
const Coin = ['Kopf', 'Zahl'];
|
||||
const Werte = [
|
||||
{ id: 'mut', kuerzel: 'MU', name: 'Mut' },
|
||||
@ -86,4 +85,4 @@ const Talente = [
|
||||
{ id: 'stoffbearbeitung', name: 'Stoffbearbeitung', values: ['KL', 'FF', 'FF'], categoryid: 4 },
|
||||
|
||||
];
|
||||
module.exports = { Werte, Talente, Coin, TalentKategorien };
|
||||
module.exports = { Werte, Talente, Coin, TalentKategorien, DiceRegex };
|
@ -1,7 +1,6 @@
|
||||
require('dotenv').config();
|
||||
const Discord = require('discord.js');
|
||||
const client = new Discord.Client();
|
||||
const SERVERID = process.env.SERVERID;
|
||||
const commandHandler = require('./commands');
|
||||
|
||||
client.on('message', commandHandler);
|
||||
@ -23,4 +22,4 @@ client.on('disconnect', message => {
|
||||
|
||||
client.on('reconnecting', message => {
|
||||
console.log('User Reconnecting');
|
||||
});
|
||||
});
|
||||
|
Reference in New Issue
Block a user