1. Core Cleanup
- Move all ServerMail logic from `ObjectMgr` into a new dedicated `ServerMailMgr` class
- Move faction logic for money from SendServerMail into the script
2. Separation of items into a new table
- Create a new `mail_server_template_items` table
- Allows to send multiple items in one mail
- Separate items per faction Alliance/Horde
3. Separation of conditions into a new table
- Create a new `mail_server_template_conditions` table
- Allows to use multiple conditions for one mail
- Available condition types
- Minimum playtime (playerLevel >= condition)
- Minimum playtime (playerPlayTime >= condition)
- Rewarded quest
- Earned achievement
- Earned reputation (playerReputation >= conditionState)
- Faction
- Race
- Class
4. Updated ServerMail loading
- Move item and condition loading to their own functions
- LoadMailServerTemplateItems()
- LoadMailServerTemplateConditions()
5. Reworked eligibility check
- Player needs to pass all conditions to be eligible for the mail
- All players are automatically eligible if no conditions exist for a server mail template.
6. Updated foreign keys
- For table `mail_server_character`, `mail_server_template_conditions`, `mail_server_template_items` foreign key with on delete cascade is added for automatic removal of entries if mail_server_template.id is deleted.
7. Database changes
- See the PR
* 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
* Add OnAfterDatabaseLoadCreatureTemplates hook
- fix issue where the fast template cache was not updated correctly after a CS reload of a single creature template
* Parameter naming tweak to reduce confusion.
* Refactor to streamline fastcache creation, remove threading concerns
* Remove unneeded resize when loading creature templates
* Update fast cache resizing to highest-performing option
* Update ObjectMgr.cpp
Rework to `ObjectMgr::LoadReputationSpilloverTemplate()` allowing more factons to be added.
* Create reputation_spillover_template-update.sql
Alteration to `reputation_spillover_template` table, update allowing to add two more factions.
* Update SharedDefines.h
`MAX_SPILLOVER_FACTIONS` is now equal 6 instead of 4.
* Update reputation_spillover_template-update.sql
Now it alters table instead recreating it.
* fix(Core/ObjectMgr.cpp): Wrong format occurred (invalid format string)
Wrong format occurred (invalid format string)
* fix(Core/ObjectMgr.cpp): Wrong format occurred (invalid format string)
* fix(Core/ObjectMgr.cpp): Wrong format occurred (invalid format string)
Co-authored-by: Angelo Venturini <nefertum.dev@protonmail.com>
---------
Co-authored-by: Angelo Venturini <nefertum.dev@protonmail.com>
* 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
feat (core\log\db): item.dbc and enforcement
dbc enforcement partial pick from tc: 0c44bd33ee
Custom Item for testing by menevia16a (SPP DEV VEIL)
feat (core\log\db): item.dbc and enforcement
Update Item.sql
Update DBCStores.cpp
Update World.cpp
Update ObjectMgr.cpp
further replacement from template to dbc lookup
further logging and implementation
cherry pick tc fd26c3c87c
replace with db lookup
update (sql): Murder all the backticks
line break fixit
fix (item_template): fix incorrect subclass
fix incorrect subclass matching with dbc enforcement
update: log correction for sub class
update log correction for sub class
add subclass to dbc enforcement
add subclass dbc enforcement since it is part of the item.dbc item_dbc
update (log): additional log
Co-authored-by: blub <trinity.michael_vincent@gmx.eu>
Co-authored-by: Shocker <511388+shocker@users.noreply.github.com>
Co-authored-by: Veil <1913466+menevia16a@users.noreply.github.com>
Co-authored-by: Shocker <43253032+shockerqt@users.noreply.github.com>