Skip to content

Commit 9b79f0b

Browse files
authored
Add handler for unknown Discord dispatch events (#3088)
1 parent 0c3e7a8 commit 9b79f0b

File tree

2 files changed

+18
-1
lines changed

2 files changed

+18
-1
lines changed

src/Discord.Net.WebSocket/BaseSocketClient.Events.cs

+16-1
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
using Discord.Rest;
2-
2+
using Newtonsoft.Json.Linq;
33
using System;
44
using System.Collections.Generic;
55
using System.Threading.Tasks;
@@ -1069,5 +1069,20 @@ public event Func<Cacheable<SocketSubscription, ulong>, Task> SubscriptionDelete
10691069
internal readonly AsyncEvent<Func<Cacheable<SocketSubscription, ulong>, Task>> _subscriptionDeleted = new();
10701070

10711071
#endregion
1072+
1073+
#region Others
1074+
1075+
/// <summary>
1076+
/// Fired when a dispatch event is received from Discord that does not match any known event type.
1077+
/// </summary>
1078+
public event Func<string, JToken, Task> UnknownDispatchReceived
1079+
{
1080+
add => _unknownDispatchReceived.Add(value);
1081+
remove => _unknownDispatchReceived.Remove(value);
1082+
}
1083+
1084+
internal readonly AsyncEvent<Func<string, JToken, Task>> _unknownDispatchReceived = new();
1085+
1086+
#endregion
10721087
}
10731088
}

src/Discord.Net.WebSocket/DiscordSocketClient.EventHandling.cs

+2
Original file line numberDiff line numberDiff line change
@@ -2506,6 +2506,8 @@ private async Task ProcessMessageAsync(GatewayOpCode opCode, int? seq, string ty
25062506
default:
25072507
if (!SuppressUnknownDispatchWarnings)
25082508
await _gatewayLogger.WarningAsync($"Unknown Dispatch ({type})").ConfigureAwait(false);
2509+
2510+
await TimedInvokeAsync(_unknownDispatchReceived, nameof(UnknownDispatchReceived), type, (payload as JToken));
25092511
break;
25102512
#endregion
25112513
}

0 commit comments

Comments
 (0)