-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathconfig.js
127 lines (110 loc) · 5.15 KB
/
config.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
117
118
119
120
121
122
123
124
125
126
127
/**
* Config setup for client.config
*/
const config = {
// Bot Owner, level 10 by default. A User ID. Should never be anything else than the bot owner's ID.
"ownerID": process.env.USER_ID,
// Bot Admins, level 9 by default. Array of user ID strings.
"admins": [],
// Bot Support, level 8 by default. Array of user ID strings
"support": [],
// Your Bot's Token. Available on https://discord.com/developers/applications/me
"token": process.env.TOKEN,
// Your Bot's database connection
"redisHost": process.env.REDIS_HOST,
// Your Bot's database authentification
"redisPass": process.env.REDIS_PASS,
// Intents the bot needs.
// By default GuideBot needs Guilds, Guild Messages and Direct Messages to work.
// For join messages to work you need Guild Members, which is privileged and requires extra setup.
// For more info about intents see the README.
intents: ["GUILDS","GUILD_MESSAGES","DIRECT_MESSAGES","GUILD_MEMBERS","GUILD_PRESENCES"],
// Default per-server settings. New guilds have these settings.
// DO NOT LEAVE ANY OF THESE BLANK, AS YOU WILL NOT BE ABLE TO UPDATE THEM
// VIA COMMANDS IN THE GUILD.
"defaultSettings" : {
"prefix": "!",
"testPrefix": "~",
"modLogChannel": "mod-log",
"modRole": "Moderator",
"adminRole": "Administrator",
"systemNotice": "true", // This gives a notice when a user tries to run a command that they do not have permission to use.
"welcomeChannel": "welcome",
"welcomeMessage": "Say hello to {{user}}, everyone! We all need a warm welcome sometimes :D",
"welcomeEnabled": "true"
},
// PERMISSION LEVEL DEFINITIONS.
permLevels: [
// This is the lowest permisison level, this is for non-roled users.
{ level: 0,
name: "User",
description: "This is the lowest permisison level, this is for non-roled users",
// 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",
description: "Staff level permissions, just above the lowly User",
// 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.cache.find(r => r.name.toLowerCase() === message.settings.modRole.toLowerCase());
if (modRole && message.member.roles.cache.has(modRole.id)) return true;
} catch (e) {
return false;
}
}
},
{ level: 3,
name: "Administrator",
description: "This is the server/guild administrator",
check: (message) => {
try {
const adminRole = message.guild.roles.cache.find(r => r.name.toLowerCase() === message.settings.adminRole.toLowerCase());
return (adminRole && message.member.roles.cache.has(adminRole.id));
} catch (e) {
return false;
}
}
},
// This is the server owner.
{ level: 4,
name: "Server Owner",
description: "Owner of the server",
// 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 ? true : false) : 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",
description: "Inbetween level that has the equivalent of server owner access. Can help troubleshoot the bot on behalf of owners",
// 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",
description: "Bot Admin has some limited access like rebooting the bot or reloading commands",
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",
description: "Highest permission level available, can access all commands",
// 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;