Skip to content

Commit 3a46616

Browse files
committed
Add support for channel.chat.message_delete
1 parent 6f4cd77 commit 3a46616

File tree

3 files changed

+42
-0
lines changed

3 files changed

+42
-0
lines changed
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,8 @@
1+
using TwitchLib.EventSub.Core.SubscriptionTypes.Channel;
2+
using TwitchLib.EventSub.Websockets.Core.Models;
3+
namespace TwitchLib.EventSub.Websockets.Core.EventArgs.Channel
4+
{
5+
public class ChannelChatMessageDeleteArgs : TwitchLibEventSubEventArgs<EventSubNotification<ChannelChatMessageDelete>>
6+
{
7+
}
8+
}

TwitchLib.EventSub.Websockets/EventSubWebsocketClient.cs

+4
Original file line numberDiff line numberDiff line change
@@ -77,6 +77,10 @@ public class EventSubWebsocketClient
7777
/// </summary>
7878
public event AsyncEventHandler<ChannelChatMessageArgs> ChannelChatMessage;
7979
/// <summary>
80+
/// Event that triggers on "channel.chat.message_delete" notifications
81+
/// </summary>
82+
public event AsyncEventHandler<ChannelChatMessageDeleteArgs> ChannelChatMessageDelete;
83+
/// <summary>
8084
/// Event that triggers on "channel.cheer" notifications
8185
/// </summary>
8286
public event AsyncEventHandler<ChannelCheerArgs> ChannelCheer;
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,30 @@
1+
using System;
2+
using System.Text.Json;
3+
using TwitchLib.EventSub.Core.SubscriptionTypes.Channel;
4+
using TwitchLib.EventSub.Websockets.Core.EventArgs;
5+
using TwitchLib.EventSub.Websockets.Core.EventArgs.Channel;
6+
using TwitchLib.EventSub.Websockets.Core.Handler;
7+
using TwitchLib.EventSub.Websockets.Core.Models;
8+
9+
namespace TwitchLib.EventSub.Websockets.Handler.Channel.Chat
10+
{
11+
public class ChatMessageDeleteHandler : INotificationHandler
12+
{
13+
public string SubscriptionType => "channel.chat.message_delete";
14+
15+
public void Handle ( EventSubWebsocketClient client, string jsonString, JsonSerializerOptions serializerOptions )
16+
{
17+
try
18+
{
19+
var data = JsonSerializer.Deserialize<EventSubNotification<ChannelChatMessageDelete>>(jsonString.AsSpan(), serializerOptions);
20+
if (data is null)
21+
throw new InvalidOperationException("Parsed JSON cannot be null!");
22+
client.RaiseEvent("ChannelChatMessageDelete", new ChannelChatMessageDeleteArgs { Notification = data });
23+
}
24+
catch (Exception ex)
25+
{
26+
client.RaiseEvent("ErrorOccurred", new ErrorOccuredArgs { Exception = ex, Message = $"Error encountered while trying to handle {SubscriptionType} notification! Raw Json: {jsonString}" });
27+
}
28+
}
29+
}
30+
}

0 commit comments

Comments
 (0)