Skip to content
This repository has been archived by the owner on Jul 9, 2024. It is now read-only.

Commit

Permalink
Vanity URL Support
Browse files Browse the repository at this point in the history
  • Loading branch information
TheShadowGamer committed Mar 29, 2021
1 parent 7992b2b commit 3ef930b
Show file tree
Hide file tree
Showing 6 changed files with 27 additions and 19 deletions.
12 changes: 6 additions & 6 deletions index.js
Original file line number Diff line number Diff line change
Expand Up @@ -43,13 +43,13 @@ let commandHandler = new CommandHandler(client, {
commandUtil: true
});
commandHandler.resolver.addType("custom-MEMBER", async (message, phrase) => {
if(!phrase) return null
if(!phrase) return null;
let member;
try {member = await message.guild.members.fetch(phrase)} catch (error) {}
if(!member) member = client.util.resolveMember(phrase, message.guild.members.cache)
if(!member) member = (await (message.guild.members.fetch({query: phrase}))).first()
return member || null
})
try {member = await message.guild.members.fetch(phrase)} catch (error) {};
if(!member) member = client.util.resolveMember(phrase, message.guild.members.cache);
if(!member) member = (await (message.guild.members.fetch({query: phrase}))).first();
return member || null;
});
client.handler = commandHandler;
let listenerHandler = new ListenerHandler(client, {
directory: './listeners/'
Expand Down
8 changes: 7 additions & 1 deletion listeners/guildMemberAdd.js
Original file line number Diff line number Diff line change
Expand Up @@ -13,9 +13,15 @@ module.exports = class GuildMemberAddListener extends Listener {
if(member.user.bot) return welcomeChannel.send(`${member.toString()} joined the server using OAuth flow.`).catch(err => console.log(err));
const cachedInvites = this.client.guildInvites.get(member.guild.id);
const newInvites = await member.guild.fetchInvites();
if(member.guild.vanityURLCode) newInvites.set(member.guild.vanityURLCode, await member.guild.fetchVanityData());
this.client.guildInvites.set(member.guild.id, newInvites);
const usedInvite = newInvites.find(inv => cachedInvites.get(inv.code).uses < inv.uses);
if(!usedInvite) return welcomeChannel.send(`${member.toString()} has joined the server but I do not know how. Perhaps a vanity link or a temporary invite?`).catch(err => console.log(err));
if(usedInvite.code === member.guild.vanityURLCode) {
welcomeChannel.send(`${member.toString()} has joined the server using the vanity link!`);
await this.client.invites.findOrCreate({where: {discordUser: member.id, guildID: member.guild.id}, defaults: {inviter: 'VANITY', discordUser: member.id, guildID: member.guild.id}});
return;
};
if(!usedInvite) return welcomeChannel.send(`${member.toString()} has joined the server but I do not know how. Perhaps a temporary invite?`).catch(err => console.log(err));
let foc = await this.client.invites.findOrCreate({where: {discordUser: usedInvite.inviter.id, guildID: member.guild.id}, defaults: {discordUser: usedInvite.inviter.id, invites: 0, guildID: member.guild.id}});
await this.client.invites.findOrCreate({where: {discordUser: member.id, guildID: member.guild.id}, defaults: {inviter: usedInvite.inviter.id, discordUser: member.id, guildID: member.guild.id}})
await foc[0].increment('invites');
Expand Down
1 change: 1 addition & 0 deletions listeners/guildMemberRemove.js
Original file line number Diff line number Diff line change
Expand Up @@ -12,6 +12,7 @@ module.exports = class GuildMemberAddListener extends Listener {
if(member.user.bot && welcomeChannel) return welcomeChannel.send(`${member.toString()} left the server, they joined via OAuth.`).catch(err => console.log(err));
let user = await this.client.invites.findOne({where: {discordUser: member.id, guildID: member.guild.id}});
if(!user || !user.inviter) return welcomeChannel.send(`${member.user.tag} left the server but I do not know who invited them.`);
if(user.inviter === 'VANITY') return welcomeChannel.send(`${member.user.tag} left the server. They joined using the server vanity URL.`);
let inviter = await this.client.invites.findOne({where: {discordUser: `${user ? user.inviter : `none`}`, guildID: member.guild.id}});
if(!inviter) {
inviter = await this.client.users.fetch(user.inviter).catch(err => console.log(err));
Expand Down
1 change: 1 addition & 0 deletions listeners/ready.js
Original file line number Diff line number Diff line change
Expand Up @@ -21,6 +21,7 @@ module.exports = class ReadyListener extends Listener {
+ `> Servers: ${client.guilds.cache.size}`));
client.guilds.cache.forEach(async guild => {
let invites = await guild.fetchInvites();
if(guild.vanityURLCode) invites.set(guild.vanityURLCode, await guild.fetchVanityData());
guildInvites.set(guild.id, invites);
});
if(botstatus.enabled === true) {
Expand Down
20 changes: 10 additions & 10 deletions package-lock.json

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

4 changes: 2 additions & 2 deletions package.json
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
{
"name": "invite-manager",
"version": "2.0.0",
"version": "2.0.1",
"description": "Invite manager is an open source bot that allows you to track people's invites. You can join the support server here if you need help with anything: https://discord.gg/xNks8jb",
"main": "index.js",
"dependencies": {
Expand All @@ -12,7 +12,7 @@
"figlet": "^1.4.0",
"lodash": "^4.17.21",
"ms": "^2.1.2",
"sequelize": "^6.5.0",
"sequelize": "^6.6.2",
"sqlite3": "^5.0.2"
},
"scripts": {
Expand Down

0 comments on commit 3ef930b

Please sign in to comment.