Browse Source

Readded IMessageChannel.TriggerTypingAsync

tags/1.0-rc
RogueException 8 years ago
parent
commit
472412e232
11 changed files with 28 additions and 9 deletions
  1. +3
    -1
      src/Discord.Net.Core/Entities/Channels/IMessageChannel.cs
  2. +1
    -1
      src/Discord.Net.Core/Extensions/SnowflakeEntityExtensions.cs
  3. +6
    -1
      src/Discord.Net.Rest/Entities/Channels/ChannelHelper.cs
  4. +2
    -0
      src/Discord.Net.Rest/Entities/Channels/RestDMChannel.cs
  5. +2
    -0
      src/Discord.Net.Rest/Entities/Channels/RestGroupChannel.cs
  6. +2
    -0
      src/Discord.Net.Rest/Entities/Channels/RestTextChannel.cs
  7. +4
    -4
      src/Discord.Net.Rest/Utils/TypingNotifier.cs
  8. +2
    -2
      src/Discord.Net.WebSocket/Entities/Channels/SocketChannelHelper.cs
  9. +2
    -0
      src/Discord.Net.WebSocket/Entities/Channels/SocketDMChannel.cs
  10. +2
    -0
      src/Discord.Net.WebSocket/Entities/Channels/SocketGroupChannel.cs
  11. +2
    -0
      src/Discord.Net.WebSocket/Entities/Channels/SocketTextChannel.cs

+ 3
- 1
src/Discord.Net.Core/Entities/Channels/IMessageChannel.cs View File

@@ -30,7 +30,9 @@ namespace Discord
/// <summary> Bulk deletes multiple messages. </summary>
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);
}
}

+ 1
- 1
src/Discord.Net.Core/Extensions/SnowflakeEntityExtensions.cs View File

@@ -4,7 +4,7 @@ namespace Discord.Extensions
{
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);
}
}

+ 6
- 1
src/Discord.Net.Rest/Entities/Channels/ChannelHelper.cs View File

@@ -204,7 +204,12 @@ namespace Discord.Rest
}

//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)
=> new TypingNotifier(client, channel, options);
}


+ 2
- 0
src/Discord.Net.Rest/Entities/Channels/RestDMChannel.cs View File

@@ -73,6 +73,8 @@ namespace Discord.Rest
public Task DeleteMessagesAsync(IEnumerable<IMessage> messages, RequestOptions options = null)
=> ChannelHelper.DeleteMessagesAsync(this, Discord, messages, options);

public Task TriggerTypingAsync(RequestOptions options = null)
=> ChannelHelper.TriggerTypingAsync(this, Discord, options);
public IDisposable EnterTypingState(RequestOptions options = null)
=> ChannelHelper.EnterTypingState(this, Discord, options);



+ 2
- 0
src/Discord.Net.Rest/Entities/Channels/RestGroupChannel.cs View File

@@ -86,6 +86,8 @@ namespace Discord.Rest
public Task DeleteMessagesAsync(IEnumerable<IMessage> messages, RequestOptions options = null)
=> ChannelHelper.DeleteMessagesAsync(this, Discord, messages, options);

public Task TriggerTypingAsync(RequestOptions options = null)
=> ChannelHelper.TriggerTypingAsync(this, Discord, options);
public IDisposable EnterTypingState(RequestOptions options = null)
=> ChannelHelper.EnterTypingState(this, Discord, options);



+ 2
- 0
src/Discord.Net.Rest/Entities/Channels/RestTextChannel.cs View File

@@ -63,6 +63,8 @@ namespace Discord.Rest
public Task DeleteMessagesAsync(IEnumerable<IMessage> messages, RequestOptions options = null)
=> ChannelHelper.DeleteMessagesAsync(this, Discord, messages, options);

public Task TriggerTypingAsync(RequestOptions options = null)
=> ChannelHelper.TriggerTypingAsync(this, Discord, options);
public IDisposable EnterTypingState(RequestOptions options = null)
=> ChannelHelper.EnterTypingState(this, Discord, options);



+ 4
- 4
src/Discord.Net.Rest/Utils/TypingNotifier.cs View File

@@ -8,14 +8,14 @@ namespace Discord.Rest
{
private readonly BaseDiscordClient _client;
private readonly CancellationTokenSource _cancelToken;
private readonly ulong _channelId;
private readonly IMessageChannel _channel;
private readonly RequestOptions _options;

public TypingNotifier(BaseDiscordClient discord, IChannel channel, RequestOptions options)
public TypingNotifier(BaseDiscordClient discord, IMessageChannel channel, RequestOptions options)
{
_client = discord;
_cancelToken = new CancellationTokenSource();
_channelId = channel.Id;
_channel = channel;
_options = options;
var _ = Run();
}
@@ -29,7 +29,7 @@ namespace Discord.Rest
{
try
{
await _client.ApiClient.TriggerTypingIndicatorAsync(_channelId);
await _channel.TriggerTypingAsync(_options);
}
catch { }
await Task.Delay(9750, token);


+ 2
- 2
src/Discord.Net.WebSocket/Entities/Channels/SocketChannelHelper.cs View File

@@ -43,7 +43,7 @@ namespace Discord.WebSocket
public static void AddMessage(ISocketMessageChannel channel, DiscordSocketClient discord,
SocketMessage msg)
{
//C#7 Candidate for pattern matching
//TODO: C#7 Candidate for pattern matching
if (channel is SocketDMChannel)
(channel as SocketDMChannel).AddMessage(msg);
else if (channel is SocketGroupChannel)
@@ -56,7 +56,7 @@ namespace Discord.WebSocket
public static SocketMessage RemoveMessage(ISocketMessageChannel channel, DiscordSocketClient discord,
ulong id)
{
//C#7 Candidate for pattern matching
//TODO: C#7 Candidate for pattern matching
if (channel is SocketDMChannel)
return (channel as SocketDMChannel).RemoveMessage(id);
else if (channel is SocketGroupChannel)


+ 2
- 0
src/Discord.Net.WebSocket/Entities/Channels/SocketDMChannel.cs View File

@@ -76,6 +76,8 @@ namespace Discord.WebSocket
public Task DeleteMessagesAsync(IEnumerable<IMessage> messages, RequestOptions options = null)
=> ChannelHelper.DeleteMessagesAsync(this, Discord, messages, options);

public Task TriggerTypingAsync(RequestOptions options = null)
=> ChannelHelper.TriggerTypingAsync(this, Discord, options);
public IDisposable EnterTypingState(RequestOptions options = null)
=> ChannelHelper.EnterTypingState(this, Discord, options);



+ 2
- 0
src/Discord.Net.WebSocket/Entities/Channels/SocketGroupChannel.cs View File

@@ -99,6 +99,8 @@ namespace Discord.WebSocket
public Task DeleteMessagesAsync(IEnumerable<IMessage> messages, RequestOptions options = null)
=> ChannelHelper.DeleteMessagesAsync(this, Discord, messages, options);

public Task TriggerTypingAsync(RequestOptions options = null)
=> ChannelHelper.TriggerTypingAsync(this, Discord, options);
public IDisposable EnterTypingState(RequestOptions options = null)
=> ChannelHelper.EnterTypingState(this, Discord, options);



+ 2
- 0
src/Discord.Net.WebSocket/Entities/Channels/SocketTextChannel.cs View File

@@ -82,6 +82,8 @@ namespace Discord.WebSocket
public Task DeleteMessagesAsync(IEnumerable<IMessage> messages, RequestOptions options = null)
=> ChannelHelper.DeleteMessagesAsync(this, Discord, messages, options);

public Task TriggerTypingAsync(RequestOptions options = null)
=> ChannelHelper.TriggerTypingAsync(this, Discord, options);
public IDisposable EnterTypingState(RequestOptions options = null)
=> ChannelHelper.EnterTypingState(this, Discord, options);



Loading…
Cancel
Save