Added HTML colors for SChat. Adapted Letters game for SChat.

This commit is contained in:
2022-10-21 22:11:31 +02:00
parent 70ad422dfa
commit e49429784e
3 changed files with 37 additions and 6 deletions

View File

@@ -22,7 +22,7 @@ const games = new Map();
function getBoard(context) {
const game = games.get(context.room.id);
return `${style.grey('[')} ${game.word.split('').concat(Array.from({ length: config.letters.length - game.word.length })).map((letter) => letter?.toUpperCase() || ' ').join(style.grey(' | '))} ${style.grey(']')}`;
return `${style.grey('[')}${game.word.split('').concat(Array.from({ length: config.letters.length - game.word.length })).map((letter) => style.bold(letter?.toUpperCase()) || '').join(style.grey('|'))}${style.grey(']')}`; // eslint-disable-line no-irregular-whitespace
}
function countLetters(word) {
@@ -158,6 +158,10 @@ function onCommand(args, context) {
function onMessage(message, context) {
const game = games.get(context.room.id);
if (message.type !== 'message' || context.user?.id === config.user?.id) { // stop listening to yourself
return;
}
if (game?.state === 'letters') {
const multi = message.body.match(/\b[vc]{2,}\b/i)?.[0];

View File

@@ -11,6 +11,20 @@ function schatItalic(text) {
return `*${text}*`;
}
function schatColor(text, color) {
return `<span style="color: ${color}">${text}</span>`;
}
function curate(fn) {
return (text) => {
if (text) {
return fn(text);
}
return '';
};
}
function bypass(text) {
return text;
}
@@ -22,8 +36,9 @@ module.exports = (() => {
if (config.platform === 'schat') {
const methods = {
bold: schatBold,
italic: schatItalic,
bold: curate(schatBold),
italic: curate(schatItalic),
...Object.fromEntries(Object.entries(config.schatColors).map(([color, value]) => [color, curate((text) => schatColor(text, value))])),
};
const handler = {