Commit Graph

1269 Commits

Author SHA1 Message Date
Nicholas Hastings
1000d419fc Throw configuration error on unsupported compilers (#1029) 2019-11-15 16:40:39 -08:00
David Anderson
d6e518838f
Merge pull request #1053 from nosoop/remote-ext-filename-check
Check short name for remote extensions
2019-11-12 11:45:02 +09:00
Headline
00b7ac5a39
Add bounds check for userid reset on disconnect (#1108) 2019-10-30 17:17:53 -07:00
Asher Baker
7a42d6b564 Fix build with latest hl2sdk-csgo 2019-09-02 21:45:04 +01:00
hydrogen-mvm
22635d8d35 Add File.Flush methodmap (#1056)
This allows us to do FileHandle.Flush() instead of FlushFile(FileHandle) and maintain consistency in always using methodmaps for file I/O operations.
2019-07-31 22:18:07 +00:00
nosoop
5293815bf6 Check other filename sources on remote extensions 2019-07-29 04:00:18 -07:00
MartLegion
e47c1a840a Pad plugin ID based on the total plugin count (#1027)
Closes #994
2019-06-17 01:06:03 +01:00
Nicholas Hastings
14227c04b8
Fix matchmaking_ds bin not being found for gamedata (#1006). (#1028) 2019-06-01 14:30:22 -04:00
JoinedSenses
352f078b07 Add Cookie methodmap (#1012) 2019-05-30 18:27:14 -07:00
JoinedSenses
4f3c3175e6 Create GlobalForward & PrivateForward methodmaps (#1004) 2019-05-29 14:17:42 -07:00
Headline
28036966a6
Fix Miscellaneous Regressions and UBs (#1022) 2019-05-28 18:04:08 -07:00
JoinedSenses
26462f2848 Add Sort and SortCustom to ArrayList methodmap (#1003) 2019-05-09 18:44:31 +01:00
komashchenko
8031e42bda pb: Add natives to work with 64 bit values (#943)
* Add natives to work with 64 bit Protobuf values

* Fix linux build

* FIX alignment requirements

* FIX alignment requirements V2

* Remove legacy API

* Inattention
2019-03-04 09:06:43 -08:00
Michael Flaherty
b7e252dfd6
Prevent FrameIterator OOB Errors (#949) 2019-01-13 13:36:35 -08:00
Nicholas Hastings
a2246af121
Unify map lookup logic across tf2esque engines. (fixes #927) (#931) 2019-01-07 18:17:28 -05:00
OkyHp
b88e0d7875 Add getter for Event.BroadcastDisabled (#946)
In a pre-hook, the hook param is not reliable if multiple plugins have hooked the same event.
2019-01-03 19:42:42 +00:00
David Anderson
470486ba7e
Don't double-format in ReplyToCommand. (#932) 2018-12-12 23:30:27 -08:00
Nick Hastings
9a4fe1c475 Fix signed/unsigned compare on Windows. 2018-12-12 20:02:23 -05:00
peace-maker
f0aec6b0b6 Fix typo in fallback to "default" maplists section (#923)
When lookup of a more specialized entry in the maplists.cfg failed, it wouldn't fallback to the "default" section, but just try to parse the same section again.
2018-11-13 16:32:18 +00:00
peace-maker
1b795a70b0 Add GameData methodmap (#766) 2018-10-11 20:27:56 -07:00
Kruzya
ccfd2ffe38 Added sm_reload_databases (#773)
Added command sm_reload_databases for refreshing "registered" Databases Configurations cache.

Closes #772
2018-10-11 17:36:52 +01:00
Asher Baker
c1d235a59c
Use natural sorting for map lists (Fixes #892) (#907)
This produces consistently better results, especially for games such as L4D(2).
2018-10-11 15:20:10 +01:00
Asher Baker
a659896f8a Revert "Use natural sorting for map lists (Fixes #892)"
This reverts commit a4e169aa8f.
2018-10-11 00:04:46 +01:00
Asher Baker
a4e169aa8f Use natural sorting for map lists (Fixes #892) 2018-10-11 00:03:34 +01:00
Asher Baker
7dd733cf46
Improve CreateNative failure message (#903)
This confuses everyone.
2018-10-10 13:35:17 +01:00
Michael Flaherty
34e91fbd81 Restore SQL_CheckConfig Behavior (#873)
* Change lookup strategy for SQL_CheckConfig

* Ensure db conf lookup failures default to ..default

* Revert "Ensure db conf lookup failures default to ..default"

This reverts commit 03dc703daeeeadaa134e2160bf2c7cd812402758.
2018-10-07 14:08:11 -07:00
Asher Baker
1ca4517f46 Revert "Remove arch loops from build scripts. (#889)"
This reverts commit 7ed329c11f.
2018-10-04 17:59:40 +00:00
David Anderson
7ed329c11f
Remove arch loops from build scripts. (#889)
This simplifies non-sdk build scripts by removing their loops over SM.archs. Instead the top-level
build script will re-evaluate them for each architecture.
2018-09-30 09:59:28 -07:00
Asher Baker
ba8b42ef1b
Burninate IDataPack (#864)
This doesn't break any extensions NOT using IDataPack, and we do not know of any that are.

* The extension storage utility of this interface has been broken for the last 9 months, with ISourceMod::CreateDataPack being disabled.
* The plugin interop utility of this interface (its stated purpose) has been broken for the last 11+ years, with ISourceMod::GetDataPackHandleType being disabled.

I imagine it only survived the first cleanup 11 years ago because CSS:DM was using it internally, which it has now been migrated away from.

Compiled all the included extensions without changes (API compat), and loaded extensions build pre-change without issue (ABI compat).
2018-08-13 23:03:48 +01:00
Michael Flaherty
a65c215217 Fix DataPack Overwrite Regression (#862)
Some tests passed with the implementation prior to this commit, but those were edge cases. Good older behavior is now fully restored
2018-08-11 13:31:33 +01:00
Michael Flaherty
7068c3e865
Fix LogStackTrace Anomaly (#863) 2018-07-31 04:17:36 -07:00
Kyle Sanderson
255b9323cc
Flip sm_debug_connect to "1" (#860) 2018-07-27 22:02:31 -07:00
Kyle Sanderson
72acca4b9e
Fix DataPack memory leak regression from #848. (#850)
* Fix memory leak regression from https://github.com/alliedmodders/sourcemod/pull/848.
2018-07-16 08:34:49 -07:00
Michael Flaherty
32d12ea4a6 Preserve old DataPack behavior when overwriting data (#848)
* Match old DataPack behavior when overwriting data

* Make RemoveItem more flexible

* Ditch implied RemoveItem behavior & asher fixes

* KyleS nits - but fixed before he says them

* Add back implicit behavior

* Update CDataPack.cpp

Committing to the spec.

* Update CDataPack.h

* fixup removing last item if explicitly requested

* Fix logic for accepting pack pos, rather than index

* Fixup IsReadable

* headache is over now
2018-07-14 17:00:17 -07:00
Michael Flaherty
28f1ea82b6 Add base CommandIterator implementation (#819)
* Add base CommandIterator implementation

* Add check for invalid pos & finalize pr
2018-07-10 17:39:31 -04:00
Michael Flaherty
aaac0b9eb2 Individualize NameHashSet Hashing & Revisit #709 (#740)
* Make mac/win lookups lowercase'd

* Revert #709 & 81042cc

* Adjust HashPolicy implementation across sourcemod

Basically, in order to implement our own (actual) hash policy in
`PluginSys.h`, we needed to remove the blanket implementation of `hash`
that was used before. Now, each policy must implement `hash` along with
`matches` in order to be used with `NameHashSet`. While this does force
us to change every implementation of policies across the entirety of
sourcemod, it allows core to use flexible implementations of `hash`.

* Remove logic duplication

* Improve lowercase checks
2018-07-10 17:38:40 -04:00
Michael Flaherty
c09b32010f Add Profiler methodmap (#814)
* Add profiler methodmap

* No tag mismatches here

thanks pm

* Lets fix some documentation while we're here.

* Use proper methodmap documentation style

Across sm we use `//` for methodmap docs, so lets just keep this consistent
2018-07-08 11:05:29 -04:00
Michael Flaherty
9ceb1af4fe Add LogStackTrace native (#685) 2018-06-19 23:18:37 -07:00
Michael Flaherty
b9b6832a11 Streamline ConfDb loading proceedure (#791)
* Create DatabaseConfBuilder & remove locking
* Remove all refcounting

This is part 1/n in regards to this PR's rework
* Move db conf lookup out of RunThreadPart
* Return default configuration for failed lookups
* RefPtr members & stop leaks
* fix uint comparison warning
2018-06-19 09:35:37 -07:00
Nick Hastings
ddebc2a075 Fix oops with SetConVarBounds. 2018-06-03 12:36:58 -04:00
David Anderson
25b3d8f354 Update AMTL. 2018-05-31 21:23:59 -07:00
Ruben Gonzalez
e2767a3c80
Remove goto from ExtensionSys.cpp (#729) 2018-05-25 09:49:10 -04:00
Nick Hastings
cbcda61135 Swap _XKEYCHECK_H for _ALLOW_KEYWORD_MACROS, in case it moves to a
different header.
2018-05-21 19:54:12 -04:00
jason-e
2904c87b62 Send ShowActivity messages to TV clients (#813)
`ShowActivity` and related functions are used to inform all clients about the usage of admin commands (such as bans or mutes). These messages are not sent to any fake clients, however they _should_ be sent to SourceTV/GOTV fake clients because messages they receive are actually visible to broadcast viewers and in demos recorded with `tv_record`. 

Player chat messages as well as SM functions like `PrintToChat`/`PrintToChatAll` broadcast to TV clients, but `ShowActivity` does not.
2018-05-09 09:13:49 +01:00
Nick Hastings
cfdedce362 Missed converting a GetFlags instance. 2018-05-06 13:18:04 -04:00
Nick Hastings
467d57059a Out with the old ConVar accessibility hacks, in with the new. 2018-05-06 12:59:33 -04:00
Nick Hastings
95dae67d5b Fix wrong matchmaking_ds bin path being used in some instances. 2018-05-06 10:26:43 -04:00
Nick Hastings
11b23a6d07 Update ConVar hacks for BMS.
This is also to trigger an MM:S build for hl2sdk changes in multiple branches.
2018-05-05 11:01:55 -04:00
Michael Flaherty
5611ec54a2 Migrate extensions to common AMTL string funcs (#785) 2018-03-25 13:00:53 -07:00
Michael Flaherty
956f264b85 Replace ke::SafeSprintf with ke::SafeStrcpy (#784) 2018-03-19 20:12:51 +00:00
Nicholas Hastings
a17b47a2dc Add Protobuf.HasField native. 2018-02-25 10:49:37 -05:00
peace-maker
f9faf9e48c Allow different values per platform in "Keys" gamedata section (#765)
This adds support for platform specific custom key values in the `Keys` section in game config files. Now you can have different values for the same key per platform.

Previously you could only add general key values in gamedata files that were the same on all platforms like
```
"Keys"
{
	"key"	"value"
}
```

This patch allows you to set the value per platform in a subsection like
```
"Keys"
{
	"key"
	{
		"windows"	"value1"
		"linux"	"value2"
		"mac"	"value3"
	}
}
```

Looking up the `key` will return the value matching the host platform.
2018-02-06 14:40:51 +00:00
Michael Flaherty
e57dce76e1 Add support for msvc 1912 (Fixes #761) (#764)
* Add support for msvc 1912

* Default new msvc versions to VS 2017

* Use 2015 lib with 2017
2018-02-04 17:06:22 -05:00
thewavelength
55b8371fa8 Add VS Preview 2017 as valid compiler (msvc-1911) (#678) 2018-01-28 11:39:23 +00:00
Nicholas Hastings
9374620b8b
Add RemoveEntity native. (bug 5714) (#745) 2018-01-07 13:52:36 -05:00
Ruben Gonzalez
5a35760215
Merge pull request #744 from alliedmodders/show-required-exts
Address issue #737
2017-12-31 11:06:35 -05:00
Ruben Gonzalez
40356fc9db Address issue #737 2017-12-30 14:08:56 -05:00
Kyle Sanderson
de108cca44
Simplify Logger internals (Fixes Issue #663). (#691)
* Simplify Logger internals (Issue #663).

* Avoid reformatting strings on every call.
2017-12-29 19:56:25 -08:00
Kyle Sanderson
5f5a6b3a16
Migrate CDataPack from a Compact Cassette tape. (#688)
* Migrate CDataPack from a Cassette Tape.

Tested-By: Headline22.

* Remove last IsReadable param pass.

* populate len still if CDataPack::ReadString is unreadable or the wrong type.

* Fyren Fixes(TM)(R)(C).

* Deprecate IDataPack.
2017-12-29 19:56:02 -08:00
Byte
1706fdfed9 Fix typo and update CSGOBadList (#738)
* Fix typo

* Update CSGOBadList
2017-12-28 18:43:49 -05:00
Scott Ehlert
ce1a4dcac0
64-bit support for CSGO on Linux and macOS (#705) 2017-12-20 01:56:23 -06:00
Nicholas Hastings
4007ec8cf8 Temp fix for load issues on Linux. 2017-12-05 20:44:53 -05:00
Michael Flaherty
830c3f36d3 Block reserved device names on windows (#733) 2017-12-03 11:38:56 +00:00
Ruben Gonzalez
c87afde1bd Add optional extensions not found to sm exts list in a seperate list. 2017-11-30 14:21:19 -05:00
Ruben Gonzalez
51cea0e04e Only show extensions that failed to load if the extension is required. 2017-11-30 12:57:12 -05:00
Michael Flaherty
d685f30847 Add Translation Natives (#669)
* Add Translation Natives

See #626

* Fix vocab errors
* Better description
* Bump ITranslator Version
* Implement KyleS' Review Requests
* Improve documentation
2017-11-20 21:24:01 -08:00
Michael Flaherty
43cdf20fd3 Add FrameIterator to SourceMod (#716).
* Create FrameIterator type
This commit adds the FrameIterator type to core sm along with a few
methods around getting the information for each frame.

* Fix incorrect documentation
[skip ci]
* Implement KyleS's Changes
* A nit
2017-11-16 18:55:37 -08:00
Nicholas Hastings
95afe72307
Separate out DOI build. (#718) 2017-11-03 15:45:16 -04:00
Asher Baker
f156d48f45
Include missing ctype header for macOS build 2017-10-28 12:51:55 +01:00
Michael Flaherty
404e96ad45 Add KeyValues.ExportToString (#706) 2017-10-28 12:47:00 +01:00
Michael Flaherty
90ddc16a4b Lowercase windows/mac paths to avoid plugin duplicate loadings (Bug 6491) (#709) 2017-10-28 12:44:25 +01:00
FlaminSarge
c3b25e54f8 Add convenience logic for "offset" to Address definitions in GameConf (#580)
Allows for the last "read" offset for an Address to instead be "offset", which doesn't deref the addr pointer after applying the offset
Shortens the necessary coding to get a particular Address inside a function (old: store offset in a separate GameConf Offsets entry, apply the offset to the Address in SP)
2017-10-28 12:11:32 +01:00
Asher Baker
4bab834716
Merge pull request #672 from peace-maker/null_natives_fixed
Add natives to check for NULL_VECTOR and NULL_STRING
2017-10-27 20:03:09 +01:00
Michael Flaherty
4f54df65e9 Switch C header & Fix warnings (#702) 2017-10-15 10:32:01 +01:00
Scott Ehlert
bbdecceb4b Switch to AMBuild 2.1 API. (#694) 2017-10-02 07:18:57 -05:00
peace-maker
7e898ee530 Fix core config values not being cached (#673)
Valid core config options aren't cached to be retrieved using `GetCoreConfigValue` after they've been loaded from core.cfg or set through the `sm config` root console menu.

E.g. `sm config ServerLang` would return `[SM] No such config option "ServerLang" exists.` all the time.

Stop notifying other listeners if the config key was consumed, but don't skip adding it to the cache.

Also fix `FollowCSGOServerGuidelines` always showing as unhandled command when being changed through `sm config FollowCSGOServerGuidelines yes`.
2017-09-23 17:24:39 -07:00
Asher Baker
4e996a116d Allow seeking to end of datapack (#687) 2017-09-19 23:27:35 +01:00
Peace-Maker
7eef3948b1 Don't break backwards compatibility with unmanaged forwards
Instead of adding new functions to `IForward`, we just allow NULL to be passed to `PushArray` and `PushString`.
2017-08-25 23:23:50 +02:00
Peace-Maker
e609a33e6d Cleanup CForward::Execute using a helper function
Flatten out the nesting a bit.
2017-08-25 23:23:37 +02:00
Peace-Maker
41a9889cdd Add Call_PushNullVector and Call_PushNullString
Be able to push NULL_[VECTOR|STRING] to a forward or direct function call.
The callee can check the parameter using the IsNullVector/IsNullString natives.
2017-08-25 23:23:24 +02:00
Peace-Maker
3de269946c Add IsNativeParamNullVector and IsNativeParamNullString natives
Lets plugins check if some other plugin passed NULL_VECTOR or
NULL_STRING to a native in the native callback.
2017-08-25 23:23:07 +02:00
Peace-Maker
9fa4ed8bac Add IsNullVector and IsNullString natives
Let plugins check if a string or vector passed to a function is their
NULL_VECTOR or NULL_STRING.
2017-08-25 23:22:39 +02:00
Michael
9af507a322 Remove replicated flag from sourcemod_version (#667) 2017-08-22 20:53:25 +01:00
Asher Baker
11aab699a5 Revert "Add natives to check for NULL_VECTOR and NULL_STRING" 2017-08-04 00:44:47 +01:00
Asher Baker
e4047c3f87 Merge pull request #606 from peace-maker/null_natives
Add natives to check for NULL_VECTOR and NULL_STRING
2017-07-25 19:19:26 +01:00
Peace-Maker
60320cd845 Cleanup CForward::Execute using a helper function
Flatten out the nesting a bit.
2017-07-22 23:08:31 +02:00
Nicholas Hastings
fd87cb6b23 Clear cached IClient ptr on disconnect (Fixes #637). 2017-07-08 08:25:23 -04:00
Nicholas Hastings
fdac8a1677 Fix KeyValues.SetUInt64 truncating value (#635). 2017-07-06 13:11:01 -04:00
Arthurdead
44c744b8fd Add native to get gpGlobals->frametime (#629) 2017-06-26 11:18:12 +01:00
Nicholas Hastings
7f71f43c2e Another oops-fix for SDK 2013 mods.
Thanks @Ne3tCode
2017-06-24 08:49:36 -04:00
Nicholas Hastings
16d7e39b57 Oops. Fix non-bot IClient lookups for older SDK 2013 mods. 2017-06-23 14:43:39 -04:00
Nicholas Hastings
9a6900a0ba Don't let bots bypass the kick queue. It's not always safe. 2017-06-23 14:43:39 -04:00
Nicholas Hastings
e762c2ee56 Add support for IClient lookups on SDK 2013 mods with new enough engine. 2017-06-23 14:43:39 -04:00
Nicholas Hastings
c31eaa01a3 Cache player IClient pointer on connect. 2017-06-23 14:43:39 -04:00
Nicholas Hastings
338fdb37f6 Switch to C++11 class initializers for CPlayer. 2017-06-23 14:43:39 -04:00
Nicholas Hastings
2acf5f85cd Fix ICommandLine lookup on Linux for Insurgency and Day of Infamy. 2017-05-28 08:29:38 -04:00
Peace-Maker
de42dfc783 Add Call_PushNullVector and Call_PushNullString
Be able to push NULL_[VECTOR|STRING] to a forward or direct function call.
The callee can check the parameter using the IsNullVector/IsNullString natives.
2017-05-04 22:56:31 -06:00
Nicholas Hastings
6a77e04a8e Fix default value always being when calling ParmValue(string,string). 2017-04-22 21:28:44 -04:00
Kyle Sanderson
e987cf6bfc Change CHalfLife2::GetMapDisplayName to always check for string substitutions. (#596) 2017-04-03 20:28:10 -04:00
Nicholas Hastings
1135f9024a Fix error when configuring for csgo SDK build on VS 2017. 2017-03-11 09:28:24 -05:00