This repository has been archived by the owner on Oct 15, 2019. It is now read-only.
-
-
Notifications
You must be signed in to change notification settings - Fork 6
/
config.example.js
140 lines (140 loc) · 7.09 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
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
module.exports = {
admins: ["YOUR_ID", "SOMEONE_TRUSTABLE", "A_SECOND_TRUSTABLE_PERSON_IF_YOU_KNOW_ANY_IDK"],
prefix: "felix",
codename: 'Felix',
//User Settings > Appearance > Enable Developer Mode > Right click on your username and the click "Copy ID". There, you got your Discord ID
ownerID: "YOUR_ID",
//Token is needed
token: "baguette",
database: {
//Unless the database is on another server, the host should stay like this
host: "127.0.0.1",
//The port should be the client driver port, not the administrative HTTP connection nor the intracluster one
port: 28015,
//You shouldn't need to change this unless you run multiple instances of the bot and ony one instance of RethinkDB; In that case, you can use different databases
database: "data",
//The username to connect as
user: "admin",
//If a password is set, the password to connect with (in case the server has a public address and the RethinkDB instance is set to not only be available locally)
password: ""
},
redis: {
//Whether Redis should be used, unless ioredis and redis are installed and redis is running, this should stay false
enabled: false,
//The port of the Redis server
port: 6379,
//The host of the redis server
host: '127.0.0.1',
//The family, 4 for IPv4 or 6 for IPv6
family: 4,
//The database to use
db: 0,
//The password if one is set in the redis server config
password: ''
},
requestHandler: {
host: 'localhost',
port: '9850'
},
proxy: {
host: '127.0.0.1',
port: '8080',
auth: ''
},
//Additional API keys that the bot use for commands for example
apiKeys: {
sentryDSN: "",
sentryAPI: "",
weebSH: "",
datadogAPI: ""
},
//This define whether to only disable or to also remove the commands which requires an API key/package that is missing, you may want to set that to true if you don't plan to use these commands
removeDisabledCommands: false,
botLists: {
terminal: {
token: "",
url: ""
}
},
embedColor: {
generic: 0x6398e6
},
//Some customizable bot features options, purpose is to be able to quickly change critical values without having to do so in 100 files
options: {
embedColor: 0x7a0099,
dailyCoins: 2500,
dailyCooldown: 86400000,
loveCooldown: 86400000,
//Defines how often in milliseconds to update the generated images sub-commands if there is any new types
imageTypesInterval: 43200000,
coinsLimit: 1e20,
economyEvents: {
slotsEvents: true,
dailyEvents: true,
//Chances out of 100 that a daily event will occur when using daily
dailyEventsRate: 50,
//Chances out of 100 that a slots event will occur when using slots
slotsEventsRate: 35
},
//If given, Felix will use this animated emotes to animate the slots command; Should look like this: <a:animatedslots:443420980170326036>
animatedSlotsEmote: "",
//Roughly allows the use of 4 commands within the given period before ratelimits may apply
defaultCooldownWeight: 5,
//Duration in milliseconds the command cooldown may last, setting it to something like 1000 would effectively disable it
commandCooldownDuration: 20000,
//Define how many roles can be set to be given to new members
maxDefaultRoles: 3,
experience: {
exponent: 1.5,
baseXP: 100,
/* The gainFormula option give enormous control over the system, unless you know EXACTLY what you are doing, you should ONLY change the numbers
* The default logic is: If the message length is under 500 characters, give 5 experience, otherwise, apply the formula
* The default formula gives a minimum of 5 experience (500 characters) and a maximum of 20 experience (2000 characters) */
gainFormula: (length) => length < 500 ? 5 : Math.round(1 * length / 100),
/* Like the gainFormula option, unless you know EXACTLY what you are doing, you should ONLY change the numbers
* The default logic is: If the total size of the files uploaded is above 10e6 then it will be multiplied by 0.0000005, otherwise, it returns 5
* This default logic gives a minimum of 5 experience, but no actual maximum
* Though, even with nitro and really large files, you shouldn't get much more than 25 */
uploadGainFormula: (size) => size > 10e6 ? Math.round(0.0000005 * size) : 5,
//Time in milliseconds before a user may gain experience with a message again
cooldown: 30000,
/* This is rather more complicated, this actually define how often (in milliseconds too) the cooldowns are checked and lifted if they're over
* In practice, even if the cooldown is (by default) 30 seconds, it may not be lifted directly after 30 seconds
* For example, if the latest sweep was a second before the 30 seconds passed, the cooldown will be lifted 9 seconds after, so 39 seconds after the message was sent
* This allow for better performance at a large scale, but also prevent automated experience farming, as you can't accurately know how long the cooldown will take */
sweepInterval: 10000,
//This define the limit of roles that can be given at the same level
maxRolesPerLevel: 3,
//Define what is the maximum level at which you can set roles to be given at
maxRolesLevel: 1000,
defaultLevelUpMessage: "Hai **%USERTAG%**, you just reached the level %LEVEL% %WONROLES% !"
},
music: {
//If true, Felix will try to connect to the Lavalink server (meaning that you must launch the server), if a success, the music feature will be enabled
enabled: false,
//Define how long in milliseconds to wait for a song to be added when the last one ended before leaving to not waste bandwidth. Defaults to 30e4 ms (5 minutes)
inactivityTimeout: 30e4,
//Define how long in milliseconds before a vote to skip a song should end
voteSkipDuration: 60000,
//The host of the Lavalink server, if the Lavalink server is hosted on another server, you should change to that server IP
nodes: [{
//The password and port set in the "application.yml" file that should be in the same folder if you downloaded Lavalink
password: 'youshallnotpass',
port: 2333,
WSPort: 80,
host: 'localhost',
//Region: us/eu...
region: 'us',
//More detailed location for info purposes
location: 'Baguette'
}]
}
},
process: {
guildsPerShards: 1750,
shards: 1,
clusters: 1,
debug: true,
environment: "development"
}
};