53 lines
		
	
	
		
			1.9 KiB
		
	
	
	
		
			JavaScript
		
	
	
	
	
	
			
		
		
	
	
			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
 | |
| }; 
 |