Readded IMessageChannel.TriggerTypingAsync
This commit is contained in:
@@ -30,7 +30,9 @@ namespace Discord
|
|||||||
/// <summary> Bulk deletes multiple messages. </summary>
|
/// <summary> Bulk deletes multiple messages. </summary>
|
||||||
Task DeleteMessagesAsync(IEnumerable<IMessage> messages, RequestOptions options = null);
|
Task DeleteMessagesAsync(IEnumerable<IMessage> messages, RequestOptions options = null);
|
||||||
|
|
||||||
/// <summary> Broadcasts the "user is typing" message to all users in this channel, lasting 10 seconds.</summary>
|
/// <summary> Broadcasts the "user is typing" message to all users in this channel, lasting 10 seconds. </summary>
|
||||||
|
Task TriggerTypingAsync(RequestOptions options = null);
|
||||||
|
/// <summary> Continuously broadcasts the "user is typing" message to all users in this channel until the returned object is disposed. </summary>
|
||||||
IDisposable EnterTypingState(RequestOptions options = null);
|
IDisposable EnterTypingState(RequestOptions options = null);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -4,7 +4,7 @@ namespace Discord.Extensions
|
|||||||
{
|
{
|
||||||
public static class SnowflakeEntityExtensions
|
public static class SnowflakeEntityExtensions
|
||||||
{
|
{
|
||||||
//TODO: C#7 Candidate for Extension Property.
|
//TODO: C#7 Candidate for extension property.
|
||||||
public static DateTimeOffset GetCreatedAt(this ISnowflakeEntity entity) => DateTimeUtils.FromSnowflake(entity.Id);
|
public static DateTimeOffset GetCreatedAt(this ISnowflakeEntity entity) => DateTimeUtils.FromSnowflake(entity.Id);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -204,7 +204,12 @@ namespace Discord.Rest
|
|||||||
}
|
}
|
||||||
|
|
||||||
//Typing
|
//Typing
|
||||||
public static IDisposable EnterTypingState(IChannel channel, BaseDiscordClient client,
|
public static async Task TriggerTypingAsync(IMessageChannel channel, BaseDiscordClient client,
|
||||||
|
RequestOptions options = null)
|
||||||
|
{
|
||||||
|
await client.ApiClient.TriggerTypingIndicatorAsync(channel.Id, options);
|
||||||
|
}
|
||||||
|
public static IDisposable EnterTypingState(IMessageChannel channel, BaseDiscordClient client,
|
||||||
RequestOptions options)
|
RequestOptions options)
|
||||||
=> new TypingNotifier(client, channel, options);
|
=> new TypingNotifier(client, channel, options);
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -73,6 +73,8 @@ namespace Discord.Rest
|
|||||||
public Task DeleteMessagesAsync(IEnumerable<IMessage> messages, RequestOptions options = null)
|
public Task DeleteMessagesAsync(IEnumerable<IMessage> messages, RequestOptions options = null)
|
||||||
=> ChannelHelper.DeleteMessagesAsync(this, Discord, messages, options);
|
=> ChannelHelper.DeleteMessagesAsync(this, Discord, messages, options);
|
||||||
|
|
||||||
|
public Task TriggerTypingAsync(RequestOptions options = null)
|
||||||
|
=> ChannelHelper.TriggerTypingAsync(this, Discord, options);
|
||||||
public IDisposable EnterTypingState(RequestOptions options = null)
|
public IDisposable EnterTypingState(RequestOptions options = null)
|
||||||
=> ChannelHelper.EnterTypingState(this, Discord, options);
|
=> ChannelHelper.EnterTypingState(this, Discord, options);
|
||||||
|
|
||||||
|
|||||||
@@ -86,6 +86,8 @@ namespace Discord.Rest
|
|||||||
public Task DeleteMessagesAsync(IEnumerable<IMessage> messages, RequestOptions options = null)
|
public Task DeleteMessagesAsync(IEnumerable<IMessage> messages, RequestOptions options = null)
|
||||||
=> ChannelHelper.DeleteMessagesAsync(this, Discord, messages, options);
|
=> ChannelHelper.DeleteMessagesAsync(this, Discord, messages, options);
|
||||||
|
|
||||||
|
public Task TriggerTypingAsync(RequestOptions options = null)
|
||||||
|
=> ChannelHelper.TriggerTypingAsync(this, Discord, options);
|
||||||
public IDisposable EnterTypingState(RequestOptions options = null)
|
public IDisposable EnterTypingState(RequestOptions options = null)
|
||||||
=> ChannelHelper.EnterTypingState(this, Discord, options);
|
=> ChannelHelper.EnterTypingState(this, Discord, options);
|
||||||
|
|
||||||
|
|||||||
@@ -63,6 +63,8 @@ namespace Discord.Rest
|
|||||||
public Task DeleteMessagesAsync(IEnumerable<IMessage> messages, RequestOptions options = null)
|
public Task DeleteMessagesAsync(IEnumerable<IMessage> messages, RequestOptions options = null)
|
||||||
=> ChannelHelper.DeleteMessagesAsync(this, Discord, messages, options);
|
=> ChannelHelper.DeleteMessagesAsync(this, Discord, messages, options);
|
||||||
|
|
||||||
|
public Task TriggerTypingAsync(RequestOptions options = null)
|
||||||
|
=> ChannelHelper.TriggerTypingAsync(this, Discord, options);
|
||||||
public IDisposable EnterTypingState(RequestOptions options = null)
|
public IDisposable EnterTypingState(RequestOptions options = null)
|
||||||
=> ChannelHelper.EnterTypingState(this, Discord, options);
|
=> ChannelHelper.EnterTypingState(this, Discord, options);
|
||||||
|
|
||||||
|
|||||||
@@ -8,14 +8,14 @@ namespace Discord.Rest
|
|||||||
{
|
{
|
||||||
private readonly BaseDiscordClient _client;
|
private readonly BaseDiscordClient _client;
|
||||||
private readonly CancellationTokenSource _cancelToken;
|
private readonly CancellationTokenSource _cancelToken;
|
||||||
private readonly ulong _channelId;
|
private readonly IMessageChannel _channel;
|
||||||
private readonly RequestOptions _options;
|
private readonly RequestOptions _options;
|
||||||
|
|
||||||
public TypingNotifier(BaseDiscordClient discord, IChannel channel, RequestOptions options)
|
public TypingNotifier(BaseDiscordClient discord, IMessageChannel channel, RequestOptions options)
|
||||||
{
|
{
|
||||||
_client = discord;
|
_client = discord;
|
||||||
_cancelToken = new CancellationTokenSource();
|
_cancelToken = new CancellationTokenSource();
|
||||||
_channelId = channel.Id;
|
_channel = channel;
|
||||||
_options = options;
|
_options = options;
|
||||||
var _ = Run();
|
var _ = Run();
|
||||||
}
|
}
|
||||||
@@ -29,7 +29,7 @@ namespace Discord.Rest
|
|||||||
{
|
{
|
||||||
try
|
try
|
||||||
{
|
{
|
||||||
await _client.ApiClient.TriggerTypingIndicatorAsync(_channelId);
|
await _channel.TriggerTypingAsync(_options);
|
||||||
}
|
}
|
||||||
catch { }
|
catch { }
|
||||||
await Task.Delay(9750, token);
|
await Task.Delay(9750, token);
|
||||||
|
|||||||
@@ -43,7 +43,7 @@ namespace Discord.WebSocket
|
|||||||
public static void AddMessage(ISocketMessageChannel channel, DiscordSocketClient discord,
|
public static void AddMessage(ISocketMessageChannel channel, DiscordSocketClient discord,
|
||||||
SocketMessage msg)
|
SocketMessage msg)
|
||||||
{
|
{
|
||||||
//C#7 Candidate for pattern matching
|
//TODO: C#7 Candidate for pattern matching
|
||||||
if (channel is SocketDMChannel)
|
if (channel is SocketDMChannel)
|
||||||
(channel as SocketDMChannel).AddMessage(msg);
|
(channel as SocketDMChannel).AddMessage(msg);
|
||||||
else if (channel is SocketGroupChannel)
|
else if (channel is SocketGroupChannel)
|
||||||
@@ -56,7 +56,7 @@ namespace Discord.WebSocket
|
|||||||
public static SocketMessage RemoveMessage(ISocketMessageChannel channel, DiscordSocketClient discord,
|
public static SocketMessage RemoveMessage(ISocketMessageChannel channel, DiscordSocketClient discord,
|
||||||
ulong id)
|
ulong id)
|
||||||
{
|
{
|
||||||
//C#7 Candidate for pattern matching
|
//TODO: C#7 Candidate for pattern matching
|
||||||
if (channel is SocketDMChannel)
|
if (channel is SocketDMChannel)
|
||||||
return (channel as SocketDMChannel).RemoveMessage(id);
|
return (channel as SocketDMChannel).RemoveMessage(id);
|
||||||
else if (channel is SocketGroupChannel)
|
else if (channel is SocketGroupChannel)
|
||||||
|
|||||||
@@ -76,6 +76,8 @@ namespace Discord.WebSocket
|
|||||||
public Task DeleteMessagesAsync(IEnumerable<IMessage> messages, RequestOptions options = null)
|
public Task DeleteMessagesAsync(IEnumerable<IMessage> messages, RequestOptions options = null)
|
||||||
=> ChannelHelper.DeleteMessagesAsync(this, Discord, messages, options);
|
=> ChannelHelper.DeleteMessagesAsync(this, Discord, messages, options);
|
||||||
|
|
||||||
|
public Task TriggerTypingAsync(RequestOptions options = null)
|
||||||
|
=> ChannelHelper.TriggerTypingAsync(this, Discord, options);
|
||||||
public IDisposable EnterTypingState(RequestOptions options = null)
|
public IDisposable EnterTypingState(RequestOptions options = null)
|
||||||
=> ChannelHelper.EnterTypingState(this, Discord, options);
|
=> ChannelHelper.EnterTypingState(this, Discord, options);
|
||||||
|
|
||||||
|
|||||||
@@ -99,6 +99,8 @@ namespace Discord.WebSocket
|
|||||||
public Task DeleteMessagesAsync(IEnumerable<IMessage> messages, RequestOptions options = null)
|
public Task DeleteMessagesAsync(IEnumerable<IMessage> messages, RequestOptions options = null)
|
||||||
=> ChannelHelper.DeleteMessagesAsync(this, Discord, messages, options);
|
=> ChannelHelper.DeleteMessagesAsync(this, Discord, messages, options);
|
||||||
|
|
||||||
|
public Task TriggerTypingAsync(RequestOptions options = null)
|
||||||
|
=> ChannelHelper.TriggerTypingAsync(this, Discord, options);
|
||||||
public IDisposable EnterTypingState(RequestOptions options = null)
|
public IDisposable EnterTypingState(RequestOptions options = null)
|
||||||
=> ChannelHelper.EnterTypingState(this, Discord, options);
|
=> ChannelHelper.EnterTypingState(this, Discord, options);
|
||||||
|
|
||||||
|
|||||||
@@ -82,6 +82,8 @@ namespace Discord.WebSocket
|
|||||||
public Task DeleteMessagesAsync(IEnumerable<IMessage> messages, RequestOptions options = null)
|
public Task DeleteMessagesAsync(IEnumerable<IMessage> messages, RequestOptions options = null)
|
||||||
=> ChannelHelper.DeleteMessagesAsync(this, Discord, messages, options);
|
=> ChannelHelper.DeleteMessagesAsync(this, Discord, messages, options);
|
||||||
|
|
||||||
|
public Task TriggerTypingAsync(RequestOptions options = null)
|
||||||
|
=> ChannelHelper.TriggerTypingAsync(this, Discord, options);
|
||||||
public IDisposable EnterTypingState(RequestOptions options = null)
|
public IDisposable EnterTypingState(RequestOptions options = null)
|
||||||
=> ChannelHelper.EnterTypingState(this, Discord, options);
|
=> ChannelHelper.EnterTypingState(this, Discord, options);
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user