import type { FansMedal } from '@laplace.live/internal' /** * Entry effect * * 进场特效 * * @see BilibiliInternal.WebSocket.Prod.ENTRY_EFFECT for the original version */ export interface EntryEffect { type: 'entry-effect' id: string origin: number originIdx: number uid: number username: string avatar: string message: string effectId: number textColor: string nameColor: string /** * 持续时间,秒 */ duration: number background: string /** * 动态背景,如果不存在则为空字符串 `""` */ backgroundAnimated: string /** * 用于区分不同事务的样式 */ business: number /** * 舰长状态:该用户在当前直播间的舰长状态 * * 0: 白字 * 1: 总督 * 2: 提督 * 3: 舰长 */ guardType: number wealthMedalLevel: number showAvatar: number /** * 此处决定是否显示荣耀等级 * * 个别背景,例如大航海,会在左侧显示内置图标,此时 `wealthy_info?.level` 为 `null`,但 * `uinfo?.wealth?.level` 依然可以获得荣耀等级 * * 因为我们的内置 `wealthMedalLevel` 从上述两个字段聚合判断荣耀等级,所以理论上 `wealthMedalLevel` * 会永远显示荣耀等级,那么此处就需要一个额外字段来判断前端是否显示 * * @example 大航海背景 https://i0.hdslb.com/bfs/live/mlive/75e5cc5dc03c3ea8f2fd40d6833f9f11a8d26b88.png * @example 普通荣耀等级背景 https://i0.hdslb.com/bfs/live/mlive/19e7564ed9d466b02f341abfa979c6e38c2ffffb.png */ showWealthMedal: boolean /** 用户当前佩戴的粉丝勋章/粉丝勋章 */ medal: FansMedal timestamp: number /** * Normalized timestamp from nanoseconds to milliseconds */ timestampNormalized: number read: boolean }