22 lines
661 B
TypeScript
22 lines
661 B
TypeScript
/**
|
|
* Discord bot invite URL helpers.
|
|
*/
|
|
const DEFAULT_PERMISSIONS = "8"; // Administrator (Discord invite UI still shows the checklist)
|
|
|
|
export function getBotInviteUrl(clientId?: string | null): string | null {
|
|
const id =
|
|
(clientId || "").trim() ||
|
|
(process.env.DISCORD_CLIENT_ID || "").trim() ||
|
|
(process.env.NEXT_PUBLIC_DISCORD_CLIENT_ID || "").trim();
|
|
|
|
if (!id) return null;
|
|
|
|
const params = new URLSearchParams({
|
|
client_id: id,
|
|
permissions: process.env.DISCORD_BOT_PERMISSIONS?.trim() || DEFAULT_PERMISSIONS,
|
|
scope: "bot applications.commands",
|
|
});
|
|
|
|
return `https://discord.com/oauth2/authorize?${params.toString()}`;
|
|
}
|