cletus/bot/memory/chat.js
roberts 2a9f9159bd
All checks were successful
Deploy Cletus Bot / deploy (push) Successful in 26s
Massive Overhaul. Added state machine.
2025-05-10 12:24:59 -05:00

35 lines
No EOL
1.1 KiB
JavaScript

// memory/chat.js
const { saveMemory, getMemory, listMemory } = require('./index');
function logChatMessage(db, username, message) {
const label = `chat:${username.toLowerCase()}`;
getMemory(db, label, (err, existing) => {
const history = Array.isArray(existing) ? existing : [];
history.push({ message, timestamp: Date.now() });
// Keep the latest 20 messages
const trimmed = history.slice(-20);
saveMemory(db, label, trimmed);
});
}
function getLastMessageFrom(db, username, callback) {
const label = `chat:${username.toLowerCase()}`;
getMemory(db, label, (err, history) => {
if (err || !history || history.length === 0) return callback(null, null);
callback(null, history[history.length - 1]);
});
}
function listKnownPlayers(db, callback) {
listMemory(db, (err, entries) => {
if (err) return callback(err, []);
const players = entries
.filter(e => e.label.startsWith('chat:'))
.map(e => e.label.replace('chat:', ''));
callback(null, players);
});
}
module.exports = { logChatMessage, getLastMessageFrom, listKnownPlayers };