[][src]Struct twitch_irc::message::UserNoticeMessage

pub struct UserNoticeMessage {
    pub channel_login: String,
    pub channel_id: String,
    pub sender: TwitchUserBasics,
    pub message_text: Option<String>,
    pub system_message: String,
    pub event: UserNoticeEvent,
    pub badge_info: Vec<Badge>,
    pub badges: Vec<Badge>,
    pub emotes: Vec<Emote>,
    pub name_color: Option<RGBColor>,
    pub message_id: String,
    pub server_timestamp: DateTime<Utc>,
    pub source: IRCMessage,
}

A Twitch USERNOTICE message.

The USERNOTICE message represents a wide variety of "rich events" in chat, e.g. sub events, resubs, gifted subscriptions, incoming raids, etc.

See UserNoticeEvent for more details on all the different events.

Fields

channel_login: String

Login name of the channel that this message was sent to.

channel_id: String

ID of the channel that this message was sent to.

sender: TwitchUserBasics

The user that sent/triggered this message. Depending on the event (see below), this user may or may not have any actual meaning (for some type of events, this user is a dummy user).

Even if this user is not a dummy user, the meaning of what this user did depends on the event that this USERNOTICE message represents. For example, in case of a raid, this user is the user raiding the channel, in case of a sub, it's the user subscribing, etc...)

message_text: Option<String>

If present, an optional message the user sent alongside the notification. Not all types of events can have message text.

Currently the only event that can a message is a resub, where this message text is the message the user shared with the streamer alongside the resub message.

system_message: String

A system message that is always present and represents a user-presentable message of what this event is, for example "FuchsGewand subscribed with Twitch Prime. They've subscribed for 12 months, currently on a 9 month streak!".

This message is always present and always fully pre-formatted by Twitch with this event's parameters.

event: UserNoticeEvent

this holds the event-specific data, e.g. for sub, resub, subgift, etc...

badge_info: Vec<Badge>

Metadata related to the chat badges in the badges tag.

Currently this is used only for subscriber, to indicate the exact number of months the user has been a subscriber. This number is finer grained than the version number in badges. For example, a user who has been a subscriber for 45 months would have a badge_info value of 45 but might have a badges version number for only 3 years.

badges: Vec<Badge>

List of badges that should be displayed alongside the message.

emotes: Vec<Emote>

A list of emotes in this message. Each emote replaces a part of the message_text. These emotes are sorted in the order that they appear in the message.

If message_text is None, this is an empty list and carries no information (since there is no message, and therefore no emotes to display)

name_color: Option<RGBColor>

If present, specifies the color that the user's name should be displayed in. A value of None here signifies that the user has not picked any particular color. Implementations differ on how they handle this, on the Twitch website users are assigned a pseudorandom but consistent-per-user color if they have no color specified.

message_id: String

Timestamp of when this message was sent.

server_timestamp: DateTime<Utc>

A string uniquely identifying this message. Can be used with /delete <message_id> to delete single messages (see also the CLEARMSG message type)

source: IRCMessage

The message that this UserNoticeMessage was parsed from.

Trait Implementations

impl Clone for UserNoticeMessage[src]

impl Debug for UserNoticeMessage[src]

impl From<UserNoticeMessage> for IRCMessage[src]

impl PartialEq<UserNoticeMessage> for UserNoticeMessage[src]

impl StructuralPartialEq for UserNoticeMessage[src]

impl TryFrom<IRCMessage> for UserNoticeMessage[src]

type Error = ServerMessageParseError

The type returned in the event of a conversion error.

Auto Trait Implementations

Blanket Implementations

impl<T> Any for T where
    T: 'static + ?Sized
[src]

impl<T> Borrow<T> for T where
    T: ?Sized
[src]

impl<T> BorrowMut<T> for T where
    T: ?Sized
[src]

impl<T> From<T> for T[src]

impl<T, U> Into<U> for T where
    U: From<T>, 
[src]

impl<T> Same<T> for T

type Output = T

Should always be Self

impl<T> ToOwned for T where
    T: Clone
[src]

type Owned = T

The resulting type after obtaining ownership.

impl<T, U> TryFrom<U> for T where
    U: Into<T>, 
[src]

type Error = Infallible

The type returned in the event of a conversion error.

impl<T, U> TryInto<U> for T where
    U: TryFrom<T>, 
[src]

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.

impl<V, T> VZip<V> for T where
    V: MultiLane<T>,