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
* Initial commit for localized motd
* Rename function that created world packages
* Update to satisfy code check
* Update code to accomodate localized motd
* Update command to support multiple optionales & adjusted db
* Code cleanup
* Update sql name
* Fix codestyle issues
* Remove hardcoded schema
* Add check for valid player in reload command
* Update to better code style
* Add missing include
* Fix redundant code usage
* Add missing include
* Remove sql files and create new rev sql files
* Address minor code reviews
* Fix code style
* Update code to address code revisions.
- Remove two unused functions
- Remove map
- Use available function to resolve LocaleConstant
* Fix code style
* Add check for base motd and update locale to DEFAULT_LOCALE
* Code docs
* Removed some docs, readd defaultd motd formatting
* Fix oversight in variable declaration
* Code style fix
* Update code based on code review
* ready for merge
* Fix set motd command due to changes to DEFAULT_LOCALE
* Fix CI
* Fix trailing whitespace
---------
Co-authored-by: Kitzunu <24550914+Kitzunu@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
* 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
* Core/Misc Created handler for character creation
* fix(Core/DB): Error message when the password is longer than 16 char when creating an account
* Update rev_1551539925032805900.sql
* Update AccountMgr.cpp
* Milestone (DB/Core): Create new table for perfect item craft, create new command for reload capability to this new table, implements the table into core (killExtraItems.cpp, SkillExtraItems.h, SpellEffects.cpp), change some magic number with enum. Tnx to Treestone
* clean old sql
* Remove perfect item in skill extra item template table, now the perfect are in skill_perfect_item_template, sync column name skill_extra_item_template same as TC
* Update rev_1552232377246845400.sql
Reloading an existing creature with .reload creature_template will most of the time cause the error "MoveSplineInitArgs::Validate: expression 'velocity > 0.01f' failed for GUID..." when the NPC tries to move afterward without a proper server restart.
Caused because the cInfo->speed_run was calling the field 29 for whatever reason.