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.
An exception has been raised from within the library.
myRoom.EventManager.ConnectListener(EventType.InternalException, new Action<Exception>(ex =>
{
// Do stuff.
}));Meaningful (unparsed) data has been received via the WebSocket (as JSON).
myRoom.EventManager.ConnectListener(EventType.DataReceived , new Action<string>(jsonData =>
{
// Do stuff.
}));A new message has been posted.
myRoom.EventManager.ConnectListener(EventType.MessagePosted, new Action<Message>(newMessage =>
{
// Do stuff.
}));A message has been edited.
myRoom.EventManager.ConnectListener(EventType.MessageEdited, new Action<Message>(editedMessage =>
{
// Do stuff.
}));A user has entered the room.
myRoom.EventManager.ConnectListener(EventType.UserEntered, new Action<User>(user =>
{
// Do stuff.
}));A user has left the room.
myRoom.EventManager.ConnectListener(EventType.UserLeft, new Action<User>(user =>
{
// Do stuff.
}));Someone has (un)starred a message.
myRoom.EventManager.ConnectListener(EventType.MessageStarToggled, new Action<Message, int, int>((message, starCount, pinCount) =>
{
// Do stuff.
}));You have been mentioned ("@Username") in a message.
myRoom.EventManager.ConnectListener(EventType.UserMentioned, new Action<Message>(message =>
{
// Do stuff.
}));Someone has deleted a message.
myRoom.EventManager.ConnectListener(EventType.MessageDeleted, new Action<User, int>((deletedBy, messageID) =>
{
// Do stuff.
}));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.
}));A message has been posted in reply to another message.
myRoom.EventManager.ConnectListener(EventType.MessageReply, new Action<Message, Message>((parentMessage, reply) =>
{
// Do stuff.
}));A room owner or moderator has moved a message out of the room.
myRoom.EventManager.ConnectListener(EventType.MessageMovedOut, new Action<Message>(movedMessage =>
{
// Do stuff.
}));A room owner or moderator has moved a message into the room.
myRoom.EventManager.ConnectListener(EventType.MessageMovedIn, new Action<Message>(movedMessage =>
{
// Do stuff.
}));