Added missing timeout commands and help.
This commit is contained in:
+26
-1
@@ -7,11 +7,35 @@ const timers = require('timers/promises');
|
||||
const riddles = require('../../assets/riddles.json');
|
||||
const style = require('../utils/style');
|
||||
|
||||
const settings = { ...config.riddle };
|
||||
const open = new Map();
|
||||
|
||||
const emojis = ['😆', '🤣', '😂', '😅', '🤪', '😛', '😝', '🙃', '🥲', '🤭', '😏', '🥴', '💀', '🤦'];
|
||||
|
||||
function setTimeout(timeout, context) {
|
||||
if (!timeout) {
|
||||
context.sendMessage(`Timeout is set to ${style.bold(settings.timeout)}`, context.room.id);
|
||||
return;
|
||||
}
|
||||
|
||||
const parsedTimeout = Number(timeout);
|
||||
|
||||
if (Number.isNaN(parsedTimeout) || parsedTimeout < 10 || parsedTimeout > 300) {
|
||||
context.sendMessage('Timeout must be a number between 10 and 300', context.room.id);
|
||||
return;
|
||||
}
|
||||
|
||||
settings.timeout = parsedTimeout;
|
||||
|
||||
context.sendMessage(`Timeout set to ${style.bold(settings.timeout)} by ${context.user.prefixedUsername}`, context.room.id);
|
||||
}
|
||||
|
||||
async function onCommand(args, context) {
|
||||
if (context.subcommand === 'timeout') {
|
||||
setTimeout(args[0], context);
|
||||
return;
|
||||
}
|
||||
|
||||
if (open.has(context.room.id)) {
|
||||
context.sendMessage(open.get(context.room.id).riddle, context.room.id);
|
||||
return;
|
||||
@@ -26,7 +50,7 @@ async function onCommand(args, context) {
|
||||
context.logger.info(`Riddle asked "${riddle.riddle}" with answer: ${riddle.answers[0]}`);
|
||||
|
||||
try {
|
||||
await timers.setTimeout(config.riddle.timeout * 1000, null, { signal: ac.signal });
|
||||
await timers.setTimeout(settings.timeout * 1000, null, { signal: ac.signal });
|
||||
|
||||
open.delete(context.room.id);
|
||||
context.sendMessage(`No one guessed the riddle: ${style.bold(riddle.fullAnswer)}! ${emojis[crypto.randomInt(0, emojis.length)]}`, context.room.id);
|
||||
@@ -54,6 +78,7 @@ function onMessage(message, context) {
|
||||
}
|
||||
|
||||
module.exports = {
|
||||
help: `Solve the riddle before time runs out! Ask for one with ${config.prefix}riddle, and answer by typing it in the chat. Change the time limit with ${config.prefix}riddle:timeout [10-300].`,
|
||||
onCommand,
|
||||
onMessage,
|
||||
};
|
||||
|
||||
Reference in New Issue
Block a user