This commit is contained in:
Christopher Cookman 2024-04-15 01:01:25 -06:00
parent 33e045b58b
commit 8c0d0a6feb
Signed by: ChrisChrome
GPG key ID: A023A26E42C33A42

View file

@ -190,9 +190,9 @@ client.on("ready", async () => {
// Get port for webserver from environment over config file (for running on pterodactyl/other panels) // Get port for webserver from environment over config file (for running on pterodactyl/other panels)
var port = process.env.SERVER_PORT || config.port; var port = process.env.SERVER_PORT || config.port;
// Start webserver // Start webserver
if (port) app.listen(port, () => { // if (port) app.listen(port, () => {
console.log(`${colors.cyan("[INFO]")} Webserver started on port ${port}`) // console.log(`${colors.cyan("[INFO]")} Webserver started on port ${port}`)
}) // })
console.log(`${colors.cyan("[INFO]")} Logged in as ${client.user.tag}`); console.log(`${colors.cyan("[INFO]")} Logged in as ${client.user.tag}`);
// Get status messages and actionable servers // Get status messages and actionable servers
config.discord.status_messages.forEach((msg) => { config.discord.status_messages.forEach((msg) => {
@ -250,6 +250,9 @@ client.on("ready", async () => {
client.invites[guildInvite.code] = guildInvite.uses client.invites[guildInvite.code] = guildInvite.uses
}) })
}) })
if(guild.vanityURLCode) {
client.invites[guild.vanityURLCode] = guild.vanityURLUses
}
}) })
const commands = [ const commands = [
@ -386,10 +389,7 @@ client.on('guildMemberAdd', async (member) => { // We're just gonna always send
const channel = client.channels.cache.get(config.discord.invitelog) const channel = client.channels.cache.get(config.discord.invitelog)
let guild = member.guild let guild = member.guild
member.guild.invites.fetch().then(async guildInvites => { //get all guild invites member.guild.invites.fetch().then(async guildInvites => { //get all guild invites
console.log(`len ${member.guild.invites.holds.length}`)
guildInvites.forEach(invite => { //basically a for loop over the invites guildInvites.forEach(invite => { //basically a for loop over the invites
invites++
console.log(invites)
if (invite.uses != client.invites[invite.code]) { //if it doesn't match what we stored: if (invite.uses != client.invites[invite.code]) { //if it doesn't match what we stored:
channel.send({ channel.send({
embeds: [{ embeds: [{
@ -398,7 +398,7 @@ client.on('guildMemberAdd', async (member) => { // We're just gonna always send
fields: [ fields: [
{ {
name: "New Member", name: "New Member",
value: `${member} (${member.user.displayName})\n\`${member.id}\`\nJoined at: <t:${member.joinedTimestamp}>\nAccount Created: <t:${member.user.createdTimestamp}>` value: `${member} (${member.user.displayName})\n\`${member.id}\`\nJoined at: <t:${new Date(member.joinedAt)/1000}>\nAccount Created: <t:${new Date(member.user.createdTimestamp)/1000}>`
}, },
{ {
name: "Invite", name: "Invite",
@ -407,17 +407,17 @@ client.on('guildMemberAdd', async (member) => { // We're just gonna always send
{ {
name: "Guild", name: "Guild",
value: `${guild.name}\n\`${guild.id}\`` value: `${guild.name}\n\`${guild.id}\``
},
{
name: "User IP",
value: client.invites[invite.code].ip ? client.invites[invite.code].ip : "N/A"
} }
] ]
}] }]
}); });
client.invites[invite.code] = invite.uses client.invites[invite.code] = invite.uses
} else if (invites == guildInvites.length -1) { }
// Assume its a custom link lol
})
})
// Handle vanity URLs
if (member.guild.vanityURLUses != client.invites[member.guild.vanityURLCode]) { // They used the vanity URL
channel.send({ channel.send({
embeds: [{ embeds: [{
color: 0x00ff00, color: 0x00ff00,
@ -425,11 +425,11 @@ client.on('guildMemberAdd', async (member) => { // We're just gonna always send
fields: [ fields: [
{ {
name: "New Member", name: "New Member",
value: `${member} (${member.user.displayName})\n\`${member.id}\`\nJoined at: <t:${member.joinedTimestamp}>\nAccount Created: <t:${member.user.createdTimestamp}>` value: `${member} (${member.user.displayName})\n\`${member.id}\`\nJoined at: <t:${new Date(member.joinedAt)/1000}>\nAccount Created: <t:${new Date(member.user.createdTimestamp)/1000}>`
}, },
{ {
name: "Invite", name: "Invite",
value: `N/A (Used Custom Invite)` value: `Vanity Code: ${member.guild.vanityURLCode}\nUses: ${member.vanityURLUses}`
}, },
{ {
name: "Guild", name: "Guild",
@ -439,8 +439,6 @@ client.on('guildMemberAdd', async (member) => { // We're just gonna always send
}] }]
}); });
} }
})
})
if (defcon <= 3) { if (defcon <= 3) {
// DM user saying Invites are disabled for security reasons, then kick them with the same reason // DM user saying Invites are disabled for security reasons, then kick them with the same reason
@ -458,20 +456,20 @@ client.on('guildMemberAdd', async (member) => { // We're just gonna always send
} }
}) })
app.set('view engine', 'ejs'); // app.set('view engine', 'ejs');
// set views directory // // set views directory
app.set('views', path.join(__dirname, 'html')); // app.set('views', path.join(__dirname, 'html'));
// Start doing express stuff // // Start doing express stuff
app.get("/", async (req, res) => { // app.get("/", async (req, res) => {
// If defcon level is 3 or lower, return 403 // // If defcon level is 3 or lower, return 403
if (defcon <= 3 || req.query.test) return res.status(403).render("lockdown.ejs") // if (defcon <= 3 || req.query.test) return res.status(403).render("lockdown.ejs")
// Otherwise, make a new invite, single use, and redirect the user to it! // // Otherwise, make a new invite, single use, and redirect the user to it!
client.guilds.cache.get(config.discord.invite_guild).invites.create(config.discord.invite_channel, { maxAge: 60, maxUses: 1, unique: true }).then((invite) => { // client.guilds.cache.get(config.discord.invite_guild).invites.create(config.discord.invite_channel, { maxAge: 60, maxUses: 1, unique: true }).then((invite) => {
client.invites[invite.code].ip = req.headers["X-Forwarded-For"] // client.invites[invite.code].ip = req.headers["X-Forwarded-For"]
res.redirect(`https://discord.com/invite/${invite.code}`); // res.redirect(`https://discord.com/invite/${invite.code}`);
}) // })
}); // });
client.login(config.discord.token) client.login(config.discord.token)