so I'm setting up a Patreon for a game I'm working on, and one of the pledge tiers allows the user to access an in-game chat that nobody else can access (other than other members of that tier).
My game's chat engine allows me to create chats that are only visible to Patreon users by making the client check the user's save file for a "IsPatron" variable and if it's true show the chat, however, I have no way of setting this value to true when the user starts pledging for the specified tier, or any tier above it.
Originally I thought of having my game's Discord integration bot allow users to enter in a code given to them by Patreon when they start pledging and have that code link to their save file and have the bot set the value to true, however I see no way of contacting my game's server through Patreon as A: there is no API set up for my server that can be accessed through the Internet, and B: Patreon doesn't support the ability to return the user to a callback URL of my choice where the code would be generated.
I also thought of using the bot to look for all users in the tier's Discord group, but some users use different usernames for their save than they do Discord and there is no way to link their Discord to their save without asking for their Discord username and password on the client-side and authenticating with Discord to prove who they are - and then have the server check their account for a specified role.
I also want this Patreon validation to be done automatically and seamlessly - i.e, they pledge their amount, get their tier, the thank you message plays, and immediately the next time they play the game, they have access to the patreon goodies in-game with no further user action.
Is there a way to do this in C#, and make that variable in the save file true
if Patreon says "Yea, this user is pledging your project and pledging this tier, go ahead"?
And is it possible to keep this validation completely server-side so I don't have to release a patch for my client-side and force people to upgrade to that patch and obsolete old versions of the client?