Plugin
FriendInvites
Create and manage friend invite links via slash commands (/create friend invite, /view friend invites, /revoke friend invites).
1
/*2
* FiveCord — a Discord client mod3
* Copyright (c) 2025 FiveCord4
* SPDX-License-Identifier: GPL-3.0-or-later5
*/6
7
import { ApplicationCommandInputType, sendBotMessage } from "@api/Commands";8
import { Devs } from "@utils/constants";9
import definePlugin from "@utils/types";10
import { findByPropsLazy } from "@webpack";11
12
const FriendInvites = findByPropsLazy("createFriendInvite");13
14
export default definePlugin({15
name: "FriendInvites",16
description: "Create and manage friend invite links via slash commands (/create friend invite, /view friend invites, /revoke friend invites).",17
tags: ["Friends", "Commands"],18
authors: [Devs.afn, Devs.Dziurwa],19
commands: [20
{21
name: "create friend invite",22
description: "Generates a friend invite link.",23
inputType: ApplicationCommandInputType.BUILT_IN,24
25
execute: async (args, ctx) => {26
const invite = await FriendInvites.createFriendInvite();27
28
sendBotMessage(ctx.channel.id, {29
content: `30
discord.gg/${invite.code} ·31
Expires: <t:${new Date(invite.expires_at).getTime() / 1000}:R> ·32
Max uses: \`${invite.max_uses}\`33
`.trim().replace(/\s+/g, " ")34
});35
}36
},37
{38
name: "view friend invites",39
description: "View a list of all generated friend invites.",40
inputType: ApplicationCommandInputType.BUILT_IN,41
execute: async (_, ctx) => {42
const invites = await FriendInvites.getAllFriendInvites();43
const friendInviteList = invites.map(i =>44
`45
_discord.gg/${i.code}_ ·46
Expires: <t:${new Date(i.expires_at).getTime() / 1000}:R> ·47
Times used: \`${i.uses}/${i.max_uses}\`48
`.trim().replace(/\s+/g, " ")49
);50
51
sendBotMessage(ctx.channel.id, {52
content: friendInviteList.join("\n") || "You have no active friend invites!"53
});54
},55
},56
{57
name: "revoke friend invites",58
description: "Revokes all generated friend invites.",59
inputType: ApplicationCommandInputType.BUILT_IN,60
execute: async (_, ctx) => {61
await FriendInvites.revokeFriendInvites();62
63
sendBotMessage(ctx.channel.id, {64
content: "All friend invites have been revoked."65
});66
},67
},68
]69
});70