/** * Toast message * * 大航海事件,包括续费、开通 * * @see BilibiliInternal.WebSocket.Prod.USER_TOAST_MSG for the original version * @see BilibiliInternal.WebSocket.Prod.USER_TOAST_MSG_V2 for the original version * @see BilibiliInternal.WebSocket.OpenPlatform.LIVE_OPEN_PLATFORM_GUARD for the Open Platform version */ export interface Toast { type: 'toast' id: string /** * 稳定 key,用于避免重复事件 * * 首次由 Toast 事件引入,由于你b开始在上舰时会自动触发一个额外赠送天数,目前的 id 构建方法会导致 * 额外赠送天数的事件 id 与真实上舰长事件的 id 重复。虽然很容易通过额外的字段避免重复,但是在 * 开放平台下这些字段存在,为了兼容控制台并且保证 OBS 模式下可以正常显示,额外引入 stableKey 给 * OBS 模式用 * * @since Oct 24, 2025 */ stableKey?: string origin: number originIdx: number uid: number username: string /** 官方事件无头像,这个字段是给开放平台用的 */ avatar: string /** * - `toast_msg`: <%アイノラパス%> 续费了舰长,今天是TA陪伴主播的第322天 * - `toast_msg`: <%スパラノイア%>续费了舰长1*8天 * - `role_name`: 大航海名称,舰长、提督、总督 */ message: string /** * 大航海价格 * * 开放平台 Mar 17, 2024 之后本站支持大航海价格,api 那边不知道什么时候加的😅 */ price: number /** 实际货币单位的价格 */ priceNormalized: number /** * 官方事件可以获取到舰长价格,此字段给开放平台用 * @deprecated 开放平台已可以获取价格字段 */ mockPrice: boolean duration: number color: string /** * 0: 白字 * 1: 总督 * 2: 提督 * 3: 舰长 */ toastType: number /** 大航海数量,盲盒时该数量依然为 1 */ toastAmount: number /** 单位,月、年,盲盒时该单位为 `*8天`、`*15天`、etc */ toastAmountUnit: string /** 大航海名称,舰长,etc. */ toastName: string /** 当前主播大航海总数,用于判断是否是千舰、万舰,而从使用特殊主题 */ toastTotalCount: number /** @deprecated 没什么用途 */ toastId: number /** 用来触发礼物特效 id */ effectId: number timestamp: number timestampNormalized: number read: boolean }