Commit Graph

365 Commits

Author SHA1 Message Date
Kitzunu
ebf5f6710a feat(Core/Chat): Provide a fully-formed protocol for addons to intera… (#19305)
* 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>
2024-07-06 19:13:24 +02:00
Benjamin Jackson
620c40b010 fix(Core/Handlers): Adjust start swing handler. (#19267)
* Init.

* Flesh out packet info.

https: //github.com/TrinityCore/TrinityCore/commit/af6d207addfef177fb5ac3e7fa61ec93ced83d16
Co-Authored-By: ForesterDev <11771800+ForesterDev@users.noreply.github.com>

---------

Co-authored-by: ForesterDev <11771800+ForesterDev@users.noreply.github.com>
2024-07-05 07:45:26 -03:00
Kitzunu
aebb99ecda fix(Core/Character): TeleportTo() in HandlePlayerLoginFromDB() causes… (#19237)
fix(Core/Character): TeleportTo() in HandlePlayerLoginFromDB() causes breakdown in the network communication

* closes https://github.com/azerothcore/azerothcore-wotlk/issues/16307
2024-07-04 14:30:25 -03:00
Kitzunu
0a8175ef03 refactor(Core/ObjectMgr): Handle Profanity & Reserved Names in load (#19259)
* 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
2024-07-03 00:23:32 +02:00
Kitzunu
f96d4c8670 Revert "Add (core\db): Support for Homebind Orientation (#13389)" (#19257)
* Revert "Add (core\db): Support for Homebind Orientation (#13389)"

This reverts commit 2e6f6e26da.

 Changes to be committed:
	modified:   src/server/database/Database/Implementation/CharacterDatabase.cpp
	modified:   src/server/game/DungeonFinding/LFGScripts.cpp
	modified:   src/server/game/Entities/Player/Player.cpp
	modified:   src/server/game/Entities/Player/Player.h
	modified:   src/server/game/Entities/Player/PlayerStorage.cpp
	modified:   src/server/game/Entities/Player/PlayerUpdates.cpp
	modified:   src/server/game/Handlers/CharacterHandler.cpp
	modified:   src/server/game/Handlers/MiscHandler.cpp
	modified:   src/server/game/Handlers/MovementHandler.cpp
	modified:   src/server/game/Maps/Map.cpp
	modified:   src/server/game/Spells/Spell.cpp
	modified:   src/server/scripts/Commands/cs_misc.cpp
	modified:   src/server/scripts/Commands/cs_tele.cpp
	modified:   src/server/scripts/Northrend/VaultOfArchavon/instance_vault_of_archavon.cpp

 Untracked files:
	data/sql/updates/pending_db_world/rev_1719945200692175000.sql

* Revert "Add (core\db): Support for Homebind Orientation (#13389)"

* whoops
2024-07-02 22:02:15 +02:00
Benjamin Jackson
d6d49a9e45 refactor(Core/ObjectMgr): Implement display probabilities. (#19068)
* Init.

Cherry-picked from TC commits 9d210476e5 and c488fb219a

Co-Authored-By: Traesh <9392905+traesh@users.noreply.github.com>
Co-Authored-By: Shauren <shauren.trinity@gmail.com>

* Add brute data.

Needs validation against what existed before, i.e. Classic change prevention.

* Add validation info for brute data.

* Remove incomplete data queries.

* Requested changes.

* Whitespace.

* Requested change.

Table name.

Co-authored-by: Kitzunu <24550914+Kitzunu@users.noreply.github.com>

* Requested change.

Table name.

Co-authored-by: Kitzunu <24550914+Kitzunu@users.noreply.github.com>

* Resolve the funny merge conflicts.

I wonder why git blame doesn't work on a file with 20k lines in it that's odd huh champ.

* Remove unused parameter.

* Remove uses of unused parameter.

* Use unused parameter.

Hopefully?

* I will cry.

* Sobbing endlessly.

* Remove comment.

* Adjust table structure query.

Remove length parameters and allow null for build value.

Co-authored-by: Kitzunu <24550914+Kitzunu@users.noreply.github.com>

* Adjust column datatype and add check constraint.

---------

Co-authored-by: Traesh <9392905+traesh@users.noreply.github.com>
Co-authored-by: Shauren <shauren.trinity@gmail.com>
Co-authored-by: Kitzunu <24550914+Kitzunu@users.noreply.github.com>
2024-06-16 18:12:16 +02:00
Jelle Meeus
a6425c3630 fix(Core/PetHandler): when dismissing a charmed unit owned by another unit; stop the charm instead of despawning (#18989)
2cdea49d81
2024-06-03 00:42:06 -03:00
Anton Popovichenko
5386443388 fix(Core/Characters): Fix crash on characters deletion with COD mails. (#18754)
fix(Core/Characters): Fix crash on characters deletion.
2024-04-17 03:53:43 -03:00
Walter Pagani
564192f881 fix. Prevent character deletion if you have an email (#18743)
* fix. Prevent character deletion if you have an email

* Conditional revert

* change message

* original message
2024-04-14 08:00:50 -03:00
Elmsroth
b1cf830009 chore(PlayerScript/Hook) : Add CanSetTradeItem Hook in PlayerScript (#18583)
* chore(PlayerScript/Hook) : Add CanSetTradeItem Hook in PlayerScript

* Allowing non traded slots

* Fix typo and codestyle
2024-03-26 21:28:37 -03:00
sudlud
d94d10aa9f fix(Core): Prevent gift wrapping of limited duration items (#18334)
fix(Core): Prevent gift wrapping of items with duration

- remaining duration is not beeing stored in character_gifts
- gift wrapping of items with duration preserved
  them infinitely
2024-02-19 21:23:13 +01:00
Nathan Handley
df33a57b78 feat(Core/Unit): New helper IsClass and script hook OnPlayerIsClass (#18243)
* Class Comparison Logic Encapsulation - Parity

* Add Context to IsClass

* Add Unit IsClass script hook

* Replace additional getClass with IsClass

* Update CanUseItem to replace getClass with IsClass

* Add separate context for pet vs ability

* Change Create to Init since not all referenced contexts are creation

* Align spacing in ClassContext

* Drop context on LFGManager max power

* Update IsClass context that wraps around Missle Barrage

* Rename context for swapping weapons

* Be more specific than CLASS_CONTEXT_TALENT

* Remove duplicate context

* Moved IsClass Hook to Player

* Removed unused parameter in virtual base function

* Added maybe_unused to IsClass virtual in order to compile

To match the override signature, the virtual base needs to include the parameter in question, so using [maybe_unused] to signal to the compiler to allow it

* Remove extra blank line

* Add ABILITY_REACTIVE context

* Add context for PET_CHARM

* Remove explicit nullopt check per review

* Code Readability - Change if to if else in pet

Due to the return pattern, this doesn't change functionality in any way

* Add OnPlayer to disambiguate

---------

Co-authored-by: NathanHandley <nathanhandley@protonmail.com>
2024-02-10 12:25:00 -03:00
Kalimist
1324f420f2 Fix(Core/CharacterHandler): Incorrect behavior using an equipment set… (#18253)
* Fix(Core/CharacterHandler): Incorrect behavior using an equipment set if it will result in a full inventory.

* Fixing the error message to -Equiment swap failed - inventory is full- like the Blizzlike error message
2024-02-03 14:34:33 +01:00
Kitzunu
6202835cff fix(Core/LFG): Hide XP from max players (#18103)
* Cherry-pick Player::IsMaxLevel from TrinityCore
* Correctly hide XP reward for max level players in LFG
* Closes #18101
2024-01-03 19:47:26 +01:00
Anton Popovichenko
dc830932f7 fix(Core): Fix item disappearing on selling item on auction (#18090) 2024-01-01 08:01:22 -03:00
Tristan 'Natrist' Cormier
ac676f87ab chore(Core/Player): remove unused AnticheatSetSkipOnePacketForASH() function (#17947) 2023-12-09 01:09:52 +01:00
Winfidonarleyan
eb1ecc38a5 feat(Core/Scripting): move all script objects to separated files (#17860)
* feat(Core/Scripts): move all script objects to separated files

* Apply 5bfeabde81

* try gcc build

* again
2023-12-02 21:13:20 +01:00
Kitzunu
5bfeabde81 chore(Core/Misc): rename spellInfo pointers (#17914)
* Rename all
2023-12-02 06:03:15 -03:00
Tristan 'Natrist' Cormier
4c94f62144 chore(Core/Account): move AccountMgr::IsGMAccount() to class WorldSession (#17845) 2023-11-28 21:44:48 +01:00
Kitzunu
f440a7479f fix(Core/Groups): Create the group at first invite (#17869)
* cherry-pick commit (132538db1d)
* cherry-pick commit (250e8d998b)
* part https://github.com/azerothcore/azerothcore-wotlk/issues/11070

Co-authored-by: Treeston <14020072+Treeston@users.noreply.github.com>
2023-11-26 20:34:45 +01:00
Winfidonarleyan
e90d7a2f92 chore(Core/Misc): sort includes (#17776)
* chore(Cleanup): sort includes

* fix build

* fix build again
2023-11-18 17:51:26 +01:00
Tristan 'Natrist' Cormier
0e1bdb1154 chore(Misc/Lang): rename LANG_YOU_NOT_HAVE_PERMISSION to LANG_PERMISSION_DENIED (#17732) 2023-11-16 06:06:17 -03:00
Kitzunu
bbadc32bea Revert Visibility Notifier changes (#17682)
* Revert "fix(Core/Grid): Implement missing GridUnload setting (#17569)"

This reverts commit 79b39f9655.

* Revert "fix(Core/Grid): Address bugs and performance issues introduced by visibility notifier implementation (#17480)"

This reverts commit 60e27511c5.

* Revert "fix(Core): GridCleanUpDelay Log (#17436)"

This reverts commit 90b16ca065.

* Revert "feat(Core/Grids): Implement visibility notifier (#15919)"

This reverts commit 2779833768.
2023-11-12 00:48:49 +01:00
Vitumoc
4df0ab3427 fix(Core/Character): fix worldserver with autobalance mod crash when character creation fails (#17625)
* set vars before clean player when create err

* code style

* dont clean

* code style

* check flag
2023-11-12 00:15:05 +01:00
Tristan 'Natrist' Cormier
f1cb3bfb3b refactor(Core/Network): remove redundant logging calls from some message handlers (#17565)
chore: removed redundant logging calls from some message handlers
2023-11-08 21:53:43 +01:00
Kitzunu
f757e93da5 refactor(Core/Misc): Make DeathState enum class (#17607) 2023-10-28 10:54:03 +02:00
AG
60e27511c5 fix(Core/Grid): Address bugs and performance issues introduced by visibility notifier implementation (#17480)
* Bug fixes

- Corrected std::chrono from seconds to milliseconds
- Got rid of leftover code that caused objects to not show up on time

* Removed logic to set gameobject as active

- More alignement with TC.
- Reduces CPU usage drastically

* Revert back to using time_t instead of std chrono

* Invoke SetNoCreate() method to reduce CPU usage drastically

* Remove setActive from static and motion transports

* Fix performance issues

* Added SetFarVisible to WG and some dungeon scripts

- Also removed setActive(true) from creatures in Wintergrasp. As for gameobjects they are set to active upon being damaged/destroyed and removed from active on rebuild (reset)

* Removed comments related to VISIBILITY_COMPENSATION

* Fix log

* Deleted unused files + corrected a check

* Added missing header

* Removed unused parameter

* Removed another unsued parameter

* Changed vector to set for i_visibleNow

- Changed vector to set for i_visibleNow in VisibleNotifer
- Adjusted HaveAtClient to accept Object*
- Adjusted SendUpdateToPlayer to send createobject packet only if not known to client
2023-10-23 05:37:11 -03:00
avarishd
43be5db44c fix(Core/ChatHandler): SPELL_AURA_MOD_LANGUAGE should affect only Say… (#17465)
fix(Core/ChatHandler): SPELL_AURA_MOD_LANGUAGE should affect only Say and Yell
2023-10-10 10:15:48 -03:00
Ludwig
056ea323f3 fix(Core/Achievement): Implement ACHIEVEMENT_CRITERIA_TYPE_ROLL_DISENCHANT (#17319) 2023-09-22 00:50:39 +02:00
Francesco Borzì
5d01b700fd refactor(Core): remove unused imports (#17094) 2023-08-28 13:39:43 +02:00
Kitzunu
3eb2463c69 chore(Core/Misc): Correct some fmt outputs (#17091) 2023-08-27 06:23:26 +02:00
Anton Popovichenko
f6b77f9d64 fix(Core/Pets): Fix crash when pet tries to attack deleted object (#17034)
This situation occurs when, during a fight, a pet receives a command to apply a positive spell to an ally and then resume attacking its previous target.
2023-08-19 22:27:51 +02:00
Kitzunu
c866e17406 refactor(Core/Motd): Move motd to MotdMgr (#16933) 2023-08-06 23:02:54 +02:00
Kitzunu
ceca5d06f8 fix(Core/PacketIO): Prevent HandleGameobjectReportUse when Gob is not… (#16707)
fix(Core/PacketIO): Prevent HandleGameobjectReportUse when Gob is not selectable
2023-07-30 13:04:46 +02:00
Axel Cocat
642bd1936b fix(Core/Arena): allow crossfaction arena teams (#16823) 2023-07-27 08:37:20 -03:00
Mickaël Mauger
6edcf05cc2 fix(Core/AuctionHouse): Fix AH searches with high number of auctions (#13467)
Fix AH searches with high number of auctions
2023-06-27 20:11:21 +02:00
Walter Pagani
7f9cdda17b chore(Core/ScriptMgr): Hooks used in mod-aoe-loot (#16589)
* Creating the necessary hooks for the loot aoe

* update hook

* Typing error

* Method name and add documentation

* codestyle

* Misc. fixes
2023-06-24 08:23:23 -03:00
Walter Pagani
666b5847c3 chore(Core/MiscHandler): SendAreaTriggerMessage with integer parameter (#16506)
Add the possibility for SendAreaTriggerMessage to accept an integer parameter
2023-06-15 19:06:13 -03:00
天鹿
ab7c12fe41 chore(core): Cleanup code p2 (#16041)
* Update AchievementMgr.cpp

* Update M2Stores.cpp

* Update LFGHandler.cpp

* Update PetHandler.cpp

* Update WaypointMovementGenerator.cpp

* Update ScriptMgr.cpp

* Update SpellAuras.cpp

* Update Spell.cpp

* Update SecretMgr.cpp

* Update SpellScript.cpp

* Update SecretMgr.cpp

* Update Spell.cpp

* Update SpellAuras.cpp

* Add files via upload

* Update PetHandler.cpp

* Update PetHandler.cpp

* Update CalendarMgr.cpp

* Update LFG.h

* Update WaypointMovementGenerator.cpp

* Update MapScripts.cpp

* Update Unit.cpp

* Update SmartScript.cpp
2023-05-13 15:00:29 -03:00
M'Dic
7e58650cf5 revert(Core): ChrRace.dbc full implementation (#16114)
* revert (core): ChrRace.dbc full implementation

we revert this due to several issues arrising. Although the dbc reading is done in full and correctly. Azerothcore relied on the original handling (althought not propper) for so long that  there is

* revert

* Update remove_charrace_dbc.sql

* Update remove_charrace_dbc.sql

* Update remove_charrace_dbc.sql
2023-04-29 08:23:11 -03:00
M'Dic
e5665c32f8 update (core\store): sLFGDungeonStore update (#15325)
* update (core\store): sLFGDungeonStore update

update (core\store): sLFGDungeonStore update

Co-Authored-By: Kitzunu <24550914+Kitzunu@users.noreply.github.com>

* update (core\store): sLFGDungeonStore update

Co-Authored-By: Kitzunu <24550914+Kitzunu@users.noreply.github.com>

---------

Co-authored-by: Kitzunu <24550914+Kitzunu@users.noreply.github.com>
2023-04-29 12:25:49 +02:00
M'Dic
3eae4c5713 fix(core/dbc): improve ChrRace DBC handling (#14843)
Cherry pick of https://github.com/TrinityCore/TrinityCore/pull/24508

Co-authored-by: HelloKitty <5829095+HelloKitty@users.noreply.github.com>
2023-04-28 01:29:33 +02:00
天鹿
d75bcf0f67 chore(core): Cleanup code (#16012)
* Update SmartScript.cpp

* Update M2Stores.cpp

* Update PetHandler.cpp

* Update WaypointMovementGenerator.cpp

* Update WorldSession.cpp

* Update spell_item.cpp

* Update LoginDatabase.cpp
2023-04-19 21:34:48 -03:00
ZhengPeiRu21
5af67b384b feat: Add CanPlaceAuctionBid hook (#15154)
* feat: Add CanPlaceAuctionBid hook

* Codestyle fix
2023-04-17 21:06:04 -03:00
M'Dic
8aa2a2ac0f chore (core): Clean up (#15977)
* chore (core): Clean up

* Update SmartScript.cpp

* more clean up

* Update boss_xt002.cpp
2023-04-16 21:04:56 -04:00
Kitzunu
933b3e1fdd fix(Core/Groups): Implement MSG_RAID_READY_CHECK_FINISHED (#15442)
* cherry-pick commit (c8f7dd13b8)

Co-authored-by: robinsch <robinsch@users.noreply.github.com>
2023-03-31 10:43:49 +02:00
Axel Cocat
357a2a33ce feat(Core/ChatHandler): ignore chat level requirement when whispering self (#15564)
feat(Core/ChatHandler): ignore chat level requirement when whispering self
2023-03-25 00:14:38 +01:00
Axel Cocat
5e9b88a9a9 feat(Core/Mail): call CanSendMail() when returning to sender (#15553) 2023-03-23 18:56:48 -03:00
UltraNix
ed31c22cc5 fix(Core/Gossip): Do not close gossip on target deselection. (#15457)
Fixes #12399
2023-03-21 18:30:43 -03:00
Kitzunu
0f2f86171a fix(Core/Mail): Reorder mail attachment checks (#15418)
* The check never hits as CanBeTraded() checks for empty bag too and we need to check it before as it uses a different error

* Cherry-pick : 9658d15b0c

Co-authored-by: Anton Popovichenko <walkline.ua@gmail.com>
2023-03-17 15:15:58 +01:00