add :emote and :list to chat

This commit is contained in:
Evan Carroll 2026-01-12 17:23:41 -06:00
parent 1ca300098f
commit bd28e201a2
7 changed files with 741 additions and 22 deletions

View file

@ -1695,3 +1695,30 @@ pub struct JoinChannelResponse {
pub member: ChannelMemberInfo,
pub members: Vec<ChannelMemberWithAvatar>,
}
// =============================================================================
// Emotion Availability
// =============================================================================
/// Emotion availability data for the emote command UI.
///
/// Indicates which of the 12 emotions have assets configured for the user's avatar,
/// and provides preview paths (position 4/center) for rendering in the emotion picker.
#[derive(Debug, Clone, Serialize, Deserialize)]
pub struct EmotionAvailability {
/// Which emotions have at least one non-null asset slot (positions 0-8).
/// Index corresponds to emotion: 0=neutral, 1=happy, 2=sad, etc.
pub available: [bool; 12],
/// Center position (4) asset path for each emotion, used for preview rendering.
/// None if that emotion has no center asset.
pub preview_paths: [Option<String>; 12],
}
impl Default for EmotionAvailability {
fn default() -> Self {
Self {
available: [false; 12],
preview_paths: Default::default(),
}
}
}