Commit Graph
95 Commits
Author SHA1 Message Date
A1m` 07fc524d27 Fixed incorrect use of ReferenceToIndex, which caused some functions to be unstable during client connection. (#2)
While this function works well with the client indexes we pass in, as its name
suggests, we should essentially be passing player references, not client indexes.
The problem is that SourceMod looks for this player in the entity list, but they
might not be there when connecting, or they might be another client or a bot.

This makes the code unstable and confusing, and it works intermittently.
Steam doesn't care whether the player is in the entity list—it works with the
Steam ID. Using ReferenceToIndex here is fundamentally wrong and causes random
-1 errors, especially during OnClientConnect when the entity may not exist yet.

This commit replaces it with a direct client index lookup, which is correct and
reliable because params[1] is already a client index.
2026-07-13 21:39:04 +00:00
Nicholas Hastings 8fd7a1988c Update extension author and repository URL 2026-07-12 22:40:00 -04:00
Nicholas Hastings 65936e7d9c Fix size_t truncation warning in SetHTTPRequestRawPostBodyFromFile 2026-07-12 22:10:00 -04:00
Nicholas Hastings 645103735e Fix streaming HTTP response header and data callbacks 2026-07-12 21:20:00 -04:00
Nicholas Hastings a779d6d961 Expose SetAdvertiseServerActive 2026-07-12 15:17:29 -04:00
Nicholas Hastings c82feb1a4a Add methodmap for SteamWorksHTTPRequest 2026-07-12 13:59:38 -04:00
Nicholas Hastings 39fcfa564e Modernize build/CI, support SourceMod 1.13, deprecate ForceHeartbeat
Rework the build and CI: swap to SourceMod's safetyhook-based CDetour and
drop the vendored CDetour/asm sources, the old Makefile, Travis config, and
buildbot perl scripts. Add GitHub Actions building and releasing x86 and
x86_64 against SM 1.12 and 1.13, plus dependabot. Split the Windows and Linux
packages and tidy naming.

Gate IPluginManager::FindPluginByContext on the extension API version so the
extension builds against both SM 1.12 (API 8) and 1.13 (API 9), and shim
DETOUR_CREATE_STATIC_FIXED over the address overload safetyhook exposes.

Deprecate SteamWorks_ForceHeartbeat: newer Steamworks SDKs removed
ISteamGameServer::ForceHeartbeat, so make the native a no-op and mark it
deprecated in the include.
2026-07-12 10:56:36 -04:00
David Anderson fd9a281f17 build: AMBuild 2.2 uplift (#32) 2020-08-22 16:17:05 -07:00
peace-maker ef731826dd gc: don't double call RetrieveMessage (#27)
The original function is called already using `SH_CALL`, so always supercede in the hook afterwards to not call it twice.

The forward definition had an extra unused parameter defined.
2020-07-11 13:35:30 -07:00
Kyle Sanderson acd1d08c99 travis-ci: add mac build + prototype for windows.
additionally fix base-requirements.
2020-05-31 19:39:43 -07:00
Kyle Sanderson 6b09c975b8 Enable Travis-CI + Buildfix (#25)
* Update gsnatives.cpp

* Update swgameserver.h

* Update .travis.yml
2020-05-31 15:26:03 -07:00
Kyle Sanderson a5905873cc SDK buildfix 2020-05-31 15:09:48 -07:00
Kyle Sanderson 534a692a6c GC: fix RetrieveMessage forward. 2020-03-31 09:59:54 -07:00
Kyle Sanderson 775bc1ae03 Ext version bump. 2018-09-02 13:07:30 -07:00
Sikari 87ba54f237 Implement SetHTTPRequestRawPostBodyFromFile (#24)
* Implement SetHTTPRequestRawPostBodyFromFile

* Made sure that retval of fread() matches filesize

* Minor code cleanup

* Moved sm_SetHTTPRequestRawPostBodyFromFile to its appropriate place in the file

* style
2018-09-02 13:03:18 -07:00
Nicholas Hastings df97c60298 Expose ISteamGameServer::SetGameData (#23)
* Some men just want to watch the world burn.

* Fix an awful regression psychonic has introduced into the tree.
2018-07-19 19:55:51 -07:00
Kyle Sanderson 6c36535c98 Hook GC/GS immediately if available on extension load. 2017-08-23 20:44:01 -07:00
Kyle Sanderson 1f096ac7ac Fix GameCoordinator never being rehooked after ISteamClient destruction. 2017-08-23 20:43:07 -07:00
Kyle Sanderson 363cb295f8 SDK 1.37 buildfix. 2017-08-22 19:36:09 -07:00
Kyle Sanderson d3022555e5 good ol' reinterpret_cast versus static_cast. 2017-08-09 15:32:51 -07:00
Kyle Sanderson 8978e6accd Commit missing ISteamHTTP Natives. SourceTree is awful. 2017-08-09 13:23:08 -07:00
GoD-Tony 4274dae295 Added native for SetMapName (#19) 2016-10-18 06:26:08 -06:00
Kyle Sanderson d1f183a259 Initialize corner case GC variables before they're passed to Pawn. 2016-10-15 15:02:48 -07:00
Kyle Sanderson d1a0d8921f If GameServer function is unavailable for ISteamClient, try retail client. 2016-06-17 17:44:55 -07:00
Kyle Sanderson 71dd55aaf9 Wilson is going to show up pretty soon (lack of cast). 2016-04-25 15:47:27 -07:00
Kyle Sanderson 44430b167c Preserve sanctity of SteamWorksGameServer::Reset(void) from ba825b9a6e. 2016-04-25 15:38:13 -07:00
Kyle Sanderson 401ee13b8f Use proper casting for function based pointers. 2016-04-24 16:57:23 -07:00
Kyle Sanderson ba825b9a6e CS:GO fix for unreleased SteamWorks SDK (untested). 2016-04-24 16:50:44 -07:00
Kyle Sanderson 05a8e4e037 Spell Retrieve properly... 2016-03-05 21:05:54 -08:00
Kyle Sanderson 5cd391a31b Add SteamWorks_SendMessageToGC (untested as well). 2016-03-05 17:32:16 -08:00
Kyle Sanderson 3da8a5d831 Make GC Forward names consistent (breaks stable ABI, feature still super new). 2016-03-05 17:31:09 -08:00
Ryan Speets 735f4c92a4 Fixed build on Windows due to SendMessage macro 2016-03-05 11:14:01 -05:00
Kyle Sanderson 0ad1d9e025 Windows buildhackfix from 9f70645270. 2016-03-04 15:01:41 -08:00
Kyle Sanderson 3473a51e03 Add support for Steam| SIDs. 2016-03-04 12:57:55 -08:00
Kyle Sanderson d8e87951c1 Add SteamWorks_HasLicenseForAppId 2016-03-04 12:06:17 -08:00
Kyle Sanderson 9f70645270 Add Game Coordinator Hooks (untested). 2016-03-03 20:38:00 -08:00
Kyle Sanderson c7ec49c3b3 Off by one in sm_GetHTTPResponseBodyCallback. VM protected user space. 2015-09-07 20:06:55 -07:00
Kyle Sanderson 92dfba1145 Fix sm_GetUserGroupStatus CSteamID baddery paramaters. 2015-04-04 00:00:37 -07:00
Kyle Sanderson 78c22072e1 Don't try to parse new Steam3 format only present in TF. 2015-04-03 21:44:18 -07:00
Kyle Sanderson bfba2d09ff Set proper typed places for SteamWorks_HasLicenseForApp. 2015-04-03 21:26:21 -07:00
Ryan Stecker 8230497566 Don't enable NINVOKE, it's gone in SM 1.8 anyway. 2015-03-12 18:57:11 -05:00
Kyle Sanderson a001698e89 Fix forward leak from 9a6fd52be8. 2015-03-01 18:16:07 -08:00
Kyle Sanderson c5bf9d0a07 Never forget the 'p'. (buildfix for 9a6fd52be8). 2015-02-25 20:56:09 -08:00
Kyle Sanderson 9a6fd52be8 Add UserGroupStatus (untested). 2015-02-25 20:44:07 -08:00
Kyle Sanderson 3ca1a5dc5a Link libsteam_api.dylib for Apple. 2015-01-18 13:47:27 -08:00
Kyle Sanderson d3a9c6e418 Fix legitimate clang warning for self-assignment in CDetour. 2015-01-18 13:20:08 -08:00
Kyle Sanderson e360802700 We're using GPLv3, and only v3. 2015-01-17 14:36:24 -08:00
Kyle Sanderson 5b4c966ea1 de-inline huge calls in blob.h 2015-01-17 14:29:30 -08:00
Kyle Sanderson d7fc13189c Version Bump. 2015-01-17 14:20:41 -08:00
Kyle Sanderson c322e4a117 Expose ISteamHTTP Streaming API to Pawn. 2015-01-17 14:18:36 -08:00