David Anderson
27e812461f
Update to the latest SourcePawn and AMTL.
2016-09-24 16:45:04 -07:00
Peace-Maker
ecbedb7b11
Don't expose CellArrays in ISourceMod to extensions
...
Don't let extensions have access to the internal implementation of cell
arrays.
2016-08-26 15:09:18 -07:00
Peace-Maker
5b9ae5917b
Add ICellArray and create/free in ISourceMod
...
Add an ICellArray interface to expose the adt_array CellArray class from
logic to core.
Add methods to ISourceMod to create and delete ICellArray instances in
logic.
2016-08-21 21:32:23 +02:00
David Anderson
61e958e679
Merge pull request #529 from peace-maker/optional_natives
...
Keep optional natives optional after reloading
2016-07-26 12:59:32 -07:00
David Anderson
3cccfc15da
Update to SourcePawn 1.9 and the latest AMTL.
2016-07-26 01:36:35 -07:00
Peace-Maker
2c8614c639
Keep optional natives optional after reloading
...
Bug 6518
Starting from no plugins loaded, after the final step of the following,
basetriggers will be marked as errored because mapchooser is missing:
Load basetriggers
Load mapchooser
Unload mapchooser
Load mapchooser
Unload mapchooser
We lose the SP_NTVFLAG_OPTIONAL when removing a WeakNative. The
__pl_mapchooser_SetNTVOptional() is only called in basetriggers when it
is loaded. It adds the OPTIONAL flag to the mapchooser natives the
basetrigger plugin uses.
When mapchooser is loaded, the native is overwritten and the OPTIONAL
flag consumed (WeakNative registered), but not preserved. Later when
mapchooser is unloaded the WeakNative is removed in
CNativeOwner::UnbindWeakRef, but the OPTIONAL flag isn't added again.
The next time mapchooser is loaded, the natives aren't optional anymore
and will cause a real dependency.
The change in ShareSys isn't needed to fix the error, but is included to
keep the SP_NTVFLAG_OPTIONAL flag consistent.
2016-07-21 01:52:47 +02:00
David Anderson
34dedcaab1
Remove half-up rounding.
2016-06-22 12:54:36 -07:00
Nicholas Hastings
f668b3fe6c
🐍 🐍 🐍 🐍 🐍 🐍 🐍 🐍 🐍 🐍 🐍 🐍
2016-06-11 12:43:04 -04:00
Nicholas Hastings
f12924458f
Merge branch 'vs2015'
2016-06-11 12:14:12 -04:00
Nicholas Hastings
0f96a28cca
Use VSERVERTOOLS003 in Nuclear Dawn if server has it available.
2016-06-08 12:32:20 -04:00
Fyren
4d8e76202d
Merge pull request #518 from alliedmodders/UTIL_ReplaceAll-fix
...
Fix UTIL_ReplaceAll not properly tracking length (bug 6472)
2016-06-06 16:40:17 -06:00
Fyren
e356758743
Merge pull request #516 from alliedmodders/scheduledpluginreloads
...
Better plugin reloads.
2016-06-06 16:29:07 -06:00
Fyren
4e654704dc
Slightly better handling of plugin reloading.
2016-06-06 22:26:34 +00:00
Fyren
1790033458
Fix UTIL_ReplaceAll not properly tracking length.
2016-06-06 06:29:53 +00:00
Nicholas Hastings
e3d7a047bd
Fixed varint sendprops being treated improperly in CS:GO.
2016-06-05 11:03:18 -04:00
Nicholas Hastings
20c9815619
Add support for sending gameevent to specific client. ( #505 )
2016-05-12 22:15:23 -04:00
Nicholas Hastings
11b4320204
Fix potential crash on plugin load when a required library is not found.
2016-04-27 10:49:39 -04:00
Nicholas Hastings
40f2512317
Remove support for Source 1 Dota 2. ( #496 )
2016-04-26 23:18:47 -04:00
Nicholas Hastings
b5876bdd33
Allow Plugin_Changed return on event PreHooks to not block. ( #503 )
...
This avoids issues from confusion that users have, returning Plugin_Changed
after altering event data, when Plugin_Changed isn't required and wasn't supported
in that scenario, and instead acted like Plugin_Handled.
2016-04-26 23:18:00 -04:00
Nicholas Hastings
ed46ca3328
Add support for retrieving game server Steam Id (bug 6404). ( #495 )
2016-04-26 23:17:08 -04:00
Nicholas Hastings
ebb5607bd4
Really fix FollowCSGOServerGuidelines setting being ignored in SDKTools (always on) (bug 6480).
2016-03-30 15:59:51 -04:00
Nicholas Hastings
416abd81a1
Add support for compiling with VS2015.
2016-03-30 08:56:27 -04:00
Nicholas Hastings
0c8e6e2918
Fix FollowCSGOServerGuidelines setting being ignored in SDKTools (always on).
2016-03-21 15:29:48 -04:00
Peace-Maker
4f4903a05e
Don't try to call functions in paused plugins
...
This avoids spam of "Plugin not runnable" exceptions on shutdown or
plugin unload.
When re/unloading a plugin which has other ones depending on it, like
the adminmenu, It pauses the depending plugins putting them in an
"Depends on plugin: %s" error state. ForwardSys doesn't remove them from
the forward lists on pause, specially the global forwards, and still
tries to call all the global forwards like OnPlayerRunCmd and
OnLibraryAdded etc. on the paused plugins. Executing functions in paused
runtimes has been ignored in the VM before introducing the "Exception"
mechanism, but now they're all logged.
This adds checks to make sure the plugin is runnable before calling a
function. (Stolen from #438 )
2016-03-14 13:24:23 +01:00
David Anderson
f7bb423f06
Update to the latest SourcePawn and AMTL.
2016-03-13 16:29:11 -07:00
Nicholas Hastings
b65de29c92
Add initial version of safety checks for CS:GO to attempt to avoid user GSLT bans.
2016-03-02 15:25:01 -05:00
David Anderson
a7c7e72004
Merge pull request #485 from peace-maker/plugin_unloading
...
Fix scheduled plugin unloading
2016-02-29 10:53:26 -05:00
Peace-Maker
df59fd5b0e
Fix scheduled plugin unloading
...
When unloading a plugin no plugin is allowed to execute code. There's
been some flawed logic in the scheduling, leading it to bail out if the
plugin was marked for scheduled unloading..
Also change the "error" message of `sm plugins unload` to something
nice.
2016-02-29 16:40:24 +01:00
Peace-Maker
060f63e9db
Fix printing dependent extension name
...
Typo which will print the name of the extension being unloaded instead
of the one which would be unloaded as well because of it.
2016-02-27 21:22:09 +01:00
Asher Baker
700ec92a9a
Implement an auto-escaping Format native for SQL query construction
2016-02-15 15:05:16 +00:00
Asher Baker
272655f340
Changed AddString to be failable
2016-02-15 14:57:56 +00:00
Asher Baker
1ff13c59cf
Move the guts of Format to a helper function
2016-02-15 12:49:22 +00:00
Asher Baker
936bdc47f0
Add argument index to format error messages
2016-02-15 10:20:08 +00:00
Asher Baker
9008705b9d
Pass format flags down to AddString
2016-02-15 10:16:14 +00:00
Asher Baker
886c358e91
Renumber format flags for sanity
2016-02-15 10:09:48 +00:00
Nicholas Hastings
90ca9d7a47
Fix SourceTV bot detection on Source SDK 2013 mods and BM:S.
...
See bug 5529.
2016-01-25 18:52:58 -05:00
Peace-Maker
edb820eae8
Add info message when loading custom gamedata
...
Print a message to console when there is a gamedata file loaded from the
|custom| folder.
2016-01-03 22:28:24 +01:00
Nicholas Hastings
c5a81d7c6f
Adjust for hl2sdk-bms updates.
2015-12-22 09:53:05 -05:00
Fyren
0e80ffef55
Merge pull request #448 from alliedmodders/use-blamepluginerror
...
Update SP and use BlamePluginError in sdkhooks and sdktools.
2015-11-18 18:33:10 -07:00
Asher Baker
eb8996699e
Merge pull request #443 from alliedmodders/fix-ext-dep-load
...
Fix crash on failing to load dependent extension.
2015-11-18 14:12:27 +00:00
Fyren
fec2fa3bf0
Update SP and use BlamePluginError in sdkhooks.
2015-11-18 01:24:31 +00:00
Asher Baker
6ab0c35837
Pre-fill buffer for GetClientAuth*
2015-11-10 14:31:02 +00:00
Asher Baker
b81b6cd1c6
Fix crash on failing to load dependent extension.
2015-11-09 14:56:42 +00:00
David Anderson
c3e5d62bf6
Update to the latest AMTL: remove PassRef.
2015-11-08 13:51:22 -08:00
David Anderson
e2b399b8d3
Update to the latest AMTL - Rename Ref to RefPtr.
2015-11-08 13:14:57 -08:00
Ross Bemrose
c8caf7c860
Update FindMap testsuite plugin.
...
Update GetMapDisplayNAme to use platform separator on CSGO
2015-11-06 02:38:59 -05:00
David Anderson
1f4be9798e
Flush asynchronous queries before OnPluginEnd().
2015-11-01 00:36:20 -07:00
David Anderson
c849616003
Add an OnPluginWillUnload callback that precedes OnPluginEnd().
2015-11-01 00:30:37 -07:00
David Anderson
d674414cf0
Add a versioned IPluginsListener and deprecate the non-versioned class.
2015-11-01 00:23:33 -07:00
David Anderson
cb3f6df111
Require that no plugin code be live when any plugin unloads.
2015-10-31 19:38:30 -07:00
David Anderson
59623695af
Improve plugin console diagnostics.
2015-10-31 17:30:33 -07:00
David Anderson
87e9dee78b
Evict plugins that fail to load.
2015-10-31 17:30:33 -07:00
David Anderson
62edc5f4c0
Clean up "sm plugins list" after status meaning clarifications.
2015-10-31 17:25:59 -07:00
David Anderson
485ade2610
Fix a number of inconsistencies in plugin state.
...
1. Fixed OnPluginUnloaded not pairing if the plugin failed.
2. Unify error message handling in the second pass.
3. Do not add libraries if a plugin failed during OnPluginStart.
2015-10-31 17:25:59 -07:00
David Anderson
9e4fff3362
Add a state variable to CPlugin to indicate queue/list membership.
2015-10-31 17:25:59 -07:00
David Anderson
7cc911ae58
Separate plugin unloading into an eviction step, which disconnects the plugin from Core.
...
Note: this also ensures that library action callbacks are balanced (i.e., we do not notify
libraries are being dropped if they were never notified as being added).
2015-10-31 17:25:59 -07:00
David Anderson
82ff7d5af7
Rename CPlugin::SetErrorState to EvictWithError.
2015-10-31 17:25:59 -07:00
David Anderson
c4c6efb140
Remove a crazy unused function from CPluginManager.
2015-10-31 17:25:59 -07:00
David Anderson
f078ea1f8a
Remove the Illiad-length mostly-wrong comment at the top of PluginSys.h
2015-10-31 17:25:59 -07:00
David Anderson
ab1b915a3c
Fix re-entrancy issues in CPluginManager by using ReentrantList.
2015-10-31 17:24:22 -07:00
David Anderson
709149fbed
Remove the CPluginIterator cache.
2015-10-31 17:23:24 -07:00
David Anderson
e57a076dc8
Remove CPluginManager's friend access to CPlugin.
2015-10-31 17:19:10 -07:00
David Anderson
c21b3a36fc
Remove CPluginManager direct use of CPlugin::NativeOwner::m_fakes.
2015-10-31 17:19:10 -07:00
David Anderson
f765c8d436
Remove CPluginManager direct use of CPlugin::m_LibraryMissing.
2015-10-31 17:19:10 -07:00
David Anderson
ae44a6540a
Remove CPluginManager direct use of CPlugin::m_FakeNativesMissing.
2015-10-31 17:19:10 -07:00
David Anderson
f27dbaf716
Remove CPluginManager direct use of CPlugin::m_RequiredLibs.
2015-10-31 17:19:10 -07:00
David Anderson
717ad38d06
Remove CPluginManager direct use of CPlugin::m_errormsg.
2015-10-31 17:19:10 -07:00
David Anderson
60f06d1414
Remove CPluginManager direct use of CPlugin::m_FileVersion.
2015-10-31 17:19:10 -07:00
David Anderson
a579136a3d
Remove CPluginManager direct use of CPlugin::m_DateTime.
2015-10-31 17:19:10 -07:00
David Anderson
2f3d523ac0
Remove CPluginManager use of CPlugin::m_pRuntime.
2015-10-31 17:19:10 -07:00
David Anderson
df5c53fa4a
Remove CPluginManager direct use of CPlugin::m_filename.
2015-10-31 17:19:10 -07:00
David Anderson
46c069dbbe
Remove CPluginManager direct use of CPlugin::m_Libraries.
2015-10-31 17:19:09 -07:00
David Anderson
bda9defc0f
Remove CPlugin's friend access to CPluginManager.
2015-10-31 17:19:09 -07:00
Asher Baker
fc504737c5
Fix a misleading error message from "sm config".
...
The Ignore state could be hit if the value was read directly rather than using OnSourceModConfigChanged.
2015-10-30 11:06:54 +00:00
David Anderson
6c5ab80418
Refactor and cleanup the AMBuildScript a bit.
2015-10-08 14:55:53 -07:00
David Anderson
88a47ff681
Switch to re-entrant lists in ForwardSys and CForward.
2015-09-21 01:07:34 -07:00
David Anderson
c1396de2fc
Replace SourceHook::List with ke::LinkedList in ForwardSys.
2015-09-21 01:07:25 -07:00
David Anderson
0810c4b217
Fix style issues in ForwardSys, removing extra blocks and tightening variable scope.
...
This also fixes a bug where IsFunctionRegistered() did not check the paused plugins list.
2015-09-21 01:07:18 -07:00
David Anderson
632c7d05dd
Remove the forward cache and simplify CForward construction.
2015-09-21 01:07:01 -07:00
David Anderson
dcc192ee0d
Use new header style.
2015-09-21 01:06:43 -07:00
David Anderson
9b1678bd18
Remove error outparams from first-pass internal plugin loading commands.
2015-09-21 00:51:20 -07:00
David Anderson
5f19fc036d
Refactor AskPluginLoad() to contain its own error state.
2015-09-21 00:51:16 -07:00
David Anderson
5eec2e7d6d
Remove error message outparam to LoadExtensions.
2015-09-21 00:51:11 -07:00
David Anderson
3195dec436
Split LoadOrRequireExtensions into two distinct functions.
2015-09-20 23:44:45 -07:00
David Anderson
15f4a05122
Factor the iterator out of LoadOrRequireExtensions.
2015-09-20 23:44:41 -07:00
David Anderson
e559e6ffa8
Simplify pass 2 of LoadOrRequireExtensions.
2015-09-20 23:44:37 -07:00
David Anderson
23290b35a7
Clean up LoadOrRequireExtensions and properly scope variables.
2015-09-20 23:44:34 -07:00
David Anderson
2b3da56fb5
Dedent a huge block of code.
2015-09-20 23:44:30 -07:00
David Anderson
370710c0ff
Fix build.
2015-09-20 21:39:12 -07:00
David Anderson
4fc7eb8a6b
Remove trailing whitespace.
2015-09-20 20:58:03 -07:00
David Anderson
38c01714d7
Clean up AskPluginLoad logic.
2015-09-20 20:57:59 -07:00
David Anderson
0e1a34a4d7
Hide CPlugin timestamp management details.
2015-09-20 20:57:55 -07:00
David Anderson
d5d7e8c9cf
Factor guts of _LoadPlugin into a separate function.
2015-09-20 20:57:51 -07:00
David Anderson
76d681761d
Factor malware checks into its own pass.
2015-09-20 20:57:47 -07:00
David Anderson
3807edbeb8
Move CPlugin compilation into its own function.
2015-09-20 20:57:43 -07:00
David Anderson
d9216cc599
Remove references to non-mapupdated plugins.
2015-09-20 20:31:30 -07:00
David Anderson
d551338510
Merge pull request #400 from alliedmodders/mv-srvcmds-x
...
Remove sm_srvcmds.cpp.
2015-09-20 15:15:43 -07:00
David Anderson
8a7dfdbc11
Move the "sm" command to core/logic.
2015-09-20 14:33:17 -07:00
David Anderson
1a7b708df8
Split command buffer peeking hacks out of the "sm" command.
2015-09-20 14:33:14 -07:00
David Anderson
168b779786
Move sm_dump_handles to core/logic.
2015-09-20 14:33:10 -07:00
David Anderson
c853050265
Move sm_reload_translations to Translator.
2015-09-20 14:33:06 -07:00
David Anderson
c614d19af0
Move sm_dump_admcache to AdminCache.
2015-09-20 14:33:02 -07:00
David Anderson
8b4f27a038
Add infrastructure to let logic define ConCommands.
2015-09-20 14:32:58 -07:00
David Anderson
c66d14605a
Merge pull request #397 from alliedmodders/rm-old-mms
...
Remove code that handles long-dead Metamod:Source versions.
2015-09-18 14:38:52 -07:00
Nicholas Hastings
c982cc9991
Merge pull request #354 from powerlord/findmap-plugins
...
GetMapDisplayName and associated core plugin changes.
2015-09-17 11:17:40 -04:00
David Anderson
485975fd99
Fix temporary parameter list being static.
2015-09-16 00:27:36 -07:00
David Anderson
c36f80b93d
Don't use server commands to flush plugin unloads.
2015-09-15 19:43:41 -07:00
David Anderson
08cadcdda6
Merge pull request #372 from alliedmodders/rm-pausing
...
Cleanup some PluginSys idiosyncracies.
2015-09-15 19:15:26 -07:00
David Anderson
d473b0441d
Allow plugin info fields to outlive their runtime.
2015-09-15 19:07:22 -07:00
Ross Bemrose
10a95cfdce
Add new function: GetMapDisplayName.
...
This function will resolve the name of a map using FindMap, then (if applicable), will turn a workshop map name into a nicely formatted name.
Currently only TF2 and CS:GO Map Workshops are supported. More can be added at a later date.
This function returns false if a map was not found, but true in any other instance even if FindMap could not resolve the map name.
This patch also updates the following core plugins to use this GetMapDisplayName:
BaseTriggers
BaseVotes
MapChooser
NextMap
Nominations
RandomCycle
RockTheVote
2015-09-15 16:16:58 -04:00
David Anderson
653dd36020
Merge pull request #378 from powerlord/fix-convar
...
Fix ConVar .IntValue, .BoolValue, and .FloatValue assignments (Bug 6405)
2015-09-15 12:33:51 -07:00
Nicholas Hastings
28bf744a18
Merge pull request #399 from alliedmodders/tf2branch-nontf2-ismapvalid
...
Fix IsMapValid call on non-TF2 TF2-branch games to use old behavior requiring only map name
2015-09-14 20:44:24 -04:00
Nicholas Hastings
e7d9795fc1
Fix IsMapValid call on non-TF2 TF2-branch games to use old behavior requiring only map name.
2015-09-14 19:24:28 -04:00
David Anderson
2adae27557
Clean up CPlugin member variables.
2015-09-14 12:55:42 -07:00
David Anderson
3430962cbe
Simplify required libs handling and make sure they create dependency links.
2015-09-14 12:53:23 -07:00
David Anderson
0aaa659e29
Fix how the mark-serial is used.
...
The mark-serial is a generation number to optimize dependency tracking. It did not actually get
applied correctly, meaning that in rare cases we could miss dependencies. This patch removes the
incorrect serial propagation and ensures that we don't double-count a dependent plugin.
Additionally, this patch ensures that all callers of BindNativeToPlugin() will update the mark
serial, as is required to correctly track dependencies.
2015-09-14 12:50:50 -07:00
David Anderson
9ef8cc7064
Separate the top of UnloadPlugin into a precursor function.
2015-09-14 12:50:39 -07:00
Nicholas Hastings
44bacdc067
Fix recent regression with finding engine ptr on CS:S, DoD:S, HL2:DM.
...
They are still only have engine v21, not yet v22 (let alone v23).
2015-09-14 09:56:06 -04:00
David Anderson
fc947c68f7
Merge pull request #404 from alliedmodders/fix-crash
...
Fix a regression from the ConCmdManager refactoring that causes a crash using SourceMod commands in the server console.
2015-09-12 22:53:09 -07:00
David Anderson
bcd80d3e84
Fix a regression from the ConCmdManager refactoring that causes a crash using SourceMod commands in the server console.
2015-09-12 00:26:47 -07:00
Nicholas Hastings
f6d7fd4949
Don't use VInterfaceMatch when wanting explicit iface version.
2015-09-11 05:40:03 -07:00
Nicholas Hastings
2bd91dd93b
Fix always failing when falling back to engine v22.
2015-09-11 05:38:53 -07:00
Nicholas Hastings
82b7485001
Shim for TF2-branch games to find latest, non-shimmed engine iface.
2015-09-10 20:43:48 -04:00
Kyle Sanderson
f59df243ea
Change FindMap to take a const char* for searching instead of char*.
2015-09-10 11:47:46 -07:00
David Anderson
fe16e8e47c
Move the SetCommandClient hook into GameHooks.
2015-09-09 20:03:23 -07:00
David Anderson
fd961f4712
Remove code to handle SourceHook versions 3 and lower.
2015-09-09 19:00:18 -07:00
David Anderson
b548ba7b58
Remove bad-console-read protection logic for Metamod:Source 1.7 and earlier.
2015-09-09 18:59:31 -07:00
David Anderson
df672dd8ce
Remove the ability to compile against Metamod:Source versions lower than 1.8.
2015-09-09 18:54:43 -07:00
David Anderson
c54b54ded0
Use GameHooks for ChatTriggers.
2015-09-09 18:51:21 -07:00
David Anderson
5757b729ac
Hide MRES_SUPERCEDE from command hook callbacks.
2015-09-09 18:45:20 -07:00
David Anderson
b048dc7b10
Move ConCommand hooks into GameHooks and switch callbacks to ICommandArgs.
2015-09-09 18:40:04 -07:00
David Anderson
b63bfdc72a
Rename QueryHookMode to ClientCvarQueryMode.
2015-09-09 18:40:01 -07:00
David Anderson
fa93426f6a
Remove blanket includes from sm_stringutil.
2015-09-09 15:18:24 -07:00
David Anderson
86f0a77e73
Reduce dependence on sm_strdup.
2015-09-09 15:18:24 -07:00
David Anderson
13a783d441
Remove UTIL_Format() and UTIL_FormatArgs().
2015-09-09 15:18:17 -07:00
David Anderson
e08697ad54
Remove strncopy().
2015-09-09 14:57:47 -07:00
David Anderson
67c8ee4ce3
Move CDataPack from core to logic.
2015-09-06 11:02:52 -07:00
David Anderson
69984f472f
Remove unused, NPOTB CrazyDebugger.
2015-09-05 20:44:00 -07:00
Ross Bemrose
569a53182c
Allow sm_SetConVarString, sm_SetConVarFloat, and sm_SetConVarNum treat notify and replicate as non-existent.
...
Remove special functions for BoolValue, IntValue, and FloatValue.
2015-08-24 17:03:47 -04:00
Kyle Sanderson
9ebd4ad627
Merge pull request #319 from KyleSanderson/20isntagoodnumber
...
Allow GetMapHistorySize to return numbers greater than 20 (r=Dr!fter).
2015-09-05 13:58:03 -07:00
Nicholas Hastings
1e1b23dc31
Add missing sanity checks on element param on SetEntPropString for data props.
2015-09-02 18:35:37 -04:00
Nicholas Hastings
5cdf35d687
Fix array detection/handling for GetEntPropString with string_t arrays (bug 6409).
2015-09-02 18:33:58 -04:00
David Anderson
4e275eea97
Split intercom.h into separate headers and reduce shared header inclusion.
2015-08-31 10:00:49 -07:00
David Anderson
4f1705e001
Rename some bridge interfaces.
2015-08-31 09:57:32 -07:00
David Anderson
5d55ff23bd
Move OnQueryCvarValueFinished into the global hook manager.
2015-08-31 09:22:08 -07:00
David Anderson
2ed044804d
Move OnConVarChanged into a global hook.
2015-08-31 09:18:29 -07:00
David Anderson
32ba03538b
Move CCommandArgs into its own header.
2015-08-31 00:07:37 -07:00
David Anderson
23feee0e00
Put the game provider in its own header.
2015-08-31 00:07:34 -07:00
David Anderson
401aa038f8
Start a new bridge mechanism for global callbacks.
2015-08-31 00:07:27 -07:00
David Anderson
38e1c2f1f3
Clean up the core side of the logic bridge.
2015-08-30 23:30:15 -07:00