These two base plugins are using the MAPLIST_FLAG_NO_DEFAULT when they shouldn't, which causes much user (and SM developer) confusion as it is completely counter to the documentation.
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).
The `TopMenu` methodmap natives weren't marked as optional if the extension was optional like the other normal natives.
The `Regex` natives weren't marked as optional at all before if the regex extension was included optionally.
This makes the error message cleaner in case topmenus aren't loaded.
```
adminmenu.smx (Admin Menu): Required extension "TopMenus" file("topmenus.ext") not running
basebans.smx (Basic Ban Commands): Native "TopMenu.Display" was not found
```
* 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
* Fix rockthevote not clearing g_Voted on fakeclients.
* remove g_RTVAllowed in rockthevote as it's unused.
* Fix basebans using the wrong forward for configs.
* Prevent sm_addban from banning an immune steam adminid.
* Sprinkle in IsChatTrigger checks to plugins with plaintext chat hooks.
* fixup g_Voted[client] in OnClientDisconnect
* 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
* 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
* 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
Prepared statements can return multiple result sets since MySQL 5.5. That can happen when calling stored procedures using `CALL x();`.
This change removes the previous caching of result bindings, since the number of fields in a result can differ from result set to result set. This could potentially have a negative impact on prepared statements always only returning one result set, since the result binding buffers are recreated everytime the statement is executed instead of once. That difference should be negligible.
Fixes#823.
MySQL defines its own timespec_t. Official mysql builds are built using VS2013, so you still need to compile the client library yourself to be able to link it, but this change makes the dbi extension compatible with future versions already.