Added HTML colors for SChat. Adapted Letters game for SChat.
This commit is contained in:
parent
70ad422dfa
commit
e49429784e
|
@ -3,23 +3,35 @@
|
||||||
module.exports = {
|
module.exports = {
|
||||||
platform: 'schat',
|
platform: 'schat',
|
||||||
user: {
|
user: {
|
||||||
|
id: 'aisha',
|
||||||
nick: 'aisha',
|
nick: 'aisha',
|
||||||
username: 'Aisha',
|
username: 'Aisha',
|
||||||
realName: 'Aisha',
|
realName: 'Aisha',
|
||||||
},
|
},
|
||||||
style: {
|
style: {
|
||||||
color: 'var(--message-56)',
|
// color: 'var(--message-56)',
|
||||||
},
|
},
|
||||||
operators: ['admin'],
|
operators: ['admin'],
|
||||||
server: 'irc.libera.chat',
|
server: 'irc.libera.chat',
|
||||||
port: 6697,
|
port: 6697,
|
||||||
|
socket: 'ws://127.0.0.1:3000/socket',
|
||||||
|
api: 'http://127.0.0.1:3000/api',
|
||||||
reconnectDelay: 10, // seconds
|
reconnectDelay: 10, // seconds
|
||||||
prefix: '~',
|
prefix: '~',
|
||||||
labels: true,
|
labels: true,
|
||||||
greeting: 'Hi, I am aisha, your game host!',
|
greeting: 'Hi, I am aisha, your game host!',
|
||||||
usernamePrefix: '@',
|
usernamePrefix: '@',
|
||||||
channels: ['##pendulum'],
|
channels: ['GamesNight'],
|
||||||
games: ['mash', 'trivia', 'duck', 'ping', 'say', 'kill'],
|
games: ['mash', 'trivia', 'letters', 'duck', 'ping', 'say', 'kill'],
|
||||||
|
schatColors: {
|
||||||
|
red: 'var(--message-3)',
|
||||||
|
green: 'var(--message-23)',
|
||||||
|
yellow: 'var(--message-12)',
|
||||||
|
pink: 'var(--message-57)',
|
||||||
|
cyan: 'var(--message-31)',
|
||||||
|
grey: 'var(--shadow)',
|
||||||
|
// grey: 'var(--message-59)',
|
||||||
|
},
|
||||||
trivia: {
|
trivia: {
|
||||||
mode: 'first', // first or timeout
|
mode: 'first', // first or timeout
|
||||||
rounds: 10,
|
rounds: 10,
|
||||||
|
|
|
@ -22,7 +22,7 @@ const games = new Map();
|
||||||
function getBoard(context) {
|
function getBoard(context) {
|
||||||
const game = games.get(context.room.id);
|
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) {
|
function countLetters(word) {
|
||||||
|
@ -158,6 +158,10 @@ function onCommand(args, context) {
|
||||||
function onMessage(message, context) {
|
function onMessage(message, context) {
|
||||||
const game = games.get(context.room.id);
|
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') {
|
if (game?.state === 'letters') {
|
||||||
const multi = message.body.match(/\b[vc]{2,}\b/i)?.[0];
|
const multi = message.body.match(/\b[vc]{2,}\b/i)?.[0];
|
||||||
|
|
||||||
|
|
|
@ -11,6 +11,20 @@ function schatItalic(text) {
|
||||||
return `*${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) {
|
function bypass(text) {
|
||||||
return text;
|
return text;
|
||||||
}
|
}
|
||||||
|
@ -22,8 +36,9 @@ module.exports = (() => {
|
||||||
|
|
||||||
if (config.platform === 'schat') {
|
if (config.platform === 'schat') {
|
||||||
const methods = {
|
const methods = {
|
||||||
bold: schatBold,
|
bold: curate(schatBold),
|
||||||
italic: schatItalic,
|
italic: curate(schatItalic),
|
||||||
|
...Object.fromEntries(Object.entries(config.schatColors).map(([color, value]) => [color, curate((text) => schatColor(text, value))])),
|
||||||
};
|
};
|
||||||
|
|
||||||
const handler = {
|
const handler = {
|
||||||
|
|
Loading…
Reference in New Issue