Type Alias GuildFishingConfigInput

GuildFishingConfigInput: {
    allowedChannelIds: string[];
    boosterAdminOnly: boolean;
    boosterRoleId: string | null;
    cooldownOverrideMs: number | null;
    dockAutoClear: boolean;
    dockAutoClearMinutes: number;
    dockBossOnly: boolean;
    dockChannelId: string | null;
    dockSticky: boolean;
    enabled: boolean;
    logChannelId: string | null;
    publicBoard: boolean;
}

The writable half of the fishing setup - every field updateConfig accepts.

Split out from GuildFishingConfig so the input map cannot drift into promising that read-only context (baseCooldownMs, autoClearOptions) can be written.

Type declaration

  • allowedChannelIds: string[]

    Where /fish may be used. Empty means anywhere. At most maxAllowedChannels entries.

  • boosterAdminOnly: boolean
  • boosterRoleId: string | null
  • cooldownOverrideMs: number | null

    May only ever LENGTHEN the cast wait, and is capped at ten minutes. null clears it.

  • dockAutoClear: boolean
  • dockAutoClearMinutes: number

    Must be one of autoClearOptions - any other value is refused.

  • dockBossOnly: boolean

    Restrict the dock channel to boss fights only.

  • dockChannelId: string | null
  • dockSticky: boolean

    Keep the panel pinned to the bottom of the channel as people talk.

  • enabled: boolean

    The master switch. Everything else is inert while this is false.

  • logChannelId: string | null
  • publicBoard: boolean

    Publish this guild's leaderboard at /public/fishing/:guildId/leaderboard, readable with no session. OFF by default, and it is the owner's call rather than ours: the board carries member usernames next to their activity here.

    While this is false, publicFishing.getPublicLeaderboard answers 404 for the guild - and 404 rather than 403 on purpose, so a server that has not opted in is not confirmed to exist.