Advertisement
unidev01

Untitled

Jul 12th, 2021
84
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. const usersMap  = new Map();
  2. const LIMIT = 5;
  3. const TIME = 7000;
  4. const DIFF = 5000;
  5.  
  6. client.on('message', async(message) => {
  7.   if(message.author.bot) return;
  8.   if(usersMap.has(message.author.id)) {
  9.     const userData = usersMap.get(message.author.id);
  10.     const { lastMessage, timer } = userData;
  11.     const difference = message.createdTimestamp = lastMessage.createdTimestamp;
  12.     let msgCount = userData.msgCount;
  13.     console.log(difference);
  14.  
  15.     if(difference > DIFF) {
  16.       clearTimeout(timer);
  17.       console.log('Cleared timeout!')
  18.       userData.msgCount = 1;
  19.       userData.lastMessage = message;
  20.       userData.timer = setTimeout(() => {
  21.         usersMap.delete(message.author.id);
  22.         console.log('Removed from map')
  23.       }, TIME);
  24.       usersMap.set(message.author.id, userData)
  25.     }
  26.     else {
  27.       ++msgCount;
  28.       if(parseInt(msgCount) === LIMIT) {
  29.         let muterole = message.guild.roles.cache.find(role => role.name === 'muted')
  30.         if(!muterole) {
  31.           try{
  32.             muterole = await message.guild.roles.create({
  33.               name : 'muted',
  34.               permission : []
  35.             })
  36.             message.guild.channels.cache.forEach(async (channel, id) => {
  37.               await channel.createOwerwrite(muterole, {
  38.                 SEND_MESSAGES : false,
  39.                 ADD_REACTIONS : false
  40.               })
  41.             })
  42.           } catch (e) {
  43.             console.log(e)
  44.           }
  45.         }
  46.         message.member.roles.add(muterole);
  47.         message.channel.send('You have been muted!');
  48.         setTimeout(() => {
  49.           message.member.roles.remove(muterole);
  50.           message.channel.send('You have been unmuted!')  
  51.         }, TIME);
  52.       } else {
  53.         userData.msgCount = msgCount;
  54.         usersMap.set(message.author.id, userData);
  55.       }
  56.     }
  57.   }
  58.   else {
  59.     let fn = setTimeout(() => {
  60.       usersMap.delete(message.author.id);
  61.       console.log('Removed from map.')
  62.     }, TIME);
  63.     usersMap.set(message.author.id, {
  64.       msgCount: 1,
  65.       lastMessage : message,
  66.       timer : fn
  67.     });
  68.   }
  69. })
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement