]> git.lizzy.rs Git - furrybot-discord.git/blob - init.js
352591eff2cdc22daf106e0ff38cbfb1adf70bbd
[furrybot-discord.git] / init.js
1 const Discord = require("discord.js")
2 const common = require("./common.js")
3 const copypasta = require("./copypasta.json")
4 const copypastaTrigger = require("./copypasta.js")
5
6 const client = module.exports = new Discord.Client({
7         intents: [Discord.GatewayIntentBits.Guilds, Discord.GatewayIntentBits.GuildMessages, Discord.GatewayIntentBits.GuildVoiceStates]
8 })
9
10 client.login(process.env.DISCORD_TOKEN)
11
12 let fb = {
13         commands: {},
14         requests: {},
15         operators: common.storageLoad("operators") || [],
16         ignored: common.storageLoad("ignored") || [],
17 }
18
19 client.on("messageCreate", msg => {
20         if (fb.ignored[msg.author.id] || msg.author.id == client.user.id)
21                 return;
22
23         const trigger = copypastaTrigger(msg.content.toLowerCase())
24         if (trigger)
25                 return msg.reply(copypasta[trigger])
26
27         if (msg.content.startsWith("!")) {
28                 let args = msg.content.replace(/@/g, "\\@").slice(1).split(" ")
29                 let cmd = args.shift()
30                 let def = fb.commands[cmd]
31
32                 if (def) {
33                         if (def.operator && !fb.operators[msg.author.id])
34                                 msg.reply(`Sorry, you need to be an operator run this command: ${cmd}`)
35                         else
36                                 def.func(msg, args, fb)
37                 } else {
38                         msg.reply(`Invalid command: ${cmd}`)
39                 }
40         }
41 })
42
43 const modules = ["basic", "bullshit", "marriage", "http", "roleplay", "death", "economy", "waifu", "operator", "nsfw", "random", "music"]
44
45 for (let f of modules) {
46         let m = require(`./${f}.js`)
47
48         if (m)
49                 for (let k in m)
50                         fb.commands[k] = m[k]
51 }