Skip to content

Commit 14e3ffe

Browse files
Don't dehoist quarantined members
Upgrades DSharpPlus to 5.0.0-nightly-02454 to make use of DiscordMember.MemberFlags Closes #265
1 parent 3cc9cf5 commit 14e3ffe

File tree

4 files changed

+15
-6
lines changed

4 files changed

+15
-6
lines changed

Cliptok.csproj

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -15,8 +15,8 @@
1515

1616
<ItemGroup>
1717
<PackageReference Include="Abyssal.HumanDateParser" Version="2.0.0-20191113.1" />
18-
<PackageReference Include="DSharpPlus" Version="5.0.0-nightly-02453" />
19-
<PackageReference Include="DSharpPlus.Commands" Version="5.0.0-nightly-02453" />
18+
<PackageReference Include="DSharpPlus" Version="5.0.0-nightly-02454" />
19+
<PackageReference Include="DSharpPlus.Commands" Version="5.0.0-nightly-02454" />
2020
<PackageReference Include="Microsoft.Bcl.AsyncInterfaces" Version="9.0.1" />
2121
<PackageReference Include="Microsoft.Extensions.Caching.Abstractions" Version="9.0.1" />
2222
<PackageReference Include="Microsoft.Extensions.Caching.Memory" Version="9.0.1" />

Commands/DehoistCmds.cs

Lines changed: 7 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -24,6 +24,12 @@ public async Task DehoistCmd(CommandContext ctx, [Parameter("member"), Descripti
2424
await ctx.RespondAsync($"{Program.cfgjson.Emoji.Error} {member.Mention} is already dehoisted!", ephemeral: true);
2525
return;
2626
}
27+
28+
if (member.MemberFlags.Value.HasFlag(DiscordMemberFlags.AutomodQuarantinedUsername))
29+
{
30+
await ctx.RespondAsync($"{Program.cfgjson.Emoji.Error} {member.Mention} is quarantined because their name is in violation of AutoMod rules! Discord will not let me dehoist them. Please change their nickname manually.", ephemeral: true);
31+
return;
32+
}
2733

2834
try
2935
{
@@ -186,7 +192,7 @@ public async Task MassUndhoist(TextCommandContext ctx)
186192
continue;
187193
}
188194

189-
if (member.DisplayName[0] == DehoistHelpers.dehoistCharacter)
195+
if (member.DisplayName[0] == DehoistHelpers.dehoistCharacter && !member.MemberFlags.Value.HasFlag(DiscordMemberFlags.AutomodQuarantinedUsername))
190196
{
191197
var newNickname = member.Nickname[1..];
192198
await member.ModifyAsync(a =>

Events/MemberEvents.cs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -239,7 +239,7 @@ await e.Member.ModifyAsync(a =>
239239

240240
// Persist permadehoists
241241
if (await db.SetContainsAsync("permadehoists", e.Member.Id))
242-
if (e.Member.DisplayName[0] != DehoistHelpers.dehoistCharacter)
242+
if (e.Member.DisplayName[0] != DehoistHelpers.dehoistCharacter && !e.Member.MemberFlags.Value.HasFlag(DiscordMemberFlags.AutomodQuarantinedUsername))
243243
// Member is in permadehoist list. Dehoist.
244244
e.Member.ModifyAsync(a =>
245245
{

Helpers/DehoistHelpers.cs

Lines changed: 5 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -38,6 +38,9 @@ await targetMember.ModifyAsync(a =>
3838

3939
return false;
4040
}
41+
42+
if (targetMember.MemberFlags.Value.HasFlag(DiscordMemberFlags.AutomodQuarantinedUsername))
43+
return false;
4144

4245
try
4346
{
@@ -78,7 +81,7 @@ await targetMember.ModifyAsync(a =>
7881
// If member is dehoisted already, but NOT permadehoisted, skip updating nickname.
7982

8083
// If member is not dehoisted
81-
if (discordMember.DisplayName[0] != dehoistCharacter)
84+
if (discordMember.DisplayName[0] != dehoistCharacter && !discordMember.MemberFlags.Value.HasFlag(DiscordMemberFlags.AutomodQuarantinedUsername))
8285
{
8386
// Dehoist member
8487
try
@@ -131,7 +134,7 @@ await discordMember.ModifyAsync(a =>
131134
}
132135

133136
// Un-dehoist member
134-
if (discordMember.DisplayName[0] == dehoistCharacter)
137+
if (discordMember.DisplayName[0] == dehoistCharacter && !discordMember.MemberFlags.Value.HasFlag(DiscordMemberFlags.AutomodQuarantinedUsername))
135138
{
136139
var newNickname = discordMember.DisplayName[1..];
137140
try

0 commit comments

Comments
 (0)