diff --git a/TwitchLib.EventSub.Websockets/Core/EventArgs/Channel/ChannelUnbanRequestCreateArgs.cs b/TwitchLib.EventSub.Websockets/Core/EventArgs/Channel/ChannelUnbanRequestCreateArgs.cs new file mode 100644 index 0000000..50226f1 --- /dev/null +++ b/TwitchLib.EventSub.Websockets/Core/EventArgs/Channel/ChannelUnbanRequestCreateArgs.cs @@ -0,0 +1,8 @@ +using TwitchLib.EventSub.Core.SubscriptionTypes.Channel; +using TwitchLib.EventSub.Websockets.Core.Models; + +namespace TwitchLib.EventSub.Websockets.Core.EventArgs.Channel +{ + public class ChannelUnbanRequestCreateArgs : TwitchLibEventSubEventArgs> + { } +} diff --git a/TwitchLib.EventSub.Websockets/Core/EventArgs/Channel/ChannelUnbanRequestResolveArgs.cs b/TwitchLib.EventSub.Websockets/Core/EventArgs/Channel/ChannelUnbanRequestResolveArgs.cs new file mode 100644 index 0000000..a86c678 --- /dev/null +++ b/TwitchLib.EventSub.Websockets/Core/EventArgs/Channel/ChannelUnbanRequestResolveArgs.cs @@ -0,0 +1,8 @@ +using TwitchLib.EventSub.Core.SubscriptionTypes.Channel; +using TwitchLib.EventSub.Websockets.Core.Models; + +namespace TwitchLib.EventSub.Websockets.Core.EventArgs.Channel +{ + public class ChannelUnbanRequestResolveArgs : TwitchLibEventSubEventArgs> + { } +} diff --git a/TwitchLib.EventSub.Websockets/EventSubWebsocketClient.cs b/TwitchLib.EventSub.Websockets/EventSubWebsocketClient.cs index 40d530d..eff11e4 100644 --- a/TwitchLib.EventSub.Websockets/EventSubWebsocketClient.cs +++ b/TwitchLib.EventSub.Websockets/EventSubWebsocketClient.cs @@ -296,6 +296,16 @@ public class EventSubWebsocketClient /// public event AsyncEventHandler UserWhisperMessage; + /// + /// Event that triggers on "channel.unban_request.create" notifications + /// + public event AsyncEventHandler ChannelUnbanRequestCreate; + + /// + /// Event that triggers on "channel.unban_request.resolve" notifications + /// + public event AsyncEventHandler ChannelUnbanRequestResolve; + #endregion /// diff --git a/TwitchLib.EventSub.Websockets/Handler/Channel/Moderation/ChannelUnbanRequestCreateHandler.cs b/TwitchLib.EventSub.Websockets/Handler/Channel/Moderation/ChannelUnbanRequestCreateHandler.cs new file mode 100644 index 0000000..2e0e8f7 --- /dev/null +++ b/TwitchLib.EventSub.Websockets/Handler/Channel/Moderation/ChannelUnbanRequestCreateHandler.cs @@ -0,0 +1,37 @@ +using System; +using System.Text.Json; +using TwitchLib.EventSub.Core.SubscriptionTypes.Channel; +using TwitchLib.EventSub.Websockets.Core.EventArgs; +using TwitchLib.EventSub.Websockets.Core.EventArgs.Channel; +using TwitchLib.EventSub.Websockets.Core.Handler; +using TwitchLib.EventSub.Websockets.Core.Models; + +namespace TwitchLib.EventSub.Websockets.Handler.Channel.Moderation +{ + /// + /// Handler for 'channel.unban_request.create' notifications + /// + public class ChannelUnbanRequestCreateHandler : INotificationHandler + { + /// + public string SubscriptionType => "channel.unban_request.create"; + + /// + public void Handle(EventSubWebsocketClient client, string jsonString, JsonSerializerOptions serializerOptions) + { + try + { + var data = JsonSerializer.Deserialize>(jsonString.AsSpan(), serializerOptions); + + if (data is null) + throw new InvalidOperationException("Parsed JSON cannot be null!"); + + client.RaiseEvent("ChannelUnbanRequestCreate", new ChannelUnbanRequestCreateArgs { Notification = data }); + } + catch (Exception ex) + { + client.RaiseEvent("ErrorOccurred", new ErrorOccuredArgs { Exception = ex, Message = $"Error encountered while trying to handle {SubscriptionType} notification! Raw Json: {jsonString}" }); + } + } + } +} diff --git a/TwitchLib.EventSub.Websockets/Handler/Channel/Moderation/ChannelUnbanRequestResolveHandler.cs b/TwitchLib.EventSub.Websockets/Handler/Channel/Moderation/ChannelUnbanRequestResolveHandler.cs new file mode 100644 index 0000000..411da7e --- /dev/null +++ b/TwitchLib.EventSub.Websockets/Handler/Channel/Moderation/ChannelUnbanRequestResolveHandler.cs @@ -0,0 +1,37 @@ +using System; +using System.Text.Json; +using TwitchLib.EventSub.Core.SubscriptionTypes.Channel; +using TwitchLib.EventSub.Websockets.Core.EventArgs; +using TwitchLib.EventSub.Websockets.Core.EventArgs.Channel; +using TwitchLib.EventSub.Websockets.Core.Handler; +using TwitchLib.EventSub.Websockets.Core.Models; + +namespace TwitchLib.EventSub.Websockets.Handler.Channel.Moderation +{ + /// + /// Handler for 'channel.unban_request.resolve' notifications + /// + public class ChannelUnbanRequestResolveHandler : INotificationHandler + { + /// + public string SubscriptionType => "channel.unban_request.resolve"; + + /// + public void Handle(EventSubWebsocketClient client, string jsonString, JsonSerializerOptions serializerOptions) + { + try + { + var data = JsonSerializer.Deserialize>(jsonString.AsSpan(), serializerOptions); + + if (data is null) + throw new InvalidOperationException("Parsed JSON cannot be null!"); + + client.RaiseEvent("ChannelUnbanRequestResolve", new ChannelUnbanRequestResolveArgs { Notification = data }); + } + catch (Exception ex) + { + client.RaiseEvent("ErrorOccurred", new ErrorOccuredArgs { Exception = ex, Message = $"Error encountered while trying to handle {SubscriptionType} notification! Raw Json: {jsonString}" }); + } + } + } +}