-
Notifications
You must be signed in to change notification settings - Fork 1
/
config.example.js
116 lines (111 loc) · 3.83 KB
/
config.example.js
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
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
const config = {
useNewRelic: true,
ownerID: process.env.ownerID || 'owner user id here',
TOKEN: process.env.TOKEN || 'TOKEN',
MONGODB_URI: process.env.MONGODB_URI || 'mongodb://127.0.0.1:27017/SHIVA',
dashboard: {
oauthSecret: 'OAUTH SECRET',
callbackURL: 'http://localhost:8080/callback',
sessionSecret: 'SUPERSECRET',
domain: 'localhost',
port: 9865,
fullURL: 'http://localhost:9865'
},
defaultSettings: {
prefix: 'r!',
logChannel: 'logs',
modRole: 'Moderator',
adminRole: 'Administrator',
systemNotice: 'true',
usernameFilter: 'true',
muteRole: `STFU`,
leveling: 'true',
coins: 'true',
nsfwCommands: 'false',
autoModerator: 'false'
},
usernameFilerBlocklist: ['discord', 'promotion', 'youtube'],
admins: [],
support: [],
permLevels: [
// This is the lowest permisison level, this is for non-roled users.
{
level: 0,
name: 'User',
// Don't bother checking, just return true which allows them to execute any command their
// level allows them to.
check: () => true
},
// This is your permission level, the staff levels should always be above the rest of the roles.
{
level: 2,
// This is the name of the role.
name: 'Moderator',
// The following lines check the guild the message came from for the roles.
// Then it checks if the member that authored the message has the role.
// If they do return true, which will allow them to execute the command in question.
// If they don't then return false, which will prevent them from executing the command.
check: message => {
try {
const modRole = message.guild.roles.find(
r => r.name.toLowerCase() === message.settings.modRole.toLowerCase()
)
if (modRole && message.member.roles.has(modRole.id)) return true
} catch (e) {
return false
}
}
},
{
level: 3,
name: 'Administrator',
check: message => {
try {
const adminRole = message.guild.roles.find(
r =>
r.name.toLowerCase() === message.settings.adminRole.toLowerCase()
)
return adminRole && message.member.roles.has(adminRole.id)
} catch (e) {
return false
}
}
},
// This is the server owner.
{
level: 4,
name: 'Server Owner',
// Simple check, if the guild owner id matches the message author's ID, then it will return true.
// Otherwise it will return false.
check: message =>
message.channel.type === 'text'
? message.guild.ownerID === message.author.id
: false
},
// Bot Support is a special inbetween level that has the equivalent of server owner access
// to any server they joins, in order to help troubleshoot the bot on behalf of owners.
{
level: 8,
name: 'Bot Support',
// The check is by reading if an ID is part of this array. Yes, this means you need to
// change this and reboot the bot to add a support user. Make it better yourself!
check: message => config.support.includes(message.author.id)
},
// Bot Admin has some limited access like rebooting the bot or reloading commands.
{
level: 9,
name: 'Bot Admin',
check: message => config.admins.includes(message.author.id)
},
// This is the bot owner, this should be the highest permission level available.
// The reason this should be the highest level is because of dangerous commands such as eval
// or exec (if the owner has that).
{
level: 10,
name: 'Bot Owner',
// Another simple check, compares the message author id to the one stored in the config file.
check: message => message.client.config.ownerID === message.author.id
}
]
}
module.exports = config