* feat(Core/Chat): Provide a fully-formed protocol for addons to interact with GM commands
* Send success/fail state, allow interleaving, and indicate end of output. Add framework for supporting non-human-readable output in commands.
* cherry-pick commit (508c9d2fc1)
This PR implements a well-formed protocol for addons to communicate with the server, outlined below:
- All communication happens over the addon channel (`LANG_ADDON` in terms of the core, `CHAT_MSG_ADDON`/`SendAddonMessage` for the client). The prefix used for all messages is `AzerothCore` (in client terms - in core terms, every message starts with `AzerothCore\t`).
- In each message, the first character is the opcode. The following four characters are a unique identifier for the invocation in question, and will be echoed back by the server in every message related to that invocation. Following is the message body, if any.
- The following opcodes are supported:
- Client to server:
- `p` - Ping request. The core will always respond by ACKing with the passed identifier. No body.
- `i` or `h` - Command invocation. The message body is the command text without prefix. `i` requests machine-readable output, `h` requests human-readable.
- Server to client:
- `a` - ACK. The first message sent in response to any invocation (before any output). No body.
- `m` - Message. Sent once per line of output the server generates. Body = output line.
- `o` - OK. Indicates that the command finished processing with no errors. No body.
- `f` - Failed. Indicates that command processing is done, but there was an error. No body.
Expected overhead is minimal, and this integrates seamlessly with existing command scripts (no changes necessary).
PS: There's also a client-side addon library that exposes this protocol in a developer-friendly way over at https://github.com/azerothcore/LibAzerothCore-1.0
---------
Co-authored-by: Treeston <14020072+Treeston@users.noreply.github.com>
* Update AuctionHouseHandler.cpp
* feat(warden): block PQR
* wip
* Update Warden.cpp
* Core/Warden: minor preperation
* Core/Misc: implemented some needed container wrapper functions
* Core/Warden: more preperations
* Core/Warden: more rework
* LUA checks now are splitted to seperate config
* LUA checks are always in front of queue
* Fixed "Other" checks
* Fixed PQR detection
* Core/Warden: adjusted and optimized
* Core/Warden: optimization
* Core/Warden: more optimization
* Core/Warden: use warden comments in ban reason
* Core/Warden: more warden work
* Core/Warden: more optimizations
* Core/Warden: more refactors
* Core/Warden: some more refactors + use default SHA definitions
* Core/Warden: more refactoring
* Core/Warden: fixed PQR detection again
* Core/Warden: improved detection logging
* Core/Misc: removed SmartEnums - we do not need it here + maybe should go as seperate commit
* Core/Warden: fixed some warnings
* Core/Warden: codestyle
* Core/Warden: include warden check comment to console logs
* Core/Warden: minor adjustment for previous commit
* Core/Warden: fixed static analysis warning
* Core/Warden: compilers, you're drunk this time... function is not unused...
* Core/Warden: minor correction for logs
* Core/Warden: one more improvement for logs
* Core/Warden: added missing overrides
* Core/Warden: some codestyle
* Core/Misc: more codestyle
* Core/Misc: more codestyle!
* Core/Warden: restored default config options... (if you change it, change in core source too)
* Core/Warden: addition to previous commit
* DB/Warden: added EWT and WOWPlus checks (provided by lineagedr)
* DB/Warden: addition to previous commit
* fix: codestyle
* Core/Warden: fixed build when extra logs are enabled in cmake
Co-authored-by: Stefano Borzì <stefanoborzi32@gmail.com>
Co-authored-by: Francesco Borzì <borzifrancesco@gmail.com>
* NULL to nullptr
* NULL to nullptr
* NULL to nullptr
* NULL to nullptr
* NULL to nullptr
Co-authored-by: Francesco Borzì <borzifrancesco@gmail.com>
Co-authored-by: Stefano Borzì <stefanoborzi32@gmail.com>
* azerothcore + eluna done.
* Remove the Eluna single thread limit.
* Read Eluna Settings file.
* submodule change.
* fix(test) Ubuntu - Cant Link Library after Compile
* The ELUNA is disabled by default.
* remove submodule luaEngine.
* some change
* fix a error
* change cmake
* fix: some onplayerchat does not have hooks.
* Eluna: Add BG event Hooks.
* fix:cmake hook AFTER_LOAD_CONF not work.
* Remove the eluna switch.
* Remove some define in the core.
* fix conf file not read in the linux.
* eluna : change bg hook parameter type
* Remove TC log function call
* change bg hook OnBGEnd parameter type.
Note: to enable Eluna, the module is required