Add user locale & guild locale in interactions (#2040)

This commit is contained in:
Quin Lynch
2022-01-14 07:53:00 -04:00
committed by GitHub
parent 9a52d05637
commit 2731e20146
4 changed files with 45 additions and 0 deletions

View File

@@ -49,6 +49,19 @@ namespace Discord
/// </summary>
IUser User { get; }
/// <summary>
/// The preferred locale of the invoking User.
/// </summary>
string UserLocale { get; }
/// <summary>
/// The preferred locale of the guild this interaction was executed in. <see cref="null"/> if not executed in a guild.
/// </summary>
/// <remarks>
/// Non-community guilds (With no locale setting available) will have en-US as the default value sent by Discord.
/// </remarks>
string GuildLocale { get; }
/// <summary>
/// Responds to an Interaction with type <see cref="InteractionResponseType.ChannelMessageWithSource"/>.
/// </summary>

View File

@@ -37,5 +37,11 @@ namespace Discord.API
[JsonProperty("message")]
public Optional<Message> Message { get; set; }
[JsonProperty("locale")]
public Optional<string> UserLocale { get; set; }
[JsonProperty("guild_locale")]
public Optional<string> GuildLocale { get; set; }
}
}

View File

@@ -32,6 +32,12 @@ namespace Discord.Rest
/// </summary>
public RestUser User { get; private set; }
/// <inheritdoc/>
public string UserLocale { get; private set; }
/// <inheritdoc/>
public string GuildLocale { get; private set; }
/// <inheritdoc/>
public DateTimeOffset CreatedAt { get; private set; }
@@ -126,6 +132,13 @@ namespace Discord.Rest
{
Channel = (IRestMessageChannel)await discord.GetChannelAsync(model.ChannelId.Value);
}
UserLocale = model.UserLocale.IsSpecified
? model.UserLocale.Value
: null;
GuildLocale = model.GuildLocale.IsSpecified
? model.GuildLocale.Value
: null;
}
internal string SerializePayload(object payload)

View File

@@ -39,6 +39,12 @@ namespace Discord.WebSocket
/// </summary>
public IDiscordInteractionData Data { get; private set; }
/// <inheritdoc/>
public string UserLocale { get; private set; }
/// <inheritdoc/>
public string GuildLocale { get; private set; }
/// <summary>
/// The version of this interaction.
/// </summary>
@@ -121,6 +127,13 @@ namespace Discord.WebSocket
User = SocketGlobalUser.Create(Discord, Discord.State, model.User.Value);
}
}
UserLocale = model.UserLocale.IsSpecified
? model.UserLocale.Value
: null;
GuildLocale = model.GuildLocale.IsSpecified
? model.GuildLocale.Value
: null;
}
/// <summary>