* [Commands] Cleanup #stun Command.
- Cleanup message.
- Add ConvertSecondsToTime() to string_util.h and convert Quest API Methods to use helper.
* Add days to ConvertSecondsToTime() and cleanup logic.
* Cleanup.
* Typo.
* Cleanup.
* Cleanup.
* Sanitize bad words in server names
* Add config options and enforcement for dev/test servers and servers starting with a special character
* Refine bad word logic
* Add installer to dev/test servers
* Change server prefixes
* Special char prefix
* Formatting
* Remove multi words
* Add server types enum
* Add error constants
* Remove sanitize from world level
* Use strn0cpy
* if for whatever reason the world server is not sending an address, use the local address it sends
* Log when world is sending loginserver info
* Force legacy mode when login host is login.eqemulator.net to avoid misconfigurations at least until things change
* Add human IP translation to log messages
* Sanitize world server name
* Code cleanup and renaming member variables
* More cleanup
* Remove this->
* Validation constants
* Key worldserver lookups by both longname and shortname both
* Update allowed character list
* Fix short_name API response field; add world_id to response
* Shorten receiver verbosity
* Remove unnecessary member variables from database and rename database to m_database
* Adjust MAX_SERVER_VERSION_LENGTH
* Fix indents
* Switch the 2 split calls to SplitString
* Nuke duplicate split in favor of SplitString #1263
* Add a test for SplitString
* Optimize SplitString
Benchmarking:
--------------------------------------------------------------
Benchmark Time CPU Iterations
--------------------------------------------------------------
bench_oldsplit 5201 ns 5201 ns 129500
bench_split 1269 ns 1269 ns 548906
This is splitting a VERY long SpecialAbilities string. This is ~75%
speed up.
* Add a std::string overload for Database::SetMQDetectionFlag
* Replace calls to MakeAnyLenString in client_packet.cpp
At least the SetMQDetectionFlag ones
* Replace MakeAnyLenString calls in client_process
At least SetMQDectectionFlag ones
* Replace MakeAnyLenString in embparser
fmtlib actually is gross here, oh well.
* Replace MakeAnyLenString in merc
* Replace MakeAnyLenString in inventory
Also if'd out an unfinished implementation of Client::GetItemLinkHash
* Replace AppendAnyLenString in zonelist
* Replace AppendAnyLenString in zonelist
* Replace MakeAnyLenString in clientlist
* Nuke MakeAnyLenString/AppendAnyLenString
* Fix formatting string in zonelist
Add Expeditions logging category
Add handlers for all Dynamic Zone/Expedition related opcodes
Add FormatName string_util function to format character names
Add Zone::IsZone helper method
Add cross zone MessageString support with variable parameters
Add static Client method helpers for cross zone messaging
Add #dz gm command to debug expedition cache for current zone
The standard stipulates that if RVO doesn't take place, that it should
return an rvalue anyways, so move semantics should take place without
the std::move, which were just forcing RVO to not be attempted.
Also removed duplicate code
The only thing that /might/ be slower is the output.clear() but that's
an edge case anyways.