diff --git a/src/Discord.Net.Core/Entities/Guilds/PermissionTarget.cs b/src/Discord.Net.Core/Entities/Guilds/PermissionTarget.cs index f0faaefb8..3b3e496ef 100644 --- a/src/Discord.Net.Core/Entities/Guilds/PermissionTarget.cs +++ b/src/Discord.Net.Core/Entities/Guilds/PermissionTarget.cs @@ -2,11 +2,12 @@ namespace Discord { + [ModelStringEnum] public enum PermissionTarget { [ModelEnumValue("role")] Role, - [ModelEnumValue("user")] + [ModelEnumValue("member")] User } } diff --git a/src/Discord.Net.Core/Entities/Permissions/Overwrite.cs b/src/Discord.Net.Core/Entities/Permissions/Overwrite.cs index 3531d6147..b43302e52 100644 --- a/src/Discord.Net.Core/Entities/Permissions/Overwrite.cs +++ b/src/Discord.Net.Core/Entities/Permissions/Overwrite.cs @@ -7,7 +7,6 @@ namespace Discord /// Gets the unique identifier for the object this overwrite is targeting. public ulong TargetId { get; } /// Gets the type of object this overwrite is targeting. - [ModelStringEnum] public PermissionTarget TargetType { get; } /// Gets the permissions associated with this overwrite entry. public OverwritePermissions Permissions { get; } diff --git a/src/Discord.Net.Core/Entities/Users/UserStatus.cs b/src/Discord.Net.Core/Entities/Users/UserStatus.cs index 5f9ce9df5..318ec478d 100644 --- a/src/Discord.Net.Core/Entities/Users/UserStatus.cs +++ b/src/Discord.Net.Core/Entities/Users/UserStatus.cs @@ -2,6 +2,7 @@ namespace Discord { + [ModelStringEnum] public enum UserStatus { Offline, diff --git a/src/Discord.Net.Rest/API/Common/Presence.cs b/src/Discord.Net.Rest/API/Common/Presence.cs index c6c7d3436..68dae302a 100644 --- a/src/Discord.Net.Rest/API/Common/Presence.cs +++ b/src/Discord.Net.Rest/API/Common/Presence.cs @@ -10,7 +10,6 @@ namespace Discord.API [ModelProperty("guild_id")] public Optional GuildId { get; set; } [ModelProperty("status")] - [ModelStringEnum] public UserStatus Status { get; set; } [ModelProperty("game")] public Game Game { get; set; } diff --git a/src/Discord.Net.Serialization/Attributes/ModelStringEnumAttribute.cs b/src/Discord.Net.Serialization/Attributes/ModelStringEnumAttribute.cs index 9c88a23ae..e5a141ff1 100644 --- a/src/Discord.Net.Serialization/Attributes/ModelStringEnumAttribute.cs +++ b/src/Discord.Net.Serialization/Attributes/ModelStringEnumAttribute.cs @@ -2,7 +2,7 @@ namespace Discord.Serialization { - [AttributeUsage(AttributeTargets.Property, AllowMultiple = false)] + [AttributeUsage(AttributeTargets.Enum, AllowMultiple = false)] public class ModelStringEnumAttribute : Attribute { } diff --git a/src/Discord.Net.Serialization/Json/DefaultJsonSerializer.cs b/src/Discord.Net.Serialization/Json/DefaultJsonSerializer.cs index f31c7cb04..3e6606d27 100644 --- a/src/Discord.Net.Serialization/Json/DefaultJsonSerializer.cs +++ b/src/Discord.Net.Serialization/Json/DefaultJsonSerializer.cs @@ -52,7 +52,7 @@ namespace Discord.Serialization.Json AddGenericConverter(typeof(Converters.ArrayPropertyConverter<>), //Arrays (type, prop) => type.IsArray, innerType => innerType.GetElementType()); AddGenericConverter(typeof(Converters.StringEnumPropertyConverter<>), //Enums : string - (type, prop) => type.IsEnum && prop.GetCustomAttribute() != null); + (type, prop) => type.IsEnum && type.GetCustomAttribute() != null); AddGenericConverter(typeof(Converters.Int64EnumPropertyConverter<>), //Enums : sbyte/short/int/long (type, prop) => type.IsEnum && IsSignedEnum(Enum.GetUnderlyingType(type.AsType()))); AddGenericConverter(typeof(Converters.UInt64EnumPropertyConverter<>), //Enums: byte/ushort/uint/ulong