* 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>
* chore(Scripts/Commands): QOL server debug
* England
* might as well do updatetime while we are at it. Consistency right?
* Hey let's sneak this ENGLAND in
* fix(Core/Unit): Invalidate update object cache when changing health in the same world update tick.
Should fix an issue when the client sees dead NPCs when they are not.
* Fix styling
* Another codestyle fix
* chore(Core/DBC): define unused unknown dbc fields
* Name unused unknown dbc fields using WDBX and wowdev.wiki
* rename SpellShapeshiftEntry to SpellShapeshiftFormEntry to properly match the DBC used
* rename sSpellShapeshiftStore to sSpellShapeshiftFormStore to properly match the DBC used
* Comment out unused field for GlyphPropertiesEntry
* Comment out unused field for MapEntry
* forgot one
* SpellShapeshiftfmt to SpellShapeshiftFormfmt
* SpellShapeshiftFormEntryfmt
* Check to see if other members in your arena team are queued or in a rated arena already and, if so, do not allow queue to go through
* Accidentally put team party check inside the for loop
* some basic logic efficiency changes
* minor syntax issue
- to me this hook should obviously provide an option to overwrite
the InstanceScript pointer
- this is e.g. beeing used by mod-eluna (but currently broken)
* refactor(Core/ObjectMgr): Handle Profanity & Reserved Names in load
* closes https://github.com/azerothcore/azerothcore-wotlk/issues/18556
* Update ObjectMgr.cpp
* Update ObjectMgr.cpp
* I swear I am not drunk
* We already check all of these
* fix build
* Forgot we dont send the responsecode in senderrormessage
* last commit I swear
* skip other effects in case of taunt DR
* set flags_extra creature_template
fe38b78c87
Co-authored-by: offl <offl@users.noreply.github.com>
* update query to only entries found in acore_world.creature_template
* add name as comment
* fix ci codestyle
---------
Co-authored-by: offl <offl@users.noreply.github.com>
* handle removal in periodic effect
* do removal with aurascript
* Revert "do removal with aurascript"
This reverts commit 383dd7b255e18d52f5fbecbfcb47ac08331ba626.
* Revert "handle removal in periodic effect"
This reverts commit ab6984e95613df3fa32d45489f607650c9700ff7.
* add AURA_INTERRUPT_FLAG_TALK to 45406
* implement Pause and Resume for WaypointMovementGenerator
Co-authored-by: ccrs <ccrs@users.noreply.github.com>
* prevent restart from external sources if wp is paused
* don't update stopmove on every update
SetFacing breaks otherwise
* timer args not used
---------
Co-authored-by: ccrs <ccrs@users.noreply.github.com>
fix(Core/PlayerQuest): Introduce flag QUEST_SPECIAL_FLAGS_CAN_FAIL_IN_ANY_STATE
- this allows flagging quests so that they are allowed to fail in Player::FailQuest()
independant of their current state
- update quest 853 accordingly as a first use case
* fix(Core): Correct Quest XP Display when modified by SPELL_AURA_MOD_XP_QUEST_PCT
The quest XP displayed on the gossip window was not modified for auras that increase quest XP gain (e.g. spell ID 57353). This commit corrects the quest XP display when accepting/returning quests.
* refactor(Entities/Player): Added a `CalculateQuestRewardXP()` function to reduce duplicated code
* cleanup(Entities/Creature): Removed now unused variable `playerLevel`
* Apply suggestions from code review
Co-authored-by: Kitzunu <24550914+Kitzunu@users.noreply.github.com>
---------
Co-authored-by: Kitzunu <24550914+Kitzunu@users.noreply.github.com>
fix(Core/Spells): Don't send SMSG_CAST_FAILED for interrupted spells after they were launched or channelling was started (this clears cooldown on client)
https: //github.com/TrinityCore/TrinityCore/commit/63bc405faeb7afcf99de6f7531e4ea59065165f4
Co-authored-by: Shauren <shauren.trinity@gmail.com>
fix(core/spell): Presence of Mind should not apply cooldown mods on category spells.
Mage T4 set 4 set bonus puts cooldown reduction on Presence of Mind which should not be passed down to category spells,
because in case of infinity cooldown on Arcane Power it does not get reset when you lose the Presence of Mind aura and Arcane Power stays forever in cooldown
or more specifically for 1 month(infinity cooldown).
Closes https://github.com/azerothcore/azerothcore-wotlk/issues/17800
Patch 3.0.9 https://wowpedia.fandom.com/wiki/Patch_3.0.9
Co-authored-by: Kitzunu <24550914+Kitzunu@users.noreply.github.com>
* Fix CanExecuteCommand only being executed on command failure.
* Updated for style guide.
* Removed pointless hook call.
* Modified the name of the hook to better reflect function and moved the call to trigger for non-existent commands.
* Updated to OnTryExecuteCommand because Foe has a special place in my heart.
* Forgot to change these 2 areas.
* dismiss summoned non-hunter pets by removing them
* store createdbyspellid
* Revert "dismiss summoned non-hunter pets by removing them"
This reverts commit eb539e841d882a6c90f743792c91304b0d365a5c.