forked from redrobotsl/discord-sl-chat-relay
-
Notifications
You must be signed in to change notification settings - Fork 0
/
config.js
87 lines (77 loc) · 3.14 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
const { Intents } = require('discord.js');
/* config */
const config = {
// Bot Admins, level 9 by default. Array of user ID strings.
'admins': [],
// Bot Support, level 8 by default. Array of user ID strings
'support': [],
// To be implemented, fallback regions if the .env main region can't be reached.
fallbackRegions: new Map([
['regioname', 'uri'],
]),
// //// This maps inworld group UUIDs to Discord Channels.
relays: new Map([
["SL Group UUID", "Discord Channel ID"], // For Multiple relays you need a comma after each bracket but the last one
["SL Group UUID", "Discord Channel ID"], // For Multiple relays you need a comma after each bracket but the last one
["SL Group UUID", "Discord Channel ID"], // For Multiple relays you need a comma after each bracket but the last one
["SL Group UUID", "Discord Channel ID"], // For Multiple relays you need a comma after each bracket but the last one
["SL Group UUID", "Discord Channel ID"], // For Multiple relays you need a comma after each bracket but the last one
["SL Group UUID", "Discord Channel ID"] // For Multiple relays you need a comma after each bracket but the last one
]),
// Array of SL UUIDs to Ignore and not relay, say if you have a bot that regularly posts in group chat or something.
'ignored': ['49d6a705-de90-4458-b166-ccf56401053c'],
/*
* Intents the bot needs.
* By default GuideBot needs Guilds and Guild Messages to work.
*/
intents: [ Intents.FLAGS.GUILDS, Intents.FLAGS.GUILD_MESSAGES ],
// Partials your bot may need should go here, CHANNEL is required for DM's
partials: ['CHANNEL'],
// PERMISSION LEVEL DEFINITIONS.
permLevels: [
// This is the lowest permission level, this is for users without a role.
{ 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 the server owner.
{ level: 1,
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) => {
const serverOwner = message.author ?? message.user;
return message.guild?.ownerId === serverOwner.id;
},
},
// Bot Admin has some limited access like rebooting the bot or reloading commands.
{ level: 2,
name: 'Bot Admin',
check: (message) => {
const botAdmin = message.author ?? message.user;
return config.admins.includes(botAdmin.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).
* Updated to utilize the Teams type from the Application, pulls a list of "Owners" from it.
*/
{ level: 10,
name: 'Bot Owner',
// Another simple check, compares the message author id to a list of owners found in the bot application.
check: (message) => {
const owner = message.author ?? message.user;
return owner.id === process.env.OWNER;
},
},
],
};
module.exports = config;