Add handler for unknown Discord dispatch events (#3088)
This commit is contained in:
@@ -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
|
||||
}
|
||||
}
|
||||
|
||||
@@ -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
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user