Hooking up chat events - ArcticEcho/ChatExchange.Net GitHub Wiki

What follows is a list of (currently 13) subscribable event types, each with a small code example of how to "connect" a listener (Delegate) to said event type.

InternalException (-1)

An exception has been raised from within the library.

myRoom.EventManager.ConnectListener(EventType.InternalException, new Action<Exception>(ex =>
{
    // Do stuff.
}));

DataReceived (0)

Meaningful (unparsed) data has been received via the WebSocket (as JSON).

myRoom.EventManager.ConnectListener(EventType.DataReceived , new Action<string>(jsonData =>
{
    // Do stuff.
}));

MessagePosted (1)

A new message has been posted.

myRoom.EventManager.ConnectListener(EventType.MessagePosted, new Action<Message>(newMessage =>
{
    // Do stuff.
}));

MessageEdited (2)

A message has been edited.

myRoom.EventManager.ConnectListener(EventType.MessageEdited, new Action<Message>(editedMessage =>
{
    // Do stuff.
}));

UserEntered (3)

A user has entered the room.

myRoom.EventManager.ConnectListener(EventType.UserEntered, new Action<User>(user =>
{
    // Do stuff.
}));

UserLeft (4)

A user has left the room.

myRoom.EventManager.ConnectListener(EventType.UserLeft, new Action<User>(user =>
{
    // Do stuff.
}));

MessageStarToggled (6)

Someone has (un)starred a message.

myRoom.EventManager.ConnectListener(EventType.MessageStarToggled, new Action<Message, int, int>((message, starCount, pinCount) =>
{
    // Do stuff.
}));

UserMentioned (8)

You have been mentioned ("@Username") in a message.

myRoom.EventManager.ConnectListener(EventType.UserMentioned, new Action<Message>(message =>
{
    // Do stuff.
}));

MessageDeleted (10)

Someone has deleted a message.

myRoom.EventManager.ConnectListener(EventType.MessageDeleted, new Action<User, int>((deletedBy, messageID) =>
{
    // Do stuff.
}));

UserAccessLevelChanged (15)

A user's room access level has been changed (e.g., occurs when a user has been granted owner privileges).

myRoom.EventManager.ConnectListener(EventType.UserAccessLevelChanged , new Action<User, User, UserRoomAccess>((granter, targetUser, newAccessLevel) =>
{
    // Do stuff.
}));

MessageReply (18)

A message has been posted in reply to another message.

myRoom.EventManager.ConnectListener(EventType.MessageReply, new Action<Message, Message>((parentMessage, reply) =>
{
    // Do stuff.
}));

MessageMovedOut (19)

A room owner or moderator has moved a message out of the room.

myRoom.EventManager.ConnectListener(EventType.MessageMovedOut, new Action<Message>(movedMessage =>
{
    // Do stuff.
}));

MessageMovedIn (20)

A room owner or moderator has moved a message into the room.

myRoom.EventManager.ConnectListener(EventType.MessageMovedIn, new Action<Message>(movedMessage =>
{
    // Do stuff.
}));
⚠️ **GitHub.com Fallback** ⚠️