diff options
| author | Max Isom <[email protected]> | 2022-03-12 18:41:53 -0500 |
|---|---|---|
| committer | GitHub <[email protected]> | 2022-03-12 17:41:53 -0600 |
| commit | 20eaed4a16eeb9eec44a38a1f176711591ce342f (patch) | |
| tree | 208d3a8c863605b9afab63fb62fe58b1a8c170cc /src/events | |
| parent | e1589c30131cc68f4c846bd8e5c77a8a3c3c559b (diff) | |
| download | muse-20eaed4a16eeb9eec44a38a1f176711591ce342f.tar.xz muse-20eaed4a16eeb9eec44a38a1f176711591ce342f.zip | |
Allow member who invited Muse to do initial setup (#561)
Diffstat (limited to 'src/events')
| -rw-r--r-- | src/events/guild-create.ts | 25 |
1 files changed, 22 insertions, 3 deletions
diff --git a/src/events/guild-create.ts b/src/events/guild-create.ts index 630d6cb..d71acda 100644 --- a/src/events/guild-create.ts +++ b/src/events/guild-create.ts @@ -6,16 +6,30 @@ import Config from '../services/config.js'; import {prisma} from '../utils/db.js'; import {REST} from '@discordjs/rest'; import {Routes} from 'discord-api-types/v9'; +import updatePermissionsForGuild from '../utils/update-permissions-for-guild.js'; export default async (guild: Guild): Promise<void> => { + let invitedBy; + try { + const logs = await guild.fetchAuditLogs({type: 'BOT_ADD'}); + invitedBy = logs.entries.find(entry => entry.target?.id === guild.client.user?.id)?.executor; + } catch {} + + if (!invitedBy) { + console.warn(`Could not find user who invited Muse to ${guild.name} from the audit logs.`); + } + await prisma.setting.upsert({ where: { guildId: guild.id, }, create: { guildId: guild.id, + invitedByUserId: invitedBy?.id, + }, + update: { + invitedByUserId: invitedBy?.id, }, - update: {}, }); const config = container.get<Config>(TYPES.Config); @@ -33,7 +47,12 @@ export default async (guild: Guild): Promise<void> => { ); } - const owner = await guild.fetchOwner(); + await updatePermissionsForGuild(guild); - await owner.send('👋 Hi! Someone (probably you) just invited me to a server you own. I can\'t be used by your server members until you complete setup by running /config set-role in your server.'); + if (invitedBy) { + await invitedBy.send('👋 Hi! You just invited me to a server. I can\'t be used by your server members until you complete setup by running /config set-role in your server.'); + } else { + const owner = await guild.fetchOwner(); + await owner.send('👋 Hi! Someone (probably you) just invited me to a server you own. I can\'t be used by your server members until you complete setup by running /config set-role in your server.'); + } }; |
