Skip to content

Commit 324a4ca

Browse files
authored
Merge pull request #303 from Color-Chan/dev
Dev -> Main
2 parents f3fb429 + 26ecdf4 commit 324a4ca

6 files changed

Lines changed: 172 additions & 56 deletions

File tree

src/Color-Chan.Discord.Core/Common/API/Converters/DiscordGuildFeatureConverter.cs

Lines changed: 60 additions & 24 deletions
Original file line numberDiff line numberDiff line change
@@ -16,27 +16,36 @@ public override DiscordGuildFeature Read(ref Utf8JsonReader reader, Type typeToC
1616
var value = reader.GetString();
1717
return value switch
1818
{
19+
"ANIMATED_BANNER" => DiscordGuildFeature.AnimatedBanner,
1920
"ANIMATED_ICON" => DiscordGuildFeature.AnimatedIcon,
21+
"APPLICATION_COMMAND_PERMISSIONS_V2" => DiscordGuildFeature.ApplicationCommandPermissionsV2,
22+
"AUTO_MODERATION" => DiscordGuildFeature.AutoModeration,
2023
"BANNER" => DiscordGuildFeature.Banner,
2124
"COMMERCE" => DiscordGuildFeature.Commerce,
2225
"COMMUNITY" => DiscordGuildFeature.Community,
26+
"CREATOR_MONETIZABLE_PROVISIONAL" => DiscordGuildFeature.CreatorMonetizableProvisional,
27+
"CREATOR_STORE_PAGE" => DiscordGuildFeature.CreatorStorePage,
28+
"DEVELOPER_SUPPORT_SERVER" => DiscordGuildFeature.DeveloperSupportServer,
2329
"DISCOVERABLE" => DiscordGuildFeature.Discoverable,
2430
"FEATURABLE" => DiscordGuildFeature.Featurable,
31+
"INVITES_DISABLED" => DiscordGuildFeature.InvitesDisabled,
2532
"INVITE_SPLASH" => DiscordGuildFeature.InviteSplash,
2633
"MEMBER_VERIFICATION_GATE_ENABLED" => DiscordGuildFeature.MemberVerificationGateEnabled,
34+
"MORE_SOUNDBOARD" => DiscordGuildFeature.MoreSoundboard,
35+
"MORE_STICKERS" => DiscordGuildFeature.MoreStickers,
2736
"NEWS" => DiscordGuildFeature.News,
2837
"PARTNERED" => DiscordGuildFeature.Partnered,
2938
"PREVIEW_ENABLED" => DiscordGuildFeature.PreviewEnabled,
39+
"RAID_ALERTS_DISABLED" => DiscordGuildFeature.RaidAlertsDisabled,
40+
"ROLE_ICONS" => DiscordGuildFeature.RoleIcons,
41+
"ROLE_SUBSCRIPTIONS_AVAILABLE_FOR_PURCHASE" => DiscordGuildFeature.RoleSubscriptionsAvailableForPurchase,
42+
"ROLE_SUBSCRIPTIONS_ENABLED" => DiscordGuildFeature.RoleSubscriptionsEnabled,
43+
"SOUNDBOARD" => DiscordGuildFeature.Soundboard,
44+
"TICKETED_EVENTS_ENABLED" => DiscordGuildFeature.TicketedEventsEnabled,
3045
"VANITY_URL" => DiscordGuildFeature.VanityUrl,
3146
"VERIFIED" => DiscordGuildFeature.Verified,
3247
"VIP_REGIONS" => DiscordGuildFeature.VipRegions,
3348
"WELCOME_SCREEN_ENABLED" => DiscordGuildFeature.WelcomeScreenEnabled,
34-
"TICKETED_EVENTS_ENABLED" => DiscordGuildFeature.TicketedEventsEnabled,
35-
"MONETIZATION_ENABLED" => DiscordGuildFeature.MonetizationEnabled,
36-
"MORE_STICKERS" => DiscordGuildFeature.MoreStickers,
37-
"THREE_DAY_THREAD_ARCHIVE" => DiscordGuildFeature.ThreeDayThreadArchive,
38-
"SEVEN_DAY_THREAD_ARCHIVE" => DiscordGuildFeature.SevenDayThreadArchive,
39-
"PRIVATE_THREADS" => DiscordGuildFeature.PrivateThreads,
4049
_ => DiscordGuildFeature.Unknown
4150
};
4251
}
@@ -46,9 +55,18 @@ public override void Write(Utf8JsonWriter writer, DiscordGuildFeature value, Jso
4655
{
4756
switch (value)
4857
{
58+
case DiscordGuildFeature.AnimatedBanner:
59+
writer.WriteStringValue("ANIMATED_BANNER");
60+
break;
4961
case DiscordGuildFeature.AnimatedIcon:
5062
writer.WriteStringValue("ANIMATED_ICON");
5163
break;
64+
case DiscordGuildFeature.ApplicationCommandPermissionsV2:
65+
writer.WriteStringValue("APPLICATION_COMMAND_PERMISSIONS_V2");
66+
break;
67+
case DiscordGuildFeature.AutoModeration:
68+
writer.WriteStringValue("AUTO_MODERATION");
69+
break;
5270
case DiscordGuildFeature.Banner:
5371
writer.WriteStringValue("BANNER");
5472
break;
@@ -58,18 +76,36 @@ public override void Write(Utf8JsonWriter writer, DiscordGuildFeature value, Jso
5876
case DiscordGuildFeature.Community:
5977
writer.WriteStringValue("COMMUNITY");
6078
break;
79+
case DiscordGuildFeature.CreatorMonetizableProvisional:
80+
writer.WriteStringValue("CREATOR_MONETIZABLE_PROVISIONAL");
81+
break;
82+
case DiscordGuildFeature.CreatorStorePage:
83+
writer.WriteStringValue("CREATOR_STORE_PAGE");
84+
break;
85+
case DiscordGuildFeature.DeveloperSupportServer:
86+
writer.WriteStringValue("DEVELOPER_SUPPORT_SERVER");
87+
break;
6188
case DiscordGuildFeature.Discoverable:
6289
writer.WriteStringValue("DISCOVERABLE");
6390
break;
6491
case DiscordGuildFeature.Featurable:
6592
writer.WriteStringValue("FEATURABLE");
6693
break;
94+
case DiscordGuildFeature.InvitesDisabled:
95+
writer.WriteStringValue("INVITES_DISABLED");
96+
break;
6797
case DiscordGuildFeature.InviteSplash:
6898
writer.WriteStringValue("INVITE_SPLASH");
6999
break;
70100
case DiscordGuildFeature.MemberVerificationGateEnabled:
71101
writer.WriteStringValue("MEMBER_VERIFICATION_GATE_ENABLED");
72102
break;
103+
case DiscordGuildFeature.MoreSoundboard:
104+
writer.WriteStringValue("MORE_SOUNDBOARD");
105+
break;
106+
case DiscordGuildFeature.MoreStickers:
107+
writer.WriteStringValue("MORE_STICKERS");
108+
break;
73109
case DiscordGuildFeature.News:
74110
writer.WriteStringValue("NEWS");
75111
break;
@@ -79,6 +115,24 @@ public override void Write(Utf8JsonWriter writer, DiscordGuildFeature value, Jso
79115
case DiscordGuildFeature.PreviewEnabled:
80116
writer.WriteStringValue("PREVIEW_ENABLED");
81117
break;
118+
case DiscordGuildFeature.RaidAlertsDisabled:
119+
writer.WriteStringValue("RAID_ALERTS_DISABLED");
120+
break;
121+
case DiscordGuildFeature.RoleIcons:
122+
writer.WriteStringValue("ROLE_ICONS");
123+
break;
124+
case DiscordGuildFeature.RoleSubscriptionsAvailableForPurchase:
125+
writer.WriteStringValue("ROLE_SUBSCRIPTIONS_AVAILABLE_FOR_PURCHASE");
126+
break;
127+
case DiscordGuildFeature.RoleSubscriptionsEnabled:
128+
writer.WriteStringValue("ROLE_SUBSCRIPTIONS_ENABLED");
129+
break;
130+
case DiscordGuildFeature.Soundboard:
131+
writer.WriteStringValue("SOUNDBOARD");
132+
break;
133+
case DiscordGuildFeature.TicketedEventsEnabled:
134+
writer.WriteStringValue("TICKETED_EVENTS_ENABLED");
135+
break;
82136
case DiscordGuildFeature.VanityUrl:
83137
writer.WriteStringValue("VANITY_URL");
84138
break;
@@ -91,24 +145,6 @@ public override void Write(Utf8JsonWriter writer, DiscordGuildFeature value, Jso
91145
case DiscordGuildFeature.WelcomeScreenEnabled:
92146
writer.WriteStringValue("WELCOME_SCREEN_ENABLED");
93147
break;
94-
case DiscordGuildFeature.TicketedEventsEnabled:
95-
writer.WriteStringValue("TICKETED_EVENTS_ENABLED");
96-
break;
97-
case DiscordGuildFeature.MonetizationEnabled:
98-
writer.WriteStringValue("MONETIZATION_ENABLED");
99-
break;
100-
case DiscordGuildFeature.MoreStickers:
101-
writer.WriteStringValue("MORE_STICKERS");
102-
break;
103-
case DiscordGuildFeature.ThreeDayThreadArchive:
104-
writer.WriteStringValue("THREE_DAY_THREAD_ARCHIVE");
105-
break;
106-
case DiscordGuildFeature.SevenDayThreadArchive:
107-
writer.WriteStringValue("SEVEN_DAY_THREAD_ARCHIVE");
108-
break;
109-
case DiscordGuildFeature.PrivateThreads:
110-
writer.WriteStringValue("PRIVATE_THREADS");
111-
break;
112148
case DiscordGuildFeature.Unknown:
113149
break;
114150
default:

src/Color-Chan.Discord.Core/Common/API/DataModels/Guild/DiscordGuildFeature.cs

Lines changed: 70 additions & 25 deletions
Original file line numberDiff line numberDiff line change
@@ -10,11 +10,26 @@ public enum DiscordGuildFeature
1010
/// </summary>
1111
Unknown,
1212

13+
/// <summary>
14+
/// Guild has access to set an animated guild banner image.
15+
/// </summary>
16+
AnimatedBanner,
17+
1318
/// <summary>
1419
/// Guild has access to set an animated guild icon.
1520
/// </summary>
1621
AnimatedIcon,
1722

23+
/// <summary>
24+
/// Guild is using the old permissions configuration behavior.
25+
/// </summary>
26+
ApplicationCommandPermissionsV2,
27+
28+
/// <summary>
29+
/// Guild has set up auto moderation rules.
30+
/// </summary>
31+
AutoModeration,
32+
1833
/// <summary>
1934
/// Guild has access to set a guild banner image.
2035
/// </summary>
@@ -31,6 +46,21 @@ public enum DiscordGuildFeature
3146
/// </summary>
3247
Community,
3348

49+
/// <summary>
50+
/// Guild has enabled monetization.
51+
/// </summary>
52+
CreatorMonetizableProvisional,
53+
54+
/// <summary>
55+
/// Guild has enabled the role subscription promo page.
56+
/// </summary>
57+
CreatorStorePage,
58+
59+
/// <summary>
60+
/// Guild has been set as a support server on the App Directory.
61+
/// </summary>
62+
DeveloperSupportServer,
63+
3464
/// <summary>
3565
/// Guild is able to be discovered in the directory.
3666
/// </summary>
@@ -41,6 +71,11 @@ public enum DiscordGuildFeature
4171
/// </summary>
4272
Featurable,
4373

74+
/// <summary>
75+
/// Guild has paused invites, preventing new users from joining.
76+
/// </summary>
77+
InvitesDisabled,
78+
4479
/// <summary>
4580
/// Guild has access to set an invite splash background.
4681
/// </summary>
@@ -51,6 +86,16 @@ public enum DiscordGuildFeature
5186
/// </summary>
5287
MemberVerificationGateEnabled,
5388

89+
/// <summary>
90+
/// Guild has increased custom soundboard sound slots.
91+
/// </summary>
92+
MoreSoundboard,
93+
94+
/// <summary>
95+
/// Guild has increased custom sticker slots.
96+
/// </summary>
97+
MoreStickers,
98+
5499
/// <summary>
55100
/// Guild has access to create news channels.
56101
/// </summary>
@@ -65,54 +110,54 @@ public enum DiscordGuildFeature
65110
/// Guild can be previewed before joining via Membership Screening or the directory.
66111
/// </summary>
67112
PreviewEnabled,
68-
113+
69114
/// <summary>
70-
/// Guild has access to set a vanity URL.
115+
/// Guild has disabled alerts for join raids in the configured safety alerts channel.
71116
/// </summary>
72-
VanityUrl,
73-
117+
RaidAlertsDisabled,
118+
74119
/// <summary>
75-
/// Gild is verified.
120+
/// Guild is able to set role icons.
76121
/// </summary>
77-
Verified,
78-
122+
RoleIcons,
123+
79124
/// <summary>
80-
/// Guild has access to set 384kbps bitrate in voice (previously VIP voice servers).
125+
/// Guild has role subscriptions that can be purchased.
81126
/// </summary>
82-
VipRegions,
83-
127+
RoleSubscriptionsAvailableForPurchase,
128+
84129
/// <summary>
85-
/// Guild has enabled the welcome screen.
130+
/// Guild has enabled role subscriptions.
86131
/// </summary>
87-
WelcomeScreenEnabled,
88-
132+
RoleSubscriptionsEnabled,
133+
89134
/// <summary>
90-
/// Guild has enabled ticketed events.
135+
/// Guild has created soundboard sounds.
91136
/// </summary>
92-
TicketedEventsEnabled,
137+
Soundboard,
93138

94139
/// <summary>
95-
/// Guild has enabled monetization.
140+
/// Guild has access to set a vanity URL.
96141
/// </summary>
97-
MonetizationEnabled,
142+
VanityUrl,
98143

99144
/// <summary>
100-
/// Guild has increased custom sticker slots.
145+
/// Guild is verified.
101146
/// </summary>
102-
MoreStickers,
147+
Verified,
103148

104149
/// <summary>
105-
/// Guild has access to the three day archive time for threads.
150+
/// Guild has access to set 384kbps bitrate in voice (previously VIP voice servers).
106151
/// </summary>
107-
ThreeDayThreadArchive,
152+
VipRegions,
108153

109154
/// <summary>
110-
/// Guild has access to the seven day archive time for threads.
155+
/// Guild has enabled the welcome screen.
111156
/// </summary>
112-
SevenDayThreadArchive,
157+
WelcomeScreenEnabled,
113158

114159
/// <summary>
115-
/// Guild has access to create private threads.
160+
/// Guild has enabled ticketed events.
116161
/// </summary>
117-
PrivateThreads
162+
TicketedEventsEnabled
118163
}

src/Color-Chan.Discord.Core/Common/API/DataModels/Guild/DiscordSystemChannelFlags.cs

Lines changed: 16 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -27,5 +27,20 @@ public enum DiscordSystemChannelFlags
2727
/// <summary>
2828
/// Suppress server setup tips.
2929
/// </summary>
30-
SuppressGuildReminderNotifications = 1 << 2
30+
SuppressGuildReminderNotifications = 1 << 2,
31+
32+
/// <summary>
33+
/// Hide member joins sticker reply buttons.
34+
/// </summary>
35+
SuppressJoinNotificationReplies = 1 << 3,
36+
37+
/// <summary>
38+
/// Suppress role subscription purchase and renewal notifications
39+
/// </summary>
40+
SuppressRoleSubscriptionPurchaseNotifications = 1 << 4,
41+
42+
/// <summary>
43+
/// Hide role subscription sticker reply buttons
44+
/// </summary>
45+
SuppressRoleSubscriptionPurchaseNotificationReplies = 1 << 5
3146
}

src/Color-Chan.Discord.Core/Common/API/Params/Guild/DiscordCreateGuildRole.cs

Lines changed: 13 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,8 @@
1+
using System;
12
using System.Drawing;
23
using System.Text.Json.Serialization;
34
using Color_Chan.Discord.Core.Common.API.DataModels;
5+
using Color_Chan.Discord.Core.Common.API.DataModels.Guild;
46

57
namespace Color_Chan.Discord.Core.Common.API.Params.Guild;
68

@@ -23,11 +25,21 @@ public record DiscordCreateGuildRole
2325
public DiscordPermission Permissions { get; init; }
2426

2527
/// <summary>
26-
/// The RGB color value. Default: 0;
28+
/// The RGB color value.
2729
/// </summary>
30+
/// <remarks>
31+
/// Color will still be returned by the API, but using the colors field is recommended when doing requests.
32+
/// </remarks>
2833
[JsonPropertyName("color")]
34+
[Obsolete("Use Colors property instead.")]
2935
public Color Color { get; set; }
3036

37+
/// <summary>
38+
/// The role's colors.
39+
/// </summary>
40+
[JsonPropertyName("colors")]
41+
public DiscordGuildRoleColorsData Colors { get; set; } = null!;
42+
3143
/// <summary>
3244
/// Whether the role should be displayed separately in the sidebar. Default: false;
3345
/// </summary>

src/Color-Chan.Discord.Core/Common/API/Params/Guild/DiscordModifyGuildRole.cs

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,8 @@
1+
using System;
12
using System.Drawing;
23
using System.Text.Json.Serialization;
34
using Color_Chan.Discord.Core.Common.API.DataModels;
5+
using Color_Chan.Discord.Core.Common.API.DataModels.Guild;
46

57
namespace Color_Chan.Discord.Core.Common.API.Params.Guild;
68

@@ -25,9 +27,19 @@ public record DiscordModifyGuildRole
2527
/// <summary>
2628
/// The RGB color value.
2729
/// </summary>
30+
/// <remarks>
31+
/// Color will still be returned by the API, but using the colors field is recommended when doing requests.
32+
/// </remarks>
2833
[JsonPropertyName("color")]
34+
[Obsolete("Use Colors property instead.")]
2935
public Color? Color { get; set; }
3036

37+
/// <summary>
38+
/// The role's colors.
39+
/// </summary>
40+
[JsonPropertyName("colors")]
41+
public DiscordGuildRoleColorsData? Colors { get; set; } = null!;
42+
3143
/// <summary>
3244
/// Whether the role should be displayed separately in the sidebar.
3345
/// </summary>

0 commit comments

Comments
 (0)