Add handler for unknown Discord dispatch events (#3088)

This commit is contained in:
Spider
2025-04-26 12:40:05 -07:00
committed by GitHub
parent 0c3e7a861a
commit 9b79f0b27b
2 changed files with 18 additions and 1 deletions

View File

@@ -1,5 +1,5 @@
using Discord.Rest;
using Newtonsoft.Json.Linq;
using System;
using System.Collections.Generic;
using System.Threading.Tasks;
@@ -1069,5 +1069,20 @@ namespace Discord.WebSocket
internal readonly AsyncEvent<Func<Cacheable<SocketSubscription, ulong>, Task>> _subscriptionDeleted = new();
#endregion
#region Others
/// <summary>
/// Fired when a dispatch event is received from Discord that does not match any known event type.
/// </summary>
public event Func<string, JToken, Task> UnknownDispatchReceived
{
add => _unknownDispatchReceived.Add(value);
remove => _unknownDispatchReceived.Remove(value);
}
internal readonly AsyncEvent<Func<string, JToken, Task>> _unknownDispatchReceived = new();
#endregion
}
}

View File

@@ -2506,6 +2506,8 @@ public partial class DiscordSocketClient
default:
if (!SuppressUnknownDispatchWarnings)
await _gatewayLogger.WarningAsync($"Unknown Dispatch ({type})").ConfigureAwait(false);
await TimedInvokeAsync(_unknownDispatchReceived, nameof(UnknownDispatchReceived), type, (payload as JToken));
break;
#endregion
}