const client = require('../bot/index'); // QUEUE SYSTEM FOR DISCORD RATE LIMITS (Max 1 msg per 500ms) const messageQueue = []; let isProcessingQueue = false; setInterval(async () => { if (messageQueue.length === 0 || isProcessingQueue) return; isProcessingQueue = true; const task = messageQueue.shift(); try { const user = await client.users.fetch(task.discordId); if (user) { await user.send(task.message); } else { console.log(`[Notification] Could not find Discord User ${task.discordId}`); } } catch (error) { console.error(`[Notification] Failed to send DM to ${task.discordId}:`, error.message); } isProcessingQueue = false; }, 500); // 500ms safe interval /** * Pushes a Direct Message into the secure Discord Throttle Queue. * @param {string} discordId - The user's Discord ID. * @param {string} message - The message content. */ async function sendNotification(discordId, message) { messageQueue.push({ discordId, message }); } module.exports = { sendNotification };