Fix commandes et aides
- corrections de commandes sans paramêtre pour proposer l'aide - correction de l'aide /tmrr (qui peut lancer des dés différents si les compendiums sont changés)
This commit is contained in:
parent
472cbb372e
commit
0b192d66c3
@ -102,7 +102,7 @@ export class Misc {
|
|||||||
}
|
}
|
||||||
|
|
||||||
static join(params, separator = '') {
|
static join(params, separator = '') {
|
||||||
return params.reduce((a, b) => a + separator + b);
|
return params?.reduce((a, b) => a + separator + b) ?? '';
|
||||||
}
|
}
|
||||||
|
|
||||||
static connectedGMOrUser(ownerId = undefined) {
|
static connectedGMOrUser(ownerId = undefined) {
|
||||||
|
@ -39,21 +39,22 @@ export class RdDCommands {
|
|||||||
rddCommands.registerCommand({ path: ["/meteo"], func: (content, msg, params) => rddCommands.getMeteo(msg, params), descr: "Propose une météo marine" });
|
rddCommands.registerCommand({ path: ["/meteo"], func: (content, msg, params) => rddCommands.getMeteo(msg, params), descr: "Propose une météo marine" });
|
||||||
rddCommands.registerCommand({ path: ["/nom"], func: (content, msg, params) => RdDNameGen.getName(msg, params), descr: "Génère un nom aléatoire" });
|
rddCommands.registerCommand({ path: ["/nom"], func: (content, msg, params) => RdDNameGen.getName(msg, params), descr: "Génère un nom aléatoire" });
|
||||||
|
|
||||||
|
rddCommands.registerCommand({
|
||||||
|
path: ["/tmr"], func: (content, msg, params) => rddCommands.findTMR(msg, params),
|
||||||
|
descr: `Cherche où se trouve une case des Terres médianes
|
||||||
|
<br><strong>/tmr sord</strong> indique que la cité Sordide est en D13
|
||||||
|
<br><strong>/tmr foret</strong> donne la liste des TMR dont le nom contient "foret" (donc, toutes les forêts)` });
|
||||||
rddCommands.registerCommand({
|
rddCommands.registerCommand({
|
||||||
path: ["/tmra"], func: (content, msg, params) => rddCommands.getTMRAleatoire(msg, params),
|
path: ["/tmra"], func: (content, msg, params) => rddCommands.getTMRAleatoire(msg, params),
|
||||||
descr: `Tire une case aléatoire des Terres médianes
|
descr: `Tire une case aléatoire des Terres médianes
|
||||||
<br><strong>/tmra forêt</strong> détermine une 'forêt' aléatoire
|
<br><strong>/tmra forêt</strong> détermine une 'forêt' aléatoire
|
||||||
<br><strong>/tmra</strong> détermine une case aléatoire dans toutes les TMR` });
|
<br><strong>/tmra</strong> détermine une case aléatoire dans toutes les TMR` });
|
||||||
rddCommands.registerCommand({
|
|
||||||
path: ["/tmr"], func: (content, msg, params) => rddCommands.findTMR(msg, params),
|
|
||||||
descr: `Cherche où se trouve une case des Terres médianes
|
|
||||||
<br><strong>/tmr? sordide</strong> indique que la cité Sordide est en D13
|
|
||||||
<br><strong>/tmr? foret</strong> donne la liste des TMR dont le nom contient "foret" (donc, toutes les forêts)` });
|
|
||||||
rddCommands.registerCommand({
|
rddCommands.registerCommand({
|
||||||
path: ["/tmrr"], func: (content, msg, params) => rddCommands.getRencontreTMR(params),
|
path: ["/tmrr"], func: (content, msg, params) => rddCommands.getRencontreTMR(params),
|
||||||
descr: `Détermine une rencontre dans un type de case
|
descr: `Détermine une rencontre dans un type de case
|
||||||
<br><strong>/tmrr foret</strong> lance un d100 et détermine la rencontre correspondante en 'forêt'
|
<br><strong>/tmrr forêt</strong> détermine une rencontre aléatoire en 'forêt'
|
||||||
<br><strong>/tmrr forêt 47</strong> détermine la rencontre en 'forêt' pour un jet de dé de 47`
|
<br><strong>/tmrr mauvaise</strong> détermine une mauvaise rencontre aléatoire
|
||||||
|
<br><strong>/tmrr for 47</strong> détermine la rencontre en 'forêt' pour un jet de dé de 47`
|
||||||
});
|
});
|
||||||
|
|
||||||
rddCommands.registerCommand({
|
rddCommands.registerCommand({
|
||||||
@ -84,7 +85,7 @@ export class RdDCommands {
|
|||||||
|
|
||||||
rddCommands.registerCommand({
|
rddCommands.registerCommand({
|
||||||
path: ["/payer"], func: (content, msg, params) => RdDUtility.afficherDemandePayer(params[0], params[1]),
|
path: ["/payer"], func: (content, msg, params) => RdDUtility.afficherDemandePayer(params[0], params[1]),
|
||||||
descr: `Permet de payer un montant. Exemples:
|
descr: `Demande aux joueurs de payer un montant. Exemples:
|
||||||
<br><strong>/payer 5s 10d</strong> permet d'envoyer un message pour payer 5 sols et 10 deniers
|
<br><strong>/payer 5s 10d</strong> permet d'envoyer un message pour payer 5 sols et 10 deniers
|
||||||
<br><strong>/payer 10d</strong> permet d'envoyer un message pour payer 10 deniers`
|
<br><strong>/payer 10d</strong> permet d'envoyer un message pour payer 10 deniers`
|
||||||
});
|
});
|
||||||
@ -180,7 +181,7 @@ export class RdDCommands {
|
|||||||
return this._processCommand(this.commandsTable, command, params, content, msg);
|
return this._processCommand(this.commandsTable, command, params, content, msg);
|
||||||
}
|
}
|
||||||
|
|
||||||
_processCommand(commandsTable, name, params, content = '', msg = {}, path = "") {
|
async _processCommand(commandsTable, name, params, content = '', msg = {}, path = "") {
|
||||||
let command = commandsTable[name];
|
let command = commandsTable[name];
|
||||||
path = path + name + " ";
|
path = path + name + " ";
|
||||||
if (command && command.subTable) {
|
if (command && command.subTable) {
|
||||||
@ -193,7 +194,7 @@ export class RdDCommands {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
if (command && command.func) {
|
if (command && command.func) {
|
||||||
const result = command.func(content, msg, params);
|
const result = await command.func(content, msg, params);
|
||||||
if (result == false) {
|
if (result == false) {
|
||||||
RdDCommands._chatAnswer(msg, command.descr);
|
RdDCommands._chatAnswer(msg, command.descr);
|
||||||
}
|
}
|
||||||
@ -250,9 +251,7 @@ export class RdDCommands {
|
|||||||
if (params.length == 1 || params.length == 2) {
|
if (params.length == 1 || params.length == 2) {
|
||||||
return TMRRencontres.rollRencontre(params[0], params[1])
|
return TMRRencontres.rollRencontre(params[0], params[1])
|
||||||
}
|
}
|
||||||
else {
|
return false;
|
||||||
return false;
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
/* -------------------------------------------- */
|
/* -------------------------------------------- */
|
||||||
@ -305,20 +304,20 @@ export class RdDCommands {
|
|||||||
show: { title: "Table de résolution" }
|
show: { title: "Table de résolution" }
|
||||||
};
|
};
|
||||||
await RdDResolutionTable.rollData(rollData);
|
await RdDResolutionTable.rollData(rollData);
|
||||||
RdDCommands._chatAnswer(msg, await RdDResolutionTable.buildRollDataHtml(rollData));
|
return RdDCommands._chatAnswer(msg, await RdDResolutionTable.buildRollDataHtml(rollData));
|
||||||
}
|
}
|
||||||
|
|
||||||
/* -------------------------------------------- */
|
/* -------------------------------------------- */
|
||||||
async rollDeDraconique(msg) {
|
async rollDeDraconique(msg) {
|
||||||
let ddr = await RdDDice.rollTotal("1dr + 7");
|
let ddr = await RdDDice.rollTotal("1dr + 7");
|
||||||
RdDCommands._chatAnswer(msg, `Lancer d'un Dé draconique: ${ddr}`);
|
return RdDCommands._chatAnswer(msg, `Lancer d'un Dé draconique: ${ddr}`);
|
||||||
}
|
}
|
||||||
|
|
||||||
async getTMRAleatoire(msg, params) {
|
async getTMRAleatoire(msg, params) {
|
||||||
if (params.length < 2) {
|
if (params.length < 2) {
|
||||||
let type = params[0];
|
let type = params[0];
|
||||||
const tmr = await TMRUtility.getTMRAleatoire(type ? (it => it.type == type) : (it => true));
|
const tmr = await TMRUtility.getTMRAleatoire(type ? (it => it.type == type) : (it => true));
|
||||||
RdDCommands._chatAnswer(msg, `Case aléatoire: ${tmr.coord} - ${tmr.label}`);
|
return RdDCommands._chatAnswer(msg, `Case aléatoire: ${tmr.coord} - ${tmr.label}`);
|
||||||
}
|
}
|
||||||
else {
|
else {
|
||||||
return false;
|
return false;
|
||||||
@ -326,12 +325,15 @@ export class RdDCommands {
|
|||||||
}
|
}
|
||||||
|
|
||||||
async findTMR(msg, params) {
|
async findTMR(msg, params) {
|
||||||
const search = Misc.join(params, ' ');
|
if (params && params.length > 0) {
|
||||||
const found = TMRUtility.findTMR(search);
|
const search = Misc.join(params, ' ');
|
||||||
if (found?.length > 0) {
|
const found = TMRUtility.findTMR(search);
|
||||||
return RdDCommands._chatAnswer(msg, `Les TMRs correspondant à '${search}' sont:` + Misc.join(found.map(it => `<br>${it.coord}: ${it.label}`)));
|
if (found?.length > 0) {
|
||||||
|
return RdDCommands._chatAnswer(msg, `Les TMRs correspondant à '${search}' sont:` + Misc.join(found.map(it => `<br>${it.coord}: ${it.label}`)));
|
||||||
|
}
|
||||||
|
return RdDCommands._chatAnswer(msg, 'Aucune TMR correspondant à ' + search);
|
||||||
}
|
}
|
||||||
return RdDCommands._chatAnswer(msg, 'Aucune TMR correspondant à ' + search);
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
/* -------------------------------------------- */
|
/* -------------------------------------------- */
|
||||||
@ -339,7 +341,7 @@ export class RdDCommands {
|
|||||||
if (params && (params.length == 1 || params.length == 2)) {
|
if (params && (params.length == 1 || params.length == 2)) {
|
||||||
let to = params.length == 1 ? Number(params[0]) : Number(params[1]);
|
let to = params.length == 1 ? Number(params[0]) : Number(params[1]);
|
||||||
let from = params.length == 1 ? to - 1 : Number(params[0]);
|
let from = params.length == 1 ? to - 1 : Number(params[0]);
|
||||||
RdDCommands._chatAnswer(msg, `Coût pour passer une compétence de ${from} à ${to}: ${RdDItemCompetence.getDeltaXp(from, to)}`);
|
return RdDCommands._chatAnswer(msg, `Coût pour passer une compétence de ${from} à ${to}: ${RdDItemCompetence.getDeltaXp(from, to)}`);
|
||||||
}
|
}
|
||||||
else {
|
else {
|
||||||
return false;
|
return false;
|
||||||
@ -350,7 +352,7 @@ export class RdDCommands {
|
|||||||
getCoutXpCarac(msg, params) {
|
getCoutXpCarac(msg, params) {
|
||||||
if (params && params.length == 1) {
|
if (params && params.length == 1) {
|
||||||
let to = Number(params[0]);
|
let to = Number(params[0]);
|
||||||
RdDCommands._chatAnswer(msg, `Coût pour passer une caractéristique de ${to - 1} à ${to}: ${RdDCarac.getCaracXp(to)}`);
|
return RdDCommands._chatAnswer(msg, `Coût pour passer une caractéristique de ${to - 1} à ${to}: ${RdDCarac.getCaracXp(to)}`);
|
||||||
}
|
}
|
||||||
else {
|
else {
|
||||||
return false;
|
return false;
|
||||||
|
@ -355,8 +355,7 @@ export class TMRUtility {
|
|||||||
}
|
}
|
||||||
|
|
||||||
static findTMR(search) {
|
static findTMR(search) {
|
||||||
const labelSearch = Grammar.toLowerCaseNoAccent(search)
|
return TMRUtility.filterTMR(it => Grammar.includesLowerCaseNoAccent(it.label, search) || it.coord == search);
|
||||||
return TMRUtility.filterTMR(it => Grammar.toLowerCaseNoAccent(it.label).match(labelSearch) || it.coord == search);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
static filterTMRCoord(filter) {
|
static filterTMRCoord(filter) {
|
||||||
|
Loading…
Reference in New Issue
Block a user