Add handler for unknown Discord dispatch events (#3088)
This commit is contained in:
@@ -1,5 +1,5 @@
|
|||||||
using Discord.Rest;
|
using Discord.Rest;
|
||||||
|
using Newtonsoft.Json.Linq;
|
||||||
using System;
|
using System;
|
||||||
using System.Collections.Generic;
|
using System.Collections.Generic;
|
||||||
using System.Threading.Tasks;
|
using System.Threading.Tasks;
|
||||||
@@ -1069,5 +1069,20 @@ namespace Discord.WebSocket
|
|||||||
internal readonly AsyncEvent<Func<Cacheable<SocketSubscription, ulong>, Task>> _subscriptionDeleted = new();
|
internal readonly AsyncEvent<Func<Cacheable<SocketSubscription, ulong>, Task>> _subscriptionDeleted = new();
|
||||||
|
|
||||||
#endregion
|
#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:
|
default:
|
||||||
if (!SuppressUnknownDispatchWarnings)
|
if (!SuppressUnknownDispatchWarnings)
|
||||||
await _gatewayLogger.WarningAsync($"Unknown Dispatch ({type})").ConfigureAwait(false);
|
await _gatewayLogger.WarningAsync($"Unknown Dispatch ({type})").ConfigureAwait(false);
|
||||||
|
|
||||||
|
await TimedInvokeAsync(_unknownDispatchReceived, nameof(UnknownDispatchReceived), type, (payload as JToken));
|
||||||
break;
|
break;
|
||||||
#endregion
|
#endregion
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user