Boost notifications - what Noti does when a member boosts the server or stops boosting.

  • Posts (free): a "boosted" message and a "stopped boosting" message, each with its own channel and switch. Their text is edited with the guild message editor: createOrUpdateGuildMessage with messageType 'boost' / 'unboost'. Placeholders: {guild} {username} {userId} {userMention} {userAvatar} {boostCount} {boostLevel}, plus {boostDuration} ("3 months") on the un-boost.
  • Log and boost roles (Premium): logChannelId gets a line for every boost, second boost, un-boost, level change and role change. milestones give a role once a member has boosted for that many months (30-day months); all of them come off when the member stops boosting. Roles are given by a daily pass, so a new milestone applies within a day.
  • Booster board (Premium Plus): boardChannelId gets a message listing everyone boosting, kept up to date.

Behind the boostNotifications launch flag: every method answers 403 until it is beta/public for the caller. data.access says which parts the server's plan includes, so the page can lock the rest.

Constructors

Methods

  • Post the booster board now, or redraw it (Premium Plus). It also redraws itself after every boost and un-boost (within ~30s) and once a day, and members can press its Refresh button. 400 says why it could not be drawn: no channel set, the channel is gone, or Noti cannot post there.

    Parameters

    • __namedParameters: {
          auth: string;
          guildId: string;
      }
      • auth: string
      • guildId: string

    Returns Promise<WebResponse<GuildBoostsData>>

  • Send the real boost or un-boost post to its channel, with the caller as the booster. Rate limited per server (429 with Retry-After) and vote gated like every Test button (403). 400 says why nothing was sent: switched off, no channel, missing permissions, or Discord refused it.

    Parameters

    Returns Promise<WebResponse<string>>

  • Change the settings, field by field - omit one to leave it unchanged. milestones, when sent, REPLACES the whole list ([] clears it). Returns the same shape as getGuildBoosts.

    400 names the problem: a bad value, a duplicate month, a channel Noti cannot post in (View Channel, Send Messages, Embed Links), or a role Noti cannot give (missing, managed, @everyone, above Noti's role, or no Manage Roles). 403 when setting a part the plan does not include - the log or milestones without Premium, the board without Premium Plus. Clearing (null, false, []) is always accepted, so a server that lost its plan can switch things off.

    Changing boardChannelId deletes the old board message and draws the board in the new channel at once; data.boardError is null, or why the new board could not be drawn (the settings are saved either way).

    Parameters

    Returns Promise<WebResponse<GuildBoostsUpdateData>>