Skip to content

Commit 3ce4eab

Browse files
Keep track of manual dehoists, don't remove them on unmute
1 parent a9c9983 commit 3ce4eab

File tree

3 files changed

+9
-1
lines changed

3 files changed

+9
-1
lines changed

Commands/DehoistCmds.cs

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -38,6 +38,7 @@ await member.ModifyAsync(a =>
3838
a.Nickname = DehoistHelpers.DehoistName(member.DisplayName);
3939
a.AuditLogReason = $"[Dehoist by {DiscordHelpers.UniqueUsername(ctx.User)}]";
4040
});
41+
await Program.redis.SetAddAsync("manualDehoists", user.Id);
4142
}
4243
catch
4344
{

Events/MemberEvents.cs

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -236,6 +236,12 @@ await e.Member.ModifyAsync(a =>
236236

237237
DehoistHelpers.CheckAndDehoistMemberAsync(e.Member);
238238

239+
// If member is not dehoisted but is in manualDehoists, remove them
240+
if (e.Member.Nickname is null
241+
|| (e.Member.Nickname[0] != DehoistHelpers.dehoistCharacter
242+
&& await Program.redis.SetContainsAsync("manualDehoists", e.Member.Id)))
243+
await Program.redis.SetRemoveAsync("manualDehoists", e.Member.Id);
244+
239245
// Persist permadehoists
240246
if (await redis.SetContainsAsync("permadehoists", e.Member.Id))
241247
if (e.Member.DisplayName[0] != DehoistHelpers.dehoistCharacter && !e.Member.MemberFlags.Value.HasFlag(DiscordMemberFlags.AutomodQuarantinedUsername) && !e.Member.MemberFlags.Value.HasFlag(DiscordMemberFlags.AutomodQuarantinedGuildTag))

Helpers/MuteHelpers.cs

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -465,7 +465,8 @@ await LogChannelHelper.LogMessageAsync("mod",
465465
await Program.redis.HashDeleteAsync("mutes", targetUser.Id);
466466

467467
// attempt to undehoist member if they should not otherwise be hoisted
468-
if (member.Nickname is not null
468+
if (!await Program.redis.SetContainsAsync("manualDehoists", member.Id)
469+
&& member.Nickname is not null
469470
&& member.Nickname[0] == DehoistHelpers.dehoistCharacter
470471
&& !Program.cfgjson.AutoDehoistCharacters.Contains(member.Nickname[1])
471472
&& !Program.cfgjson.SecondaryAutoDehoistCharacters.Contains(member.Nickname[1])

0 commit comments

Comments
 (0)