2025-04-11 06:48:39 -04:00

53 lines
1.9 KiB
JavaScript

const getHumanizedDeleteDelay = (baseDelay = 5000) => {
const jitter = Math.floor(Math.random() * 2000) - 1000;
return Math.max(1500, baseDelay + jitter);
};
const sendTempMessage = async (channel, content, baseDeleteDelay = 5000) => {
if (channel.id === 'console') {
return channel.send(content);
}
try {
const deleteDelay = getHumanizedDeleteDelay(baseDeleteDelay);
const sentMessage = await channel.send(content);
sentMessage.scheduledForDeletion = true;
console.log(`[MESSAGE] Sending temp message in ${channel.id}, will delete in ${deleteDelay}ms`);
setTimeout(() => {
if (Math.random() < 0.1) {
const extraDelay = Math.floor(Math.random() * 3000) + 1000;
console.log(`[MESSAGE] Adding ${extraDelay}ms extra delay before deletion`);
setTimeout(() => sentMessage.delete().catch(err => console.error('[MESSAGE] Delete error:', err)), extraDelay);
} else {
sentMessage.delete().catch(err => console.error('[MESSAGE] Delete error:', err));
}
}, deleteDelay);
return sentMessage;
} catch (error) {
console.error('[MESSAGE] Error sending temporary message:', error);
return null;
}
};
const sendCommandResponse = async (message, content, baseDeleteDelay = 5000, deleteOriginal = true) => {
if (deleteOriginal) {
try {
const cmdDeleteDelay = Math.floor(Math.random() * 1000) + 500;
setTimeout(() => message.delete().catch(() => {}), cmdDeleteDelay);
} catch (error) {
console.error('[MESSAGE] Error deleting original command:', error);
}
}
return await sendTempMessage(message.channel, content, baseDeleteDelay);
};
module.exports = {
getHumanizedDeleteDelay,
sendTempMessage,
sendCommandResponse
};