diff --git a/src/api/handlers/member.ts b/src/api/handlers/member.ts index fb486f4ec..84c8930d6 100644 --- a/src/api/handlers/member.ts +++ b/src/api/handlers/member.ts @@ -276,3 +276,19 @@ export async function editBotProfile(username?: string, botAvatarURL?: string) { }, ); } + +/** Edit the nickname of the bot in this guild */ +export async function editBotNickname( + guildID: string, + nickname: string | null, +) { + const hasPerm = await botHasPermission(guildID, ["CHANGE_NICKNAME"]); + if (!hasPerm) throw new Error(Errors.MISSING_CHANGE_NICKNAME); + + const response = await RequestManager.patch( + endpoints.USER_NICK(guildID), + { nick: nickname }, + ) as { nick: string }; + + return response.nick; +} diff --git a/src/types/errors.ts b/src/types/errors.ts index f99456106..33b99d315 100644 --- a/src/types/errors.ts +++ b/src/types/errors.ts @@ -43,4 +43,5 @@ export enum Errors { UPDATES_CHANNEL_CANNOT_BE_DELETED = "UPDATES_CHANNEL_CANNOT_BE_DELETED", GUILD_NOT_FOUND = "GUILD_NOT_FOUND", GUILD_NOT_DISCOVERABLE = "GUILD_NOT_DISCOVERABLE", + MISSING_CHANGE_NICKNAME = "MISSING_CHANGE_NICKNAME", }