// 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 };