What is it?
MCLink is a service that allows you to link your Minecraft account and a third party account, like Patreon, Twitch or GameWisp. The primary purpose is to allow people to do automatic whitelist management on servers.
A bit of history
Way back in 2013 I created a system to allow Twitch subscribers to automatically log in to a Minecraft server run by a streamer, if they had the same usernames.
Then I added a textbox to allow players to enter their own usernames.
This system then evolved into a monster of PHP, NodeJS and handwritten SQL to connect it all. The NodeJS was there to emulate a Minecraft server and allow players to log in to make sure the usernames actually belonged to whomever claimed them.
I have wanted Patreon integration for a long time, but when I first checked there was no proper API support and there was not enough interest to further investigate. Fast forward to 3 weeks ago, when I got a request from a user asking for Patreon support.
Turns out the API was now available, and upon bothering the nice people of the support team, I was told that the API platform was only a week away from launching. I then decided to put in a whole lot of effort, completely rewrite everything as a Python (Flask) project, with a different Minecraft Server emulation library (quarry.
Now the new system is finally live!
The website: mclink.dries007.net (Yes, I know the site is not the prettiest thing, if someone wants to do some design work, I’d take the help.)
I’ve already written a mod for Minecraft Forge 1.12.2 (Modded Minecraft).
I’m still working on a Spigot (Bukkit) version.
(The mods have not been released, since I want to test them properly.)
I welcome all feedback!
Wow! Congrats on getting it live.
For the uninitiated, what’s the best way to test this in your recommendation? Any particular creator to try it with?
Or, if easier, can you share screenshots of the setup and use flow, from a creator and a patron’s point of view?
This is exciting. And looking forward to getting this in the app directory.
PS I love the backstory
I wrote this during an hour of downtime I had in school, I’ll be uploading
some more information, with schreenshots, when I have the time to make them.
Hopefully I can get a streamer I know (she’s a creator on Patreon) to
broadcast it as I tutorial I can snip out and share.
I’m hoping to use her Patreons as Guinea Pigs in the remaining testing
I may opensource the code, but for now if anyone’s interested, I’ll add
them on GitHub.
That sounds really great. Hope this isn’t affecting your grades
If a picture is better than a thousand words, what’s 1 minute’s worth of pictures then?
This is how long it takes, after that a player can log into any creator’s server they have access through via Twitch, Patreon and GameWisp subscriptions.
The authorization is instant, so you do not have to wait for any hourly job to add you to a list etc.
The creator (or their server admins) have to do the setup on the server side, but all they need for it is the API token returned by the /api command, a regular player doesn’t need that.
Entering that into the config, they can then also input what service can authorize access, for example, you can allow only 10+$ patreons and non-Amazon-Prime (a kind of free trial subscription) Twitch subscribers to log in, or any combination.
This is of course dependant on what server software they use, exact instructions will be included on the mod info/download pages.
This is pretty fantastic!
Sure you’ve already thought of this, but having some way for the link to open in the user’s browser automatically (as oppose to pasting the url) would be improve that account authorization flow. That’s something I’ve been struggling with myself with my Adobe extensions.
Instead of clicking copy to clipboard, you can just click yes, and they open in a regular browser, I did the copy to have control while recording.
EDIT: And thanks!
That video makes it much clearer to me wow!
Looking forward to the testing phase and hearing what you learn!
I have now tested Patreon integration and it all seems to work nice! aka It’s LIVE
If you’d like to try this out without setting up your own MC server, you can try and join my test server:
Minecraft version 1.12.2, address: vps3.dries007.net:25560 (you don’t need mods)
You will not be allowed to join until you either:
- Pledge to me on Patreon (for 1$)
- Support the wonderful Maliveth, also 1$ on Patreon OR on Twitch
- Subscribe to Mr Deadpine, on Twitch
(and you follow the linking procedure, as described on the MCLink website)
These are the same people I run a shared Minecraft server for called ccmv, so I have easy access to testers and api tokens.
The (server side) mod is now publicly available for download on CurseForge, a link is kept on the MCLink website.
Very very cool! @tal and I went through the flow and looks like it could be awesome! How’s this going? What feedback are you getting? If you had to identify bottlenecks/blockers for users what are you seeing from responses?
We had a bit of a hard time testing this out though
Oops, I forgot to disable the vanilla whitelist on the test server. This issue should be fixed now.
I welcome any feedback on the process, it’s quite hard for me to imagine issues users will have.
@Dries007 would love to have you apply for review for the app directory when you’re ready for it. This is an exciting integration. https://www.patreon.com/portal/registration/submitting-integration
I’d love to, but that’s quite a list of questions, some of them I’ll have to edit/add pages to the site for, so it may take a little while still.
The feedback has been limited, as the people I have on the service already have used the previous version before, so they know what to do / expect.
The bottleneck (I expect) is getting people to set this up. Most server owners I know seem to do all of this whitelist management by hand because they don’t know this (or similar projects) exist.
I just hope the instructions for setting up a server are simple enough too, I’m thinking about making a (video) tutorial for it, if you think that’s a good idea. (I don’t think screenshots would cover it well.)
And I agree, this is both valuable and a tough thing to conceptualize before seeing it walked through like your video. A screencast sounds like it would help a lot of people.
We’re pretty pumped over here about seeing the amount of use cases and creators this can impact!
I’ve made a more in depth video, with voice instead of text. Hopefully this is even clearer than the previous, it also goes in detail about how to setup a server.
Again, any feedback on this is highly valued.
Now I only need to fill out the 100 questions
Hey @tal I send you an email about some of the details of my app on the app portal (the author & icon),
It’s been a while now and I thought I might as well ask about it here.
Besides that, a little update: I’ve noticed I can no longer link accounts. I get a 401 back after quite a long delay (>60 seconds). I’m still investigating, It might be an issue on my side, but so far it doesn’t seem like it.
I set a timeout of 15 seconds and now it’s magically fixed…
Any word on the Spigot plug in? Also are you willing to take on some commission work?
Spigot is supported via the Bukkit plugin for now. Please contact me (preferable via email) for custom work or commissions.
First, is this open source?
Second, do you have a source example of an auth mod? I would be interested in one for linking with our Discord server, so that only members of our Discord server can join our Minecraft server.
Edit: A bit more reading leads me to the about page and yes it is open source : https://mclink.dries007.net/about
The backend code is not open source, because I don’t want a million clones (the idea is that everyone should only have to link once, not per server) but i do pledge to release the source if I quit with the service.
The mod part however is, mainly because I want people to be able to help me with porting to other platforms if they would like.
There is no Discord integration, but I would actually like to do that in the future. Although everything Minecraft related is going at very low speed at the moment as I have other priorites in my life atm.