From 1c172cbfc7ad2b58a7a4a2c13667be4d62a3df94 Mon Sep 17 00:00:00 2001 From: sappho Date: Thu, 15 May 2025 22:51:23 -0400 Subject: [PATCH] Create README.md --- README.md | 30 ++++++++++++++++++++++++++++++ 1 file changed, 30 insertions(+) create mode 100644 README.md diff --git a/README.md b/README.md new file mode 100644 index 0000000..3cc4e5f --- /dev/null +++ b/README.md @@ -0,0 +1,30 @@ +# Connect - A safer OnClientPreConnect forward + +This extension provides a OnClientPreConnect forward (similar to CBaseServer's), but does proper checking to prevent malicious people spoofing SteamIDs. + +If you are currently using CBaseServer for reserved slots, it's possible for a client to spoof an admin's SteamID and cause someone to be kicked from the server (although they would be later denied, so they couldn't actually join the game). +This extension does these checks before OnClientPreConnect is fired, so this isn't possible. + +There are some additional features such as being able to change the password provided before it's checked (see included example plugin) and the ability to reject the client with a reason (like SourceMod's later OnClientConnect forward). + +Only the Source 2009 engine is supported, as it's the only one that's been updated to use the new authentication system. + +# Provided forwards + +``` +public bool OnClientPreConnectEx +( + const char[] name, + char password[255], + const char[] ip, + const char[] steamID, + char rejectReason[255] +) +{ + // ... +} +``` + +`return false;` to disallow the client from joining, and change `rejectReason` to what you want them to be shown when denied. + +Note that this function is called before the client has a client index on the server.