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
|
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"
const llog = require('../src/logg')
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", async () => {
//preload
global.channels = {}
for(let guild of Object.keys(settings.preloads)){
let mem = Object.fromEntries(await client.guilds.cache.get(guild).members.fetch())
//console.log(Object.keys(mem))
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)
llog.error("failed to load "+chan+" from "+guild+", skipping");
else
global.channels[settings.preloads[guild][chan].name] = t_add;
}
}
//end
//register slash/user 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)=>{
llog.error("unable to load commands for " + g.id + "\n\n****\n")
llog.error(e)
})
passed++;
} else {
failed++;
}
})
llog.log("loaded "+global.s_commands.length+" slash commands for "+passed+" guilds, and denied "+failed+" guilds")
//done w/ slash commands
llog.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)
})
},
}
|