-
-
Notifications
You must be signed in to change notification settings - Fork 2.3k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
[Mutes] Re-joining guild is nullifying the mute
if autorole exist
#6329
Comments
I can't reproduce test case 1, my bot properly gives back both roles. Though I didn't do it in a 3k+ server since I don't have access to a server that large where I can easily test something like this. Please try this on a fresh instance and report back if you still experience this issue, to rule out any potential for other cogs to be conflicting in some way (ie exclusive roles). |
One more thing, @Flame442 Flame, if you wish you can come to our server with your own bot
Servers under 100 might not be able to showcase this issue 10/10 times but I believe any server 1000+ with lots of roles, should be able to recreate the mentioned issues (both test cases: 1 and 2). |
While it seems like this issue is possible to reproduce given the specific server environment you have, it does seem like it requires some stars to align in order to happen. I'm also not entirely convinced we've tracked down the source of the issue, but we at least found that adding a sleep before adding the autoroles or moving the autorole to the default onboarding roles will fix this issue. I think it's a bit too niche and a bit too risky to fix in Mutes, since the only way to do it would be to delay adding the mute role on rejoin. For that reason, I'm going to consider this an issue that would be better fixed in other ways, namely in the 3rd party autorole cogs. |
What Red version are you using?
3.5.7
Cog name
Mutes
Command name
mute
What did you expect to happen?
This came to our attention when a few users of our server recently were able to re-join the server with
no muted
- bypassing the mute persistent (when they were muted permanently beforehand)So I tested it and it turns out, you can actually bypass mute by
rejoining
a server, in the presence ofANY
autorole/joinrole cog - In a system where you set certain role(s) asjoinrole
which gets added to the user upon joining the server.So, to answer the question, The expected behavior would be - Persistent Mute over guild Re-Join.
(I know Red already does but it's failing, details are as follows - )
What actually happened?
Findings from the test:
autorole
system is present on a completely different 3rd party bot that has no connection with red & the muting is done withred instance
. Which is really weird. Same result here - roles that are set as joinrole/autorole gets added to the user but not the mute role.Mutes
cog. (For example, if you execute say, 3 commands in one go, with one invoke - then chances are any of the 2 commands won't even get executed in the first place 5 out of 10 times - but this requires its own issue).extendedmodlog - by trusty
) support that statement - "The mute role got removed by the bot." Now yes it's true that extendedmodlog guesses the events but still as there's nothing in the server audit log that says otherwise.How can we reproduce this error?
Test 1 -
Mutes
andAutoRole
Cogs are on the same instanceLoad
Mutes
cog & set a muted role + logs.Install ANY autorole/joinrole cog and set a test role to be added as autorole - cog that adds a role as soon as a human joins a guild.
Test it in a 3k+ server.
Mute a test-account/user for any duration - enough so it can cover the test duration.
Leave the guild after that - from that user account.
Re-join as the same user.
You will notice the user doesn't have the mute role anymore, however they will have the autorole.
extendedmodlog
by trusty (verified) to check further.Test 2 -
Mutes
is on the Red instance,Autorole
is set to any 3rd party bot.Mutes
cog & set a muted role + logs.235148962103951360
) - it has a autorole module, set any test role as autorole/joinrole.Red instance
- enough so it can cover the test duration.You should be able to notice the same result - that the user doesn't have the mute role anymore, however They will have the autorole.
Anything else?
I've tried to fill this issue, with as much info as possible, sry if it is still not enough.
If it's not enough or requires more testing, then I'd love to give a hand. Please ping me if you need more info or testing.
Btw I believe red current versions are not the reason for this issue, since these are minor bump 3.5.x and this could be an overlong persisting issue coming from 3.5.0 dpy 2.0 causing not just mute persistent problem but also multiple role add & remove issue.
The text was updated successfully, but these errors were encountered: