diff --git a/src/Discord.Net.Core/Entities/Users/Game.cs b/src/Discord.Net.Core/Entities/Users/Activity.cs
similarity index 61%
rename from src/Discord.Net.Core/Entities/Users/Game.cs
rename to src/Discord.Net.Core/Entities/Users/Activity.cs
index 3405b0dd4..07a2fbe2c 100644
--- a/src/Discord.Net.Core/Entities/Users/Game.cs
+++ b/src/Discord.Net.Core/Entities/Users/Activity.cs
@@ -3,20 +3,20 @@
namespace Discord
{
[DebuggerDisplay(@"{DebuggerDisplay,nq}")]
- public struct Game
+ public struct Activity
{
public string Name { get; }
public string StreamUrl { get; }
- public StreamType StreamType { get; }
+ public ActivityType Type { get; }
- public Game(string name, string streamUrl, StreamType type)
+ public Activity(string name, string streamUrl, ActivityType type)
{
Name = name;
StreamUrl = streamUrl;
- StreamType = type;
+ Type = type;
}
- private Game(string name)
- : this(name, null, StreamType.NotStreaming) { }
+ private Activity(string name)
+ : this(name, null, ActivityType.Playing) { }
public override string ToString() => Name;
private string DebuggerDisplay => StreamUrl != null ? $"{Name} ({StreamUrl})" : Name;
diff --git a/src/Discord.Net.Core/Entities/Users/ActivityType.cs b/src/Discord.Net.Core/Entities/Users/ActivityType.cs
new file mode 100644
index 000000000..2aae1edb9
--- /dev/null
+++ b/src/Discord.Net.Core/Entities/Users/ActivityType.cs
@@ -0,0 +1,10 @@
+namespace Discord
+{
+ public enum ActivityType
+ {
+ Playing = 0,
+ Streaming = 1,
+ ListeningTo = 2,
+ Watching = 3
+ }
+}
diff --git a/src/Discord.Net.Core/Entities/Users/IPresence.cs b/src/Discord.Net.Core/Entities/Users/IPresence.cs
index 7f182241b..85d9698dd 100644
--- a/src/Discord.Net.Core/Entities/Users/IPresence.cs
+++ b/src/Discord.Net.Core/Entities/Users/IPresence.cs
@@ -3,7 +3,7 @@
public interface IPresence
{
/// Gets the game this user is currently playing, if any.
- Game? Game { get; }
+ Activity? Activity { get; }
/// Gets the current status of this user.
UserStatus Status { get; }
}
diff --git a/src/Discord.Net.Core/Entities/Users/StreamType.cs b/src/Discord.Net.Core/Entities/Users/StreamType.cs
deleted file mode 100644
index 7622e3d6e..000000000
--- a/src/Discord.Net.Core/Entities/Users/StreamType.cs
+++ /dev/null
@@ -1,8 +0,0 @@
-namespace Discord
-{
- public enum StreamType
- {
- NotStreaming = 0,
- Twitch = 1
- }
-}
diff --git a/src/Discord.Net.Rest/API/Common/Game.cs b/src/Discord.Net.Rest/API/Common/Activity.cs
similarity index 85%
rename from src/Discord.Net.Rest/API/Common/Game.cs
rename to src/Discord.Net.Rest/API/Common/Activity.cs
index a499d83b0..e7855c487 100644
--- a/src/Discord.Net.Rest/API/Common/Game.cs
+++ b/src/Discord.Net.Rest/API/Common/Activity.cs
@@ -5,14 +5,14 @@ using System.Runtime.Serialization;
namespace Discord.API
{
- internal class Game
+ internal class Activity
{
[JsonProperty("name")]
public string Name { get; set; }
[JsonProperty("url")]
public Optional StreamUrl { get; set; }
[JsonProperty("type")]
- public Optional StreamType { get; set; }
+ public Optional Type { get; set; }
[OnError]
internal void OnError(StreamingContext context, ErrorContext errorContext)
diff --git a/src/Discord.Net.Rest/API/Common/Presence.cs b/src/Discord.Net.Rest/API/Common/Presence.cs
index 2902b7ce3..acbb65d4d 100644
--- a/src/Discord.Net.Rest/API/Common/Presence.cs
+++ b/src/Discord.Net.Rest/API/Common/Presence.cs
@@ -12,7 +12,7 @@ namespace Discord.API
[JsonProperty("status")]
public UserStatus Status { get; set; }
[JsonProperty("game")]
- public Game Game { get; set; }
+ public Activity Activity { get; set; }
[JsonProperty("roles")]
public Optional Roles { get; set; }
diff --git a/src/Discord.Net.Rest/Entities/Users/RestUser.cs b/src/Discord.Net.Rest/Entities/Users/RestUser.cs
index d8ade3a6b..6d8fab0c3 100644
--- a/src/Discord.Net.Rest/Entities/Users/RestUser.cs
+++ b/src/Discord.Net.Rest/Entities/Users/RestUser.cs
@@ -16,7 +16,7 @@ namespace Discord.Rest
public DateTimeOffset CreatedAt => SnowflakeUtils.FromSnowflake(Id);
public string Discriminator => DiscriminatorValue.ToString("D4");
public string Mention => MentionUtils.MentionUser(Id);
- public virtual Game? Game => null;
+ public virtual Activity? Activity => null;
public virtual UserStatus Status => UserStatus.Offline;
public virtual bool IsWebhook => false;
diff --git a/src/Discord.Net.Rpc/Entities/Users/RpcUser.cs b/src/Discord.Net.Rpc/Entities/Users/RpcUser.cs
index c6b0b2fd8..299063aaf 100644
--- a/src/Discord.Net.Rpc/Entities/Users/RpcUser.cs
+++ b/src/Discord.Net.Rpc/Entities/Users/RpcUser.cs
@@ -18,7 +18,7 @@ namespace Discord.Rpc
public string Discriminator => DiscriminatorValue.ToString("D4");
public string Mention => MentionUtils.MentionUser(Id);
public virtual bool IsWebhook => false;
- public virtual Game? Game => null;
+ public virtual Activity? Activity => null;
public virtual UserStatus Status => UserStatus.Offline;
internal RpcUser(DiscordRpcClient discord, ulong id)
diff --git a/src/Discord.Net.WebSocket/API/Gateway/StatusUpdateParams.cs b/src/Discord.Net.WebSocket/API/Gateway/StatusUpdateParams.cs
index fc0964c17..521027328 100644
--- a/src/Discord.Net.WebSocket/API/Gateway/StatusUpdateParams.cs
+++ b/src/Discord.Net.WebSocket/API/Gateway/StatusUpdateParams.cs
@@ -13,6 +13,6 @@ namespace Discord.API.Gateway
[JsonProperty("afk")]
public bool IsAFK { get; set; }
[JsonProperty("game")]
- public Game Game { get; set; }
+ public Activity Activity { get; set; }
}
}
diff --git a/src/Discord.Net.WebSocket/BaseSocketClient.cs b/src/Discord.Net.WebSocket/BaseSocketClient.cs
index d248285cd..06e8616e2 100644
--- a/src/Discord.Net.WebSocket/BaseSocketClient.cs
+++ b/src/Discord.Net.WebSocket/BaseSocketClient.cs
@@ -13,7 +13,7 @@ namespace Discord.WebSocket
/// Gets the estimated round-trip latency, in milliseconds, to the gateway server.
public abstract int Latency { get; protected set; }
public abstract UserStatus Status { get; protected set; }
- public abstract Game? Game { get; protected set; }
+ public abstract Activity? Game { get; protected set; }
internal new DiscordSocketApiClient ApiClient => base.ApiClient as DiscordSocketApiClient;
@@ -44,7 +44,7 @@ namespace Discord.WebSocket
///
public abstract Task StopAsync();
public abstract Task SetStatusAsync(UserStatus status);
- public abstract Task SetGameAsync(string name, string streamUrl = null, StreamType streamType = StreamType.NotStreaming);
+ public abstract Task SetActivityAsync(string name, string streamUrl = null, ActivityType streamType = ActivityType.Playing);
public abstract Task DownloadUsersAsync(IEnumerable guilds);
///
diff --git a/src/Discord.Net.WebSocket/DiscordShardedClient.cs b/src/Discord.Net.WebSocket/DiscordShardedClient.cs
index 6c2a0f3b9..9685398c6 100644
--- a/src/Discord.Net.WebSocket/DiscordShardedClient.cs
+++ b/src/Discord.Net.WebSocket/DiscordShardedClient.cs
@@ -22,7 +22,7 @@ namespace Discord.WebSocket
/// Gets the estimated round-trip latency, in milliseconds, to the gateway server.
public override int Latency { get => GetLatency(); protected set { } }
public override UserStatus Status { get => _shards[0].Status; protected set { } }
- public override Game? Game { get => _shards[0].Game; protected set { } }
+ public override Activity? Game { get => _shards[0].Game; protected set { } }
internal new DiscordSocketApiClient ApiClient => base.ApiClient as DiscordSocketApiClient;
public override IReadOnlyCollection Guilds => GetGuilds().ToReadOnlyCollection(() => GetGuildCount());
@@ -238,10 +238,10 @@ namespace Discord.WebSocket
for (int i = 0; i < _shards.Length; i++)
await _shards[i].SetStatusAsync(status).ConfigureAwait(false);
}
- public override async Task SetGameAsync(string name, string streamUrl = null, StreamType streamType = StreamType.NotStreaming)
+ public override async Task SetActivityAsync(string name, string streamUrl = null, ActivityType streamType = ActivityType.Playing)
{
for (int i = 0; i < _shards.Length; i++)
- await _shards[i].SetGameAsync(name, streamUrl, streamType).ConfigureAwait(false);
+ await _shards[i].SetActivityAsync(name, streamUrl, streamType).ConfigureAwait(false);
}
private void RegisterEvents(DiscordSocketClient client, bool isPrimary)
diff --git a/src/Discord.Net.WebSocket/DiscordSocketApiClient.cs b/src/Discord.Net.WebSocket/DiscordSocketApiClient.cs
index 72781204c..48fb76dae 100644
--- a/src/Discord.Net.WebSocket/DiscordSocketApiClient.cs
+++ b/src/Discord.Net.WebSocket/DiscordSocketApiClient.cs
@@ -253,7 +253,7 @@ namespace Discord.API
options = RequestOptions.CreateOrClone(options);
await SendGatewayAsync(GatewayOpCode.Heartbeat, lastSeq, options: options).ConfigureAwait(false);
}
- public async Task SendStatusUpdateAsync(UserStatus status, bool isAFK, long? since, Game game, RequestOptions options = null)
+ public async Task SendStatusUpdateAsync(UserStatus status, bool isAFK, long? since, Activity game, RequestOptions options = null)
{
options = RequestOptions.CreateOrClone(options);
var args = new StatusUpdateParams
@@ -261,7 +261,7 @@ namespace Discord.API
Status = status,
IdleSince = since,
IsAFK = isAFK,
- Game = game
+ Activity = game
};
await SendGatewayAsync(GatewayOpCode.StatusUpdate, args, options: options).ConfigureAwait(false);
}
diff --git a/src/Discord.Net.WebSocket/DiscordSocketClient.cs b/src/Discord.Net.WebSocket/DiscordSocketClient.cs
index d152bbc03..c81d86a8e 100644
--- a/src/Discord.Net.WebSocket/DiscordSocketClient.cs
+++ b/src/Discord.Net.WebSocket/DiscordSocketClient.cs
@@ -16,7 +16,7 @@ using System.IO;
using System.Linq;
using System.Threading;
using System.Threading.Tasks;
-using GameModel = Discord.API.Game;
+using GameModel = Discord.API.Activity;
namespace Discord.WebSocket
{
@@ -48,7 +48,7 @@ namespace Discord.WebSocket
///
public override int Latency { get; protected set; }
public override UserStatus Status { get; protected set; } = UserStatus.Online;
- public override Game? Game { get; protected set; }
+ public override Activity? Game { get; protected set; }
//From DiscordSocketConfig
internal int TotalShards { get; private set; }
@@ -326,10 +326,10 @@ namespace Discord.WebSocket
_statusSince = null;
await SendStatusAsync().ConfigureAwait(false);
}
- public override async Task SetGameAsync(string name, string streamUrl = null, StreamType streamType = StreamType.NotStreaming)
+ public override async Task SetActivityAsync(string name, string streamUrl = null, ActivityType streamType = ActivityType.Playing)
{
if (name != null)
- Game = new Game(name, streamUrl, streamType);
+ Game = new Activity(name, streamUrl, streamType);
else
Game = null;
await SendStatusAsync().ConfigureAwait(false);
@@ -346,10 +346,10 @@ namespace Discord.WebSocket
GameModel gameModel;
if (game != null)
{
- gameModel = new API.Game
+ gameModel = new API.Activity
{
Name = game.Value.Name,
- StreamType = game.Value.StreamType,
+ Type = game.Value.Type,
StreamUrl = game.Value.StreamUrl
};
}
diff --git a/src/Discord.Net.WebSocket/Entities/Users/SocketPresence.cs b/src/Discord.Net.WebSocket/Entities/Users/SocketPresence.cs
index 00d4b4bbc..9d52a797c 100644
--- a/src/Discord.Net.WebSocket/Entities/Users/SocketPresence.cs
+++ b/src/Discord.Net.WebSocket/Entities/Users/SocketPresence.cs
@@ -8,20 +8,20 @@ namespace Discord.WebSocket
public struct SocketPresence : IPresence
{
public UserStatus Status { get; }
- public Game? Game { get; }
+ public Activity? Activity { get; }
- internal SocketPresence(UserStatus status, Game? game)
+ internal SocketPresence(UserStatus status, Activity? game)
{
Status = status;
- Game = game;
+ Activity = game;
}
internal static SocketPresence Create(Model model)
{
- return new SocketPresence(model.Status, model.Game != null ? model.Game.ToEntity() : (Game?)null);
+ return new SocketPresence(model.Status, model.Activity != null ? model.Activity.ToEntity() : (Activity?)null);
}
public override string ToString() => Status.ToString();
- private string DebuggerDisplay => $"{Status}{(Game != null ? $", {Game.Value.Name} ({Game.Value.StreamType})" : "")}";
+ private string DebuggerDisplay => $"{Status}{(Activity != null ? $", {Activity.Value.Name} ({Activity.Value.Type})" : "")}";
internal SocketPresence Clone() => this;
}
diff --git a/src/Discord.Net.WebSocket/Entities/Users/SocketUser.cs b/src/Discord.Net.WebSocket/Entities/Users/SocketUser.cs
index a0c78b93f..9f76ba182 100644
--- a/src/Discord.Net.WebSocket/Entities/Users/SocketUser.cs
+++ b/src/Discord.Net.WebSocket/Entities/Users/SocketUser.cs
@@ -18,7 +18,7 @@ namespace Discord.WebSocket
public DateTimeOffset CreatedAt => SnowflakeUtils.FromSnowflake(Id);
public string Discriminator => DiscriminatorValue.ToString("D4");
public string Mention => MentionUtils.MentionUser(Id);
- public Game? Game => Presence.Game;
+ public Activity? Activity => Presence.Activity;
public UserStatus Status => Presence.Status;
internal SocketUser(DiscordSocketClient discord, ulong id)
diff --git a/src/Discord.Net.WebSocket/Extensions/EntityExtensions.cs b/src/Discord.Net.WebSocket/Extensions/EntityExtensions.cs
index 636ef68f4..3996a8725 100644
--- a/src/Discord.Net.WebSocket/Extensions/EntityExtensions.cs
+++ b/src/Discord.Net.WebSocket/Extensions/EntityExtensions.cs
@@ -2,11 +2,11 @@
{
internal static class EntityExtensions
{
- public static Game ToEntity(this API.Game model)
+ public static Activity ToEntity(this API.Activity model)
{
- return new Game(model.Name,
+ return new Activity(model.Name,
model.StreamUrl.GetValueOrDefault(null),
- model.StreamType.GetValueOrDefault(null) ?? StreamType.NotStreaming);
+ model.Type.GetValueOrDefault(null) ?? ActivityType.Playing);
}
}
}