BlueDevelopersInc / DiscordSRVUtils

A DiscordSRV addon that adds more useful features to the bot
http://discordsrvutils.xyz/
GNU General Public License v3.0
23 stars 9 forks source link

Vouching for users. #92

Closed ryantheleach closed 2 years ago

ryantheleach commented 2 years ago

I run a semi-public anyone-can-invite Minecraft server using DiscordSRV account linking as a whitelist.

It would be huge to me, if new members could be tracked by who invited them.

Preferrably by who generated the invite link they used, but failing that, as a part of the linking/sign up process, have the user declare which user invited them.

This could be combined with a vouch command of some sort, in order to give out 'Trusted' roles when enough users vouch for them as being helpful etc.

So basically a basic reputation system that can track invites.

BlueTree242 commented 2 years ago

hey, i might add an invite tracking system, but no roles to high inviters, nor asking who invited before linking

ryantheleach commented 2 years ago

but no roles to high inviters,

This needs to never be added, would lead to large amounts of abuse, so 100% agree.

nor asking who invited before linking

I'm not sure what you are referring to here..

BlueTree242 commented 2 years ago

Preferrably by who generated the invite link they used, but failing that, as a part of the linking/sign up process, have the user declare which user invited them.

I don't really get this part, can you clearify?

ryantheleach commented 2 years ago

It would be huge to me, if new members could be tracked by who invited them.

Preferably by who generated the invite link they used, but failing that, as a part of the linking/sign up process, have the user declare which user invited them.

My problem:

Running an invite only Minecraft Server using Discord as the auth mechanism, e.g. word of mouth recruiting as a Greylist, results in the necessity to track who invited who. This is generally because most people are good actors in this situation inviting friends, but a select few, either unintentionally by recruiting blindly on reddit, forums etc, or with clear intent to cause disruption, invite members who wish to troll/grief etc.

The 'obvious' solution:

The obvious (assuming it's possible) solution is to use a system that can track who invites who, to create a Directed Acyclic Graph, to find out who the person inviting these people are, and either have a quiet word to them, revoke their invitational privilege's, or ban them.

However this assumes that is indeed possible to track invites on discord.

so if it's possible to easily track this, great. If not, some other mechanism would be required to 'manually' track them using the bot.

I was proposing that in the event that it appears it's impossible to track invites using Discords libraries/API's, That before the DiscordSRV whitelist role was added to the new user by the bot, or possibly if it makes more sense, before linking was finalized, that the new user could be asked for which user invited them to gather this data.


This could be combined with a vouch command of some sort, in order to give out 'Trusted' roles when enough users vouch for them as being helpful etc.

This I consider less critical, but people who invite a cluster of people who remain dedicated players, end up being influential purely by association.

People who build / play nice together, should have a method of reflecting that, if and when it comes to expanding the moderation team of who they respect.

Having a method of endorsing another player as trusted, is a tool that staff can use to assist in determining who to promote.


I hope this clarifies what problems I encounter, and the solutions I was suggesting.

BlueTree242 commented 2 years ago

Ok, i think i understood, it it possible to track inviters, when and if they left/rejoined etc, and its also possible to show them using a command, shouldn't this be enough (i also must say, detecting the inviter has a chance to fail sometimes)... As soon as you verify this is what you want, ill add

However i don't think asking for the inviter is the best thing tho, but i don't mind adding

ryantheleach commented 2 years ago

Asking for the inviter was just a fallback in case the data wasn't available.

But yeah, anything that can log, track and display the relationship between inviter and invitee is great.

BlueTree242 commented 2 years ago

your feature is being worked on (invite-tracking branch, its not done yet)

BlueTree242 commented 2 years ago

Added, and available in development builds, and soon this will be available to everyone

Notes

  1. Re-inviting overrides the old invite, so an invite cannot be repeated
  2. Ignores when it fails to detect the inviter
  3. Placeholder inviter was added to the welcome message but it's currently not used by default as it may be null
  4. Currently not very well tested, please let us know if you find any bugs