-
Notifications
You must be signed in to change notification settings - Fork 1
Expand file tree
/
Copy pathbot.js
More file actions
93 lines (86 loc) · 3.49 KB
/
Copy pathbot.js
File metadata and controls
93 lines (86 loc) · 3.49 KB
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
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
// require('dotenv').config()
const { Client, MessageEmbed } = require('discord.js')
const moment = require('moment')
const client = new Client()
const TOKEN = process.env.TOKEN
var minAge = 10 // minutes
var enabled = true
var excluded = []
var channels = process.env.CHANNELS.split(',')
var log = process.env.LOG
client.login(TOKEN)
client.on('ready', () => {
console.log(`Logged in as ${client.user.tag}`)
})
client.on('message', message => {
if (channels.includes(message.channel.id)) {
var prefix = message.toString().split(' ')[0]
switch (prefix) {
case '~set':
var previousAge = minAge
minAge = parseInt(message.toString().split(' ')[1])
if (isNaN(minAge)) {
minAge = previousAge
client.channels.fetch(message.channel.id)
.then(channel => channel.send(`The current minimum age is ${minAge} minutes. You can modify it using \`~set {Number of minutes}\``))
.catch(console.error)
} else {
client.channels.fetch(message.channel.id)
.then(channel => channel.send(`The minimum age has been set to ${minAge} minutes`))
.catch(console.error)
}
break
case '~exclude':
var id = message.toString().split(' ')[1]
excluded.push(id)
client.channels.fetch(message.channel.id)
.then(channel => channel.send(`ID \`${id}\` has been excluded from autoban. You can remove the exclusion using \`~include ${id}\``))
.catch(console.error)
break
case '~include':
var id = message.toString().split(' ')[1]
excluded = excluded.filter(item => item != id)
client.channels.fetch(message.channel.id)
.then(channel => channel.send(`ID \`${id}\` has been included to autoban. You can add an exclusion using \`~exclude ${id}\``))
.catch(console.error)
break
case '~enable':
enabled = true
client.channels.fetch(message.channel.id)
.then(channel => channel.send(`Autoban enabled. You can disable it using \`~disable\``))
.catch(console.error)
break
case '~disable':
enabled = false
client.channels.fetch(message.channel.id)
.then(channel => channel.send(`Autoban disabled. You can enable it using \`~enable\``))
.catch(console.error)
break
case '~help':
const embed = new MessageEmbed()
.setTitle('Command list')
.setColor('c9c9ff')
.setDescription('__**Set minimum minutes**__\n\`~set 10\` to ban users created less than 10 minutes from the time of joining\n\n__**Exclude/Include user**__\n`~exclude 1234567890` to exclude user with ID \`1234567890\` from being autobanned\n\`~include 1234567890\` to remove exclusion for user with ID \`1234567890\`\n\n__**Enable/Disable**__\n\`~enable\` to enable banning and \`~disable\` to disable banning')
client.channels.fetch(message.channel.id)
.then(channel => channel.send(embed))
.catch(console.error)
break
}
}
})
client.on('guildMemberAdd', member => {
if (enabled && !excluded.includes(member.id)) {
var a = moment(Date.now())
var b = moment(member.user.createdAt)
var age = a.diff(b, 'minutes')
if (age < minAge) {
member
.kick(`New account (${age} minutes)`)
.then(() => {
client.channels.fetch(log)
.then(channel => channel.send(`Kicked ${member} (Account age: ${age} minutes)`))
.catch(console.error)
})
}
}
})