EverWrath/src/server/game
Kitzunu 231096132c
refactor(Core/ServerMail): Refactor to Dedicated Manager Class with Multi-Item & Condition Support (#21590)
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
2025-03-09 09:18:01 +01:00
..
Accounts fix(Core/DB) - Correct the max length of a username to 17 characters (#21183) 2025-01-19 08:18:56 +01:00
Achievements fix(Core/PlayerScript) Align player script function names (#21020) 2025-02-16 14:59:41 +01:00
Addons refactor(src/server/database|shared): remove unused import (#20316) 2024-10-28 10:04:42 +01:00
AI feat(Core/Scripting): Implement ScheduleEnrageTimer() helper (#21597) 2025-02-24 09:59:18 +01:00
ArenaSpectator refactor(Core/Player): Improve Channel.RestrictedLfg handling (#21145) 2025-01-21 19:09:31 +01:00
AuctionHouse fix(Core/Auctionhouse): Fix auctionhouse searches with locales other than enUS (#21019) 2024-12-23 08:26:18 +01:00
Autobroadcast feat(Core/Autobroacast): Add autobroadcast locale (#20946) 2025-01-26 09:37:32 +01:00
Battlefield fix (Core/Wintergrasp) Fix map and battle icon (#21622) 2025-03-02 05:46:49 +01:00
Battlegrounds feat(Core/BG): Allow battlegrounds to be configurable (#20320) (#21124) 2025-03-01 12:01:10 -03:00
Cache refactor(Core/World): Create WorldSessionMgr to split session logic out of World (#21400) 2025-02-13 07:04:38 +01:00
Calendar chore(Core/Misc): Some cleanup (#19970) 2024-09-21 19:34:31 +02:00
Chat fix(Core/Chat): Fix lower security check for GM commands. (#21382) 2025-02-14 22:11:01 +01:00
Combat fix(Core/Creature): Creatures should skip confused targets (#21410) 2025-02-13 13:22:02 -03:00
Conditions fix(Core/Disables): Optimize DisableMgr container (#21416) 2025-02-12 10:40:04 -03:00
DataStores refactor(src/server/game/*): remove unused imports (big part 1) (#20310) 2024-10-27 10:25:40 +01:00
DungeonFinding fix(Core/PlayerScript) Align player script function names (#21020) 2025-02-16 14:59:41 +01:00
Entities Core/Unit: Revert AutoRepeatSpell delay application to Auto Shot (#19603) 2025-03-08 15:45:15 +01:00
Events refactor(Core/World): Create WorldSessionMgr to split session logic out of World (#21400) 2025-02-13 07:04:38 +01:00
Globals refactor(Core/ServerMail): Refactor to Dedicated Manager Class with Multi-Item & Condition Support (#21590) 2025-03-09 09:18:01 +01:00
Grids fix(Core/Grids): Standardize grid coordinates (#21479) 2025-02-18 07:16:36 +01:00
Groups fix(Core/PlayerScript) Align player script function names (#21020) 2025-02-16 14:59:41 +01:00
Guilds fix(Core/Guild): Fix use of guild members' data after deletion. (#21421) 2025-02-12 18:23:57 -03:00
Handlers fix(Core/Misc): Fix NextPage Data Type in PageText Structure and Improve Logging Messages (#21586) 2025-02-22 21:58:21 -03:00
Instances refactor(Core/Packet): use WorldPackets::WorldState::InitWorldStates definition (#20475) 2025-02-19 07:55:09 -03:00
Loot fix(Core/PlayerScript) Align player script function names (#21020) 2025-02-16 14:59:41 +01:00
Mails refactor(Core/ServerMail): Refactor to Dedicated Manager Class with Multi-Item & Condition Support (#21590) 2025-03-09 09:18:01 +01:00
Maps fix(Core/Bones): Unable to create bones (#21635) 2025-03-03 22:11:56 +01:00
Misc fix(Core/PlayerScript) Align player script function names (#21020) 2025-02-16 14:59:41 +01:00
Miscellaneous feat(Core/Creature): Implement HasFlagsExtra() helper to creature (#21362) 2025-02-08 14:07:04 -03:00
Modules refactor(Core): remove unused imports (#9969) 2022-01-02 20:22:09 +01:00
Motd refactor(Core/Motd): improve and simplify (#21252) 2025-01-27 11:07:46 +01:00
Movement fix(Core/Grids): Grid improvements (#20955) 2025-02-14 22:11:27 +01:00
OutdoorPvP refactor(Core/Packet): use WorldPackets::WorldState::InitWorldStates definition (#20475) 2025-02-19 07:55:09 -03:00
Petitions refactor(src/server/game/*): remove unused imports (big part 2) (#20311) 2024-10-27 05:06:14 +01:00
Pools refactor(src/server/game): optimise imports (#20541) 2024-11-13 11:37:20 +01:00
PrecompiledHeaders feat(License): add new headers information about license (#7941) 2021-09-30 13:40:52 +07:00
Quests fix(Core/PlayerQuest): Introduce flag QUEST_SPECIAL_FLAGS_NO_LOREMAST… (#19962) 2024-09-15 18:15:21 -03:00
Reputation refactor(src/server/game): optimise imports (#20541) 2024-11-13 11:37:20 +01:00
Scripting feat(Core/Scripting): Add new hooks for Ticket (#21238) 2025-02-17 03:26:05 +01:00
Server fix(Core/Server): Disable out of world packet requeuing (#21608) 2025-02-25 23:11:36 -03:00
Skills refactor(Core/Misc): Use emplace_back instead of push_back to avoid extra copy/m… (#20114) 2024-10-10 21:55:58 +02:00
Spells fix(Scripts/Ulduar): Fix Kologarn script (#21595) 2025-03-04 23:44:57 -03:00
Texts refactor(Core/World): Create WorldSessionMgr to split session logic out of World (#21400) 2025-02-13 07:04:38 +01:00
Tickets feat(Core/Scripting): Add new hooks for Ticket (#21238) 2025-02-17 03:26:05 +01:00
Time refactor(src/server/game): optimise imports (#20541) 2024-11-13 11:37:20 +01:00
Tools refactor(src/server/game): optimise imports (#20541) 2024-11-13 11:37:20 +01:00
Warden refactor(src/server/game): optimise imports (#20541) 2024-11-13 11:37:20 +01:00
Weather refactor(Core/World): Create WorldSessionMgr to split session logic out of World (#21400) 2025-02-13 07:04:38 +01:00
World refactor(Core/ServerMail): Refactor to Dedicated Manager Class with Multi-Item & Condition Support (#21590) 2025-03-09 09:18:01 +01:00
CMakeLists.txt feat(Core/Modules): add separated lib for modules (#9281) 2021-12-02 20:28:58 +07:00