diff --git a/src/Discord.Net.WebSocket/BaseSocketClient.Events.cs b/src/Discord.Net.WebSocket/BaseSocketClient.Events.cs
index 58de002a0..b7bcfdf2e 100644
--- a/src/Discord.Net.WebSocket/BaseSocketClient.Events.cs
+++ b/src/Discord.Net.WebSocket/BaseSocketClient.Events.cs
@@ -469,7 +469,7 @@ namespace Discord.WebSocket
#region Interactions
///
- /// Fired when an Interaction is created. This event covers all types of interactions including but not limited to: buttons, select menus, slash commands.
+ /// Fired when an Interaction is created. This event covers all types of interactions including but not limited to: buttons, select menus, slash commands, autocompletes.
///
///
///
@@ -535,6 +535,15 @@ namespace Discord.WebSocket
remove => _messageCommandExecuted.Remove(value);
}
internal readonly AsyncEvent> _messageCommandExecuted = new AsyncEvent>();
+ ///
+ /// Fired when an autocomplete is used and its interaction is received.
+ ///
+ public event Func AutocompleteExecuted
+ {
+ add => _autocompleteExecuted.Add(value);
+ remove => _autocompleteExecuted.Remove(value);
+ }
+ internal readonly AsyncEvent> _autocompleteExecuted = new AsyncEvent>();
///
/// Fired when a guild application command is created.
diff --git a/src/Discord.Net.WebSocket/Discord.Net.WebSocket.xml b/src/Discord.Net.WebSocket/Discord.Net.WebSocket.xml
index a1374578a..5d2b36b91 100644
--- a/src/Discord.Net.WebSocket/Discord.Net.WebSocket.xml
+++ b/src/Discord.Net.WebSocket/Discord.Net.WebSocket.xml
@@ -746,6 +746,11 @@
Fired when a message command is used and its interaction is received.
+
+
+ Fired when an autocomplete is used and its interaction is received.
+
+
Fired when a guild application command is created.
diff --git a/src/Discord.Net.WebSocket/DiscordShardedClient.cs b/src/Discord.Net.WebSocket/DiscordShardedClient.cs
index faafa918f..613864fdc 100644
--- a/src/Discord.Net.WebSocket/DiscordShardedClient.cs
+++ b/src/Discord.Net.WebSocket/DiscordShardedClient.cs
@@ -466,6 +466,7 @@ namespace Discord.WebSocket
client.SlashCommandExecuted += (arg) => _slashCommandExecuted.InvokeAsync(arg);
client.UserCommandExecuted += (arg) => _userCommandExecuted.InvokeAsync(arg);
client.MessageCommandExecuted += (arg) => _messageCommandExecuted.InvokeAsync(arg);
+ client.AutocompleteExecuted += (arg) => _autocompleteExecuted.InvokeAsync(arg);
client.ThreadUpdated += (thread1, thread2) => _threadUpdated.InvokeAsync(thread1, thread2);
client.ThreadCreated += (thread) => _threadCreated.InvokeAsync(thread);
diff --git a/src/Discord.Net.WebSocket/DiscordSocketClient.cs b/src/Discord.Net.WebSocket/DiscordSocketClient.cs
index 1cd3debf4..596611b1a 100644
--- a/src/Discord.Net.WebSocket/DiscordSocketClient.cs
+++ b/src/Discord.Net.WebSocket/DiscordSocketClient.cs
@@ -2125,6 +2125,9 @@ namespace Discord.WebSocket
case SocketMessageCommand messageCommand:
await TimedInvokeAsync(_messageCommandExecuted, nameof(MessageCommandExecuted), messageCommand).ConfigureAwait(false);
break;
+ case SocketAutocompleteInteraction autocomplete:
+ await TimedInvokeAsync(_autocompleteExecuted, nameof(AutocompleteExecuted), autocomplete).ConfigureAwait(false);
+ break;
}
}
else