cronokirby / alchemy

A discord library for Elixir
MIT License
152 stars 34 forks source link

Drop support for selfbots #93

Open khionu opened 4 years ago

khionu commented 4 years ago

Discord has a pretty hard stance against selfbots and automating user accounts of any kind.

cronokirby commented 4 years ago

Hmm, I remember this being true a few years ago as well. Has there been any major change in the policy since then?

Anyways, I do think that the docs don't go over this aspect. I think a change to the documentation explicitly saying that "selfbots are not allowed by discord, it's in the API, but use it at your own peril" would definitely be welcome.

As far has a hard deprecation or removal, I think that would break people's code, but on the other hand I wonder whether or not it even makes sense to allow people to use the API for selfbots, given the uses for them these days...

khionu commented 4 years ago

Discord is pretty good at cracking down on malicious use of user accounts, but I'd rather have it be as hard as possible for malicious actors to write their code. Discord's policy is a hard no. Originally, it was encouraged, but that prevented them from being able to sort selfbots and automated users.

cronokirby commented 4 years ago

Hmm, it seems that they've gotten stricter on this issue, and I don't like the idea of this project being used maliciously. Removal seems like a good choice then...

curz46 commented 4 years ago

My two cents: drop "official" support, but keep any existing code that permits it. Personally, I don't agree with removing features because they have the potential to be used "maliciously". I'd like to add that while officially, self-bots are against the Terms of Service, their use is not strictly limited to malicious purposes. There's plenty of honest reasons to use a self-bot. I don't agree with actively preventing users from using the library in a way that is against terms of service.

cronokirby commented 4 years ago

It's a bit more than just permitting it iirc. I remember having to actually add some code to be able to support it, so it's not like we're just not checking whether or not it's a selfbot. With that optic, it doesn't make a lot of sense to support that use case explicitly.

khionu commented 4 years ago

I do agree, there are times I miss when I ran a selfbot and used an eval to get various statistics and data, or perform various moderation actions on the fly that were too complex to express through an existing bot in a single step. It was great. But Discord can't acknowledge or support anyone's issues if they're using a library that helps break their TOS.

curz46 commented 4 years ago

I haven't heard of Discord giving support on specific bot library usage, anyway. If you're referring to usage of the Discord API, the library you're using is not relevant in any support you might be provided with. If the explicitly implemented features stop working for whatever reason, then it's justified. Otherwise, it seems like the only motive is respect for Discord as a platform. But, given any malicious user could just as easily look at the repository's history and restore the functionality, should the git history also be rewritten to censor it? I can't help but find dancing around arbitrary ToS clauses pointless. But this certainly isn't a new idea - discord.js also removed the feature to respect ToS within the last year, I think. Just my thoughts.

khionu commented 4 years ago

I doubt it was that recent. When T&S changed their stance officially, they also added a list of recommended libraries. Any library that didn't remove or deprecate user bots couldn't make the list. I'm fairly certain Discord.Js made the list.