Adapted say module to IRC. Made greeting configurable. Fixed Trivia end-of-game leaderboard breaking.

This commit is contained in:
ThePendulum 2022-10-18 00:08:17 +02:00
parent 4ce3f77c63
commit 809102f2fe
4 changed files with 25 additions and 10 deletions

View File

@ -12,6 +12,7 @@ module.exports = {
port: 6697, port: 6697,
reconnectDelay: 10, // seconds reconnectDelay: 10, // seconds
prefix: '~', prefix: '~',
greeting: 'Hi, I am aisha, your game host!',
usernamePrefix: '@', usernamePrefix: '@',
channels: ['##pendulum'], channels: ['##pendulum'],
games: ['mash', 'trivia', 'duck', 'ping', 'say', 'kill'], games: ['mash', 'trivia', 'duck', 'ping', 'say', 'kill'],

View File

@ -7,17 +7,28 @@ function onCommand(args, context) {
return; return;
} }
const message = context.room ? args.join(' ') : args.slice(1).join(' '); if (config.platform === 'irc' && /^#+/.test(args[0])) {
const roomName = args[0].replace(/#+/, ''); context.sendMessage(args.slice(1).join(' '), args[0], { label: false });
const room = context.room || Object.values(context.bot.rooms).find((botRoom) => botRoom.name === roomName);
console.log(message, roomName, room);
if (!room) {
return; return;
} }
context.sendMessage(message, room.id, { label: false }); if (config.platform === 'irc' && context.room.id === config.user.nick) {
// if the room ID is the bot's own nickname, it's a PM and we should reply to the sender
context.sendMessage(args.join(' '), context.user.id, { label: false });
}
if (config.platform === 'schat' && !context.room) {
const roomName = args[0].replace(/#+/, '');
const room = Object.values(context.bot.rooms).find((botRoom) => botRoom.name === roomName);
if (room) {
context.sendMessage(args.slice(1).join(' '), roomName, { label: false });
}
return;
}
context.sendMessage(args.join(' '), context.room.id, { label: false });
} }
module.exports = { module.exports = {

View File

@ -127,7 +127,7 @@ async function playRound(context, round = 0) {
await timers.setTimeout(2000); await timers.setTimeout(2000);
context.sendMessage(`That's the end of the game! Best players: ${getLeaders()}`, context.room.id); context.sendMessage(`That's the end of the game! Best players: ${getLeaders(context)}`, context.room.id);
games.delete(context.room.id); games.delete(context.room.id);
} }

View File

@ -185,7 +185,10 @@ async function init() {
logger.info(`Joining ${channel}`); logger.info(`Joining ${channel}`);
client.join(channel, () => logger.info(`Joined ${channel}`)); client.join(channel, () => logger.info(`Joined ${channel}`));
client.say(channel, `Hi, I am ${config.user.username}, your game host!`);
if (config.greeting) {
client.say(channel, config.greeting);
}
}); });
client.addListener('message', (from, to, body) => onMessage({ client.addListener('message', (from, to, body) => onMessage({