> For the complete documentation index, see [llms.txt](https://ghoul.gitbook.io/pycordutils/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://ghoul.gitbook.io/pycordutils/invite-tracker.md).

# Invite Tracker

## Initializing Invite Tracker

```python
tracker = PycordUtils.InviteTracker(bot)
```

#### Once you have the above code ready,&#x20;

```python
@bot.event
async def on_member_join(member):
    inviter = await tracker.fetch_inviter(member) # inviter is the member who invited
```

## Example Cog

{% code title="Invites.py" %}

```python
import PycordUtils
from discord.ext import commands

class Invite(commands.Cog):
    def __init__(self, bot):
        self.bot = bot
        self.tracker = PycordUtils.InviteTracker(bot)

    @commands.Cog.listener()
    async def on_ready(self):
        await self.tracker.cache_invites()

    @commands.Cog.listener()
    async def on_invite_create(self, invite):
        await self.tracker.update_invite_cache(invite)

    @commands.Cog.listener()
    async def on_guild_join(self, guild):
        await self.tracker.add_guild_cache(guild)

    @commands.Cog.listener()
    async def on_invite_delete(self, invite):
        await self.tracker.remove_invite_cache(invite)

    @commands.Cog.listener()
    async def on_guild_remove(self, guild):
        await self.tracker.remove_guild_cache(guild)

    @commands.Cog.listener()
    async def on_member_join(self, member: discord.Member) -> None:
        # inviter is the member who invited
        if member.bot:
            return 

        inviter = await self.tracker.fetch_inviter(member)
```

{% endcode %}
