View Single Post
deprale
Senior Member
Join Date: Oct 2018
Location: Leeds
Old 11-28-2022 , 11:01   Re: Family Sharing ( Again )
Reply With Quote #6

This is a very rough around the edges version of it for now, I'm not very proud of how it looks right now and I'm not even sure it's bugless and there's a few caveats with it, kinda don't want to refactor it right now (can be done 3x times easier CLICK to know why)
Basically it's not really great but it should get the job done for now, until I refactor it and make it look at least half decent, currently lots of unnecessary code and workaround "tricks" with tasks and stuff.
Requires AMXXEASYHTTP CLICK TO DOWNLOAD

Please report back any bugs as I have only tested this on a local environment with just ME on it, I'm almost positive it shouldn't throw a fit either way (if I've done the checks properly)

This is a very ALPHA version of it, coded horribly indentation non existent half and half made, so don't expect 0 bugs especially test this with more than 1 person on a server if possible and report back for any issues.
This has a lot of caveats, can't explain how it works right now as I'm leaving for work sorry, I will come back with an edit whenever I can!
The code is HORRIBLE but it's functional (I THINK), I optimized this pile of garbage as much as I could until I find out a better way to pass player ids to ezhttp_get(), for now what I'm doing is setting steamid's in a trie array on connect and checking with for loops and a task (very bad practice) blab9wa9baw0bawldawl basically everything is a mess, but it should work. And I have a lot of repeating code and everything is a mess and I'm angry
This has a theoretical limit of 200 requests per hour so if you have more than 200 unique players per hour (doubt it), then this might potentially NOT BE A GOOD IDEA FOR YOU TO HAVE ON YOUR SERVER.

This WILL save verified players that own the game in a file called afs_whitelist.ini in the configs folder, so you will in theory never run out of the 200 requests per hour.
The only way to bypass this is to own the game, join the server, pass the verification, then delete the game from your account and family share it... (shower thought) ROFL.


THIS REQUIRES a STEAM WEB API KEY
Set your api key in amxx.cfg
afs_steam_api_key "KEY_HERE"

you can find your web api key HERE


Also - funny thing, if someone has no games at all on his account (most free games don't appear even if you ask for them to appear in the request), it will trigger the empty response which I check for to see if somebody has private profile, this can be done better with another API call to see communityvisibility if it's on 3 (public), and eliminate this duplicate but like I said that's for another time when I refactor this pile of garbage, so for now the "STEAM FAMILY SHARED DETECTED" will only be shown if a player owns AT LEAST 1 GAME (BOUGHT?) that shows in the API CALL, I'm not quite sure how some free games appear while others don't so it's a grey area in that aspect to me.
So for now people with no games and people with private profiles can't be diferentiated so yeah, but it will still keep them away from your server. MY ADHD IS KICKING IN IM WRITING ALL OVER THE PLACE IM SORRY FOR THIS MESS BYE!

I'll release this as a plugin submission whenever I fix the many issues it has.
EDIT: PLEASE DOWNLOAD THE ACTUAL BETTER RELEASE LINK UNDERNEATH THIS BIG ASS TEXT

https://forums.alliedmods.net/showthread.php?p=2795279 --> Better plugin, and actual release.




tl;dr many issues but works (didnt test with multiple players on a server)
Attached Files
File Type: sma Get Plugin or Get Source (anti_family_share.sma - 47 views - 11.2 KB)
__________________

Last edited by deprale; 12-15-2022 at 11:14.
deprale is offline