PhasecoreX / PCXCogs

PhasecoreX's Cogs for Red-DiscordBot
GNU General Public License v3.0
57 stars 46 forks source link

[bancheck] banned user still banned even after the record is cleared #99

Open herrnn opened 1 year ago

herrnn commented 1 year ago

Its seems like theres some people who got crossfire in the bot fight and get listed. and they are still banned even after the record on the API got cleared.

scottoss commented 1 year ago

i dont think this can be done using api

my bot can do it but it works using a bot staff command but it only works for the antiraid api and not ravy

besides the antiraid api itself also does not support this on its own

my bot is connected directly to the internal api and is able to check what users are banned in a server

sadly redbot wont support this

scottoss commented 1 year ago

Screenshot_2022-12-25-11-41-22-21_572064f74bd5f9fa804b05334aa4f912 Screenshot_2022-12-25-11-41-41-42_572064f74bd5f9fa804b05334aa4f912

scottoss commented 1 year ago

it could work by adding a check by adding a check that runs every 5 mins that compares the server banlist against the api to see if everyone is still listed but idk if u would get rate limited if u do

PhasecoreX commented 1 year ago

Back in the day, KSoft had an endpoint that listed all of the recent bans (and probably unbans). Something like this could be checked and used to unban users. The issue is that every service would have to support it, and currently none do. It would also be a higher barrier of entry for new services to be integrated with BanCheck.

The solution I've been thinking of is to automatically check each service once a day with anyone who has been banned by BanCheck. Could be configurable, where we check for 30 days or something. The idea is that the user who was banned has 30 days or whatever to get themselves off of the ban list that banned them. Once they do, the automatic daily check will see they are no longer banned, and will unban them. Then they are free to rejoin. If they don't do it in 30 days, they were probably a bad actor anyway, and we only wasted 30 checks on them.

The only con to this is that we would have to make it blatantly obvious to the banned user that we only check once a day and for 30 days. If they get off the list, they still have to wait for up to a day before we pick that change up and unban them. If they still share a server with the bot somehow, they will get an invite DM.

This also would mesh well with any future service having the live feed of bans and unbans. It'll check for 30 days on services that don't support it, but any that do, the user basically has as long as they want to get off the list. The only weird part will be keeping track of users who were banned by BanCheck and banned manually, as you wouldn't want to manually ban someone and then they magically get unbanned by BanCheck.

herrnn commented 1 year ago

I think theres another way to do it make it assign a role with a channel that keep them there where they cant see any other scammer and they can clarify what happend and people in this channel will be kick/ban after a period of time. This make it that they cant see other user and cant dm while be able to have a say if they think its a false positive.