Constructors

Methods

  • "Force Missing Drops": sends, now, every drop still running that this server should have and has not been sent - for a server that enabled mid-campaign and does not want to wait for the next 5-minute check, or one that thinks a drop was missed. Never re-sends one already sent. Ignores the server's delivery window ("force" means now).

    400 when drops are not set up or the platform is switched off; 429 within 5 minutes of the last press for this server and platform (error.code === 'rate_limited', count down from error.retryAfterSeconds); 503 while the bot is starting. data.sent is how many drops were handed to the server; data.message is ready to show.

    One segment (/missing-drops) for the reason in sendTestDropNotification.

    Parameters

    • __namedParameters: {
          auth: string;
          guildId: string;
          platform: "kick" | "twitch";
      }
      • auth: string
      • guildId: string
      • platform: "kick" | "twitch"

    Returns Promise<WebResponse<MissingSendData>>

  • Sends a sample drop to the guild's configured drops channel, through the same path a real drop takes.

    Fails with a reason rather than a silent success: 400 when the platform is switched off or has no channel, 503 when the shard hosting the guild cannot be reached. dontPing defaults to true server-side, so checking your formatting cannot notify the whole server by accident.

    POSTs the collection rather than /drops/test: the API has catch-all routes matching any two segments under a guild, they win or lose on filesystem order, and one of them answered the test with "Invalid platform.". One segment is the only shape they cannot claim.

    Parameters

    • __namedParameters: {
          auth: string;
          dontPing?: boolean;
          guildId: string;
          platform: "kick" | "twitch";
          variant: DropTestVariant;
      }
      • auth: string
      • OptionaldontPing?: boolean

        Ignored as of the 2026-09-19 API build. A dashboard test NEVER pings.

        Sending it is harmless - the route no longer reads the query parameter - but it does nothing, so do not build a UI control on it. The role still RENDERS in the test message: the bot sends allowedMentions: { parse: [] }, which keeps the mention highlighted and resolves nobody, so a test shows exactly what the real notification will look like without notifying the server.

        Three of the four dashboard test routes used to ping for real, this one included. Pinging a server to preview a layout is a cost with no matching benefit.

        The Discord side keeps an opt-IN: /setup test with_ping:True.

      • guildId: string
      • platform: "kick" | "twitch"
      • variant: DropTestVariant

    Returns Promise<WebResponse<string>>

  • Parameters

    • __namedParameters: {
          auth: string;
          games?: {
              channelId?: null | string;
              dbId?: null | string;
              id: null | string;
              liveNotifications?: null | boolean;
              roleId?: null | string;
              webhook?: null | {
                  avatarUrl?: null | string;
                  username?: null | string;
              };
          }[];
          guildId: string;
          kickChannelId?: null | string;
          kickDeliveryMode?: DeliveryMode;
          kickEnabled?: boolean;
          kickLiveNotificationChannelId?: null | string;
          kickLiveNotificationRoleId?: null | string;
          kickLiveNotifications?: boolean;
          kickLiveShowNotifyButton?: null | boolean;
          kickRoleId?: null | string;
          kickScheduledHours?: number[];
          kickScheduledWeekdays?: number[];
          kickShowNotifyButton?: null | boolean;
          kickWindowEndHour?: null | number;
          kickWindowStartHour?: null | number;
          timezone?: string;
          twitchChannelId?: null | string;
          twitchDeliveryMode?: DeliveryMode;
          twitchEnabled?: boolean;
          twitchLiveNotificationChannelId?: null | string;
          twitchLiveNotificationRoleId?: null | string;
          twitchLiveNotifications?: boolean;
          twitchLiveShowNotifyButton?: null | boolean;
          twitchRoleId?: null | string;
          twitchScheduledHours?: number[];
          twitchScheduledWeekdays?: number[];
          twitchShowNotifyButton?: null | boolean;
          twitchWindowEndHour?: null | number;
          twitchWindowStartHour?: null | number;
          webhook?: null | {
              avatarUrl?: null | string;
              username?: null | string;
          };
      }
      • auth: string
      • Optionalgames?: {
            channelId?: null | string;
            dbId?: null | string;
            id: null | string;
            liveNotifications?: null | boolean;
            roleId?: null | string;
            webhook?: null | {
                avatarUrl?: null | string;
                username?: null | string;
            };
        }[]
      • guildId: string
      • OptionalkickChannelId?: null | string
      • OptionalkickDeliveryMode?: DeliveryMode
      • OptionalkickEnabled?: boolean
      • OptionalkickLiveNotificationChannelId?: null | string
      • OptionalkickLiveNotificationRoleId?: null | string
      • OptionalkickLiveNotifications?: boolean
      • OptionalkickLiveShowNotifyButton?: null | boolean
      • OptionalkickRoleId?: null | string
      • OptionalkickScheduledHours?: number[]
      • OptionalkickScheduledWeekdays?: number[]
      • OptionalkickShowNotifyButton?: null | boolean

        "Toggle Notification" switches - see GuildDropsData. null returns one to the default (on).

      • OptionalkickWindowEndHour?: null | number
      • OptionalkickWindowStartHour?: null | number
      • Optionaltimezone?: string
      • OptionaltwitchChannelId?: null | string
      • OptionaltwitchDeliveryMode?: DeliveryMode
      • OptionaltwitchEnabled?: boolean
      • OptionaltwitchLiveNotificationChannelId?: null | string
      • OptionaltwitchLiveNotificationRoleId?: null | string
      • OptionaltwitchLiveNotifications?: boolean
      • OptionaltwitchLiveShowNotifyButton?: null | boolean
      • OptionaltwitchRoleId?: null | string
      • OptionaltwitchScheduledHours?: number[]
      • OptionaltwitchScheduledWeekdays?: number[]
      • OptionaltwitchShowNotifyButton?: null | boolean
      • OptionaltwitchWindowEndHour?: null | number
      • OptionaltwitchWindowStartHour?: null | number
      • Optionalwebhook?: null | {
            avatarUrl?: null | string;
            username?: null | string;
        }

    Returns Promise<WebResponse<GuildDropsData>>