Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- const usersMap = new Map();
- const LIMIT = 5;
- const TIME = 7000;
- const DIFF = 5000;
- client.on('message', async(message) => {
- if(message.author.bot) return;
- if(usersMap.has(message.author.id)) {
- const userData = usersMap.get(message.author.id);
- const { lastMessage, timer } = userData;
- const difference = message.createdTimestamp = lastMessage.createdTimestamp;
- let msgCount = userData.msgCount;
- console.log(difference);
- if(difference > DIFF) {
- clearTimeout(timer);
- console.log('Cleared timeout!')
- userData.msgCount = 1;
- userData.lastMessage = message;
- userData.timer = setTimeout(() => {
- usersMap.delete(message.author.id);
- console.log('Removed from map')
- }, TIME);
- usersMap.set(message.author.id, userData)
- }
- else {
- ++msgCount;
- if(parseInt(msgCount) === LIMIT) {
- let muterole = message.guild.roles.cache.find(role => role.name === 'muted')
- if(!muterole) {
- try{
- muterole = await message.guild.roles.create({
- name : 'muted',
- permission : []
- })
- message.guild.channels.cache.forEach(async (channel, id) => {
- await channel.createOwerwrite(muterole, {
- SEND_MESSAGES : false,
- ADD_REACTIONS : false
- })
- })
- } catch (e) {
- console.log(e)
- }
- }
- message.member.roles.add(muterole);
- message.channel.send('You have been muted!');
- setTimeout(() => {
- message.member.roles.remove(muterole);
- message.channel.send('You have been unmuted!')
- }, TIME);
- } else {
- userData.msgCount = msgCount;
- usersMap.set(message.author.id, userData);
- }
- }
- }
- else {
- let fn = setTimeout(() => {
- usersMap.delete(message.author.id);
- console.log('Removed from map.')
- }, TIME);
- usersMap.set(message.author.id, {
- msgCount: 1,
- lastMessage : message,
- timer : fn
- });
- }
- })
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement