diff options
Diffstat (limited to 'events/ready.js')
| -rw-r--r-- | events/ready.js | 87 |
1 files changed, 87 insertions, 0 deletions
diff --git a/events/ready.js b/events/ready.js new file mode 100644 index 0000000..c694c00 --- /dev/null +++ b/events/ready.js @@ -0,0 +1,87 @@ +const { ActivityType } = require("discord.js"); +const fs = require('fs') +const path = require("path"); +const { EmbedBuilder } = require("discord.js"); +let db = require("../src/db") +let settings = require('../src/settings') +let config_loc = __filename+".json" +module.exports = { + name : "ready", + config_loc : config_loc, + async main (client,Discord){ + await db._raw.sync() + let config = JSON.parse(fs.readFileSync(config_loc)) + client.once("ready", () => { + //preload + global.channels = {} + for(let guild of Object.keys(settings.preloads)){ + + for(let chan of Object.keys(settings.preloads[guild])){ + let t_add = client.guilds.cache.get(guild).channels.cache.get(chan) + if(t_add==null) + console.log("failed to load "+chan+" from "+guild+", skipping"); + else + global.channels[settings.preloads[guild][chan].name] = t_add + } + } + //end + + //register slash commands + let passed = 0; + let failed = 0; + client.guilds.cache.forEach((g)=>{ + if(settings["allowed-servers"].includes(g.id)){ + g.commands.set(global.s_commands).catch((e)=>{ + console.log("unable to load commands for " + g.id + "\n\n****\n") + console.log(e) + }) + passed++; + } else { + failed++; + } + }) + console.log("loaded "+global.s_commands.length+" slash commands for "+passed+" guilds, and denied "+failed+" guilds") + //done w/ slash commands + + console.log("online!") + function set_pres() { + client.user.setPresence({ + activities: [{ name: config.status.value, type: ActivityType[config.type.value] }] + }); + } + set_pres() + setInterval(set_pres,36000) + setInterval(async()=>{ + //timed messages + let timed = await db.Timed_Message.findAll(); + let cur = new Date() + for(let t of timed){ + let delay = parseInt(t.delay) + if(t.last_message_time!='null') + t.last_message_time = parseInt(t.last_message_time) + //console.log(new Date(parseInt(t.last_message_time)),(new Date(t.last_message_time)).getTime(),delay) + if(t.last_message_time=='null'||cur.getTime()-(new Date(t.last_message_time)).getTime()>delay){ + + let gu = await client.guilds.fetch(t.guild) + let channel = await gu.channels.fetch(t.channel) + if(t.embed){ + let embed = new EmbedBuilder() + .setDescription(t.message) + .setColor(t.embed_color) + channel.send({embeds:[embed]}) + } else { + channel.send(t.message) + } + //console.log(new Date(t.last_message_time).getTime(),(new Date(t.last_message_time)).getTime()+delay) + if(t.last_message_time=='null') + db.Timed_Message.update({last_message_time : cur.getTime().toString()},{ where: {id: t.id}}) + else + db.Timed_Message.update({last_message_time : (new Date((new Date(t.last_message_time)).getTime()+delay)).getTime().toString()},{ where: {id: t.id}}) + } + } + //done w/ timed messages + },config.timed_interval.value) + }) + + }, +}
\ No newline at end of file |
