Spaces:
Runtime error
Runtime error
File size: 1,126 Bytes
c4be319 | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 | 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 };
|