Commit graph

286 commits

Author SHA1 Message Date
Tereneckla
dda1fe87ca
feat(Core/World) add an error message when closing due to not finding the starting area map files (#21879)
Server no longer will close without displaying an error message.
2025-04-08 22:13:26 +01:00
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
valsan-azerty-boi
a3f7e1e76d
feat(Core/BG): Allow battlegrounds to be configurable (#20320) (#21124) 2025-03-01 12:01:10 -03:00
Kitzunu
6f38d3c817
fix(Core/Logging): revert commit e3432102f7… (#21593) 2025-02-23 17:53:11 +01:00
Takenbacon
4cd1ed2181
refactor(Core/Server): Improvements to antidos opcode handling (#21502) 2025-02-21 07:17:34 +01:00
iThorgrim
e3432102f7
fix(Core/World): Load metric and log configs at start (#21243) 2025-02-15 23:34:25 +01:00
Takenbacon
ee69a569c4
fix(Core/Grids): Grid improvements (#20955) 2025-02-14 22:11:27 +01:00
Takenbacon
edcfaeb845
refactor(Core/World): Create WorldSessionMgr to split session logic out of World (#21400) 2025-02-13 07:04:38 +01:00
Andrew
16fa25b7a9
feat(Core/Maps): Implement dynamic respawn rates (#21417)
Co-authored-by: r00ty-tc <r00ty-tc@users.noreply.github.com>
Co-authored-by: Jelle Meeus <sogladev@gmail.com>
Co-authored-by Treeston

This is a partial cherry-pick of: https://github.com/TrinityCore/TrinityCore/pull/19056/commits/59db2eeea0a35028779fd76372ae06cc98c8086f
2025-02-12 15:06:42 -03:00
Anton Popovichenko
f6a0433297
feat(Core/Arena): Add support for arena seasons completion with progression in runtime. (#19858)
Co-authored-by: Winfidonarleyan <dowlandtop@yandex.com>
2025-02-12 07:09:31 -03:00
Kitzunu
47c5ff904f
refactor(Core/Disables): Convert from Namespace to Class Structure (#21109) 2025-02-01 22:48:52 +01:00
Kitzunu
9e9a2fe5e3
refactor(Core/ObjectMgr): Change GetAcoreString from char const* to s… (#21213)
...ring
2025-02-01 22:46:42 +01:00
Jelle Meeus
00b8a3f419
feat(Core/WorldState): implement Battle for Sun's Reach Event (#21219)
Co-authored-by: killerwife <killerwife@gmail.com>
Co-authored-by: Benjamin Jackson <38561765+heyitsbench@users.noreply.github.com>
Co-authored-by: MantisLord <sabinprosper@gmail.com>
2025-01-31 13:19:12 +01:00
Grimdhex
edf2959a26
feat(Core/Creatures): implement a sparring system (#19824) 2025-01-26 09:40:37 +01:00
Exitare
a74e06c27c
feat(Core/Autobroacast): Add autobroadcast locale (#20946) 2025-01-26 09:37:32 +01:00
Tralenor
70c34bd403
fix(Core/World): edge case when last Char on realm was deleted (#20864) 2025-01-09 20:20:02 +01:00
Kitzunu
275ff66e29
chore(Core/World): improve server restart/shutdown logging (#21046) 2025-01-04 10:36:23 +01:00
Exitare
7be3c82505
feat(Core/Creature): Add new config option for npc speeds (#20617) 2024-12-22 09:45:39 +01:00
Takenbacon
a23b13defe
fix(Core/Database): Gracefully close database workers (#20936)
* Gracefully close database workers

* Change init order. Such a silly compiler flag

* Fix hang if db connection failed to open
2024-12-18 20:24:17 +01:00
Takenbacon
4d349e87b5
feat(Core/AuctionHouse): Rework auctionhouse search threading (#20830) 2024-12-18 15:50:26 +01:00
Exitare
98b426bf3a
feat(Core/Player) Option to adjust max rest bonus via config (#20836) 2024-12-14 20:51:28 +01:00
Jelle Meeus
993bdcb84e
feat(Core/Player): implement Spell Queue (#20797) 2024-12-12 11:59:52 +01:00
Jelle Meeus
6b5f50cdbe
fix(Core/Database): prevent crash due to special chars in branch name (#20776)
add prepared statements to escape special characters in branch name
2024-11-30 12:26:57 -03:00
Jelle Meeus
3565e4a9eb
feat(Core/WorldState): improved WorldState scripting (#20141)
* implement world state script

based on
0b87ca9d9e

Co-authored-by: killerwife <killerwife@gmail.com>

* refactor to use onleave and onenter instead of spell_area

allows players to right click remove adal's buff

* add MapMgr.h

* refactor: use condition enum instead of uint32, prefix WORLD_STATE where needed

* remove lock from WorldState::Update

sWorldState->Update() is only called from World::Update

* remove unsafe SmartAI action of setWorldState

---------

Co-authored-by: killerwife <killerwife@gmail.com>
2024-11-12 12:15:27 -03:00
Jelle Meeus
859a42a41e
fix(Core/Vehicles): feat vehicle seat addon, vehicle enter/exit positions (#20082)
* implement initial vehicle_seat_addon

Co-authored-by: Ovah <dreadkiller@gmx.de>

* add more vehicle_seat_addon data

* make exiting passenger visible

fixes "immediate despawn" of travelers mammoth

* style, update comments

* remove hacked pos relocate

* remove sending MSG_MOVE_ROOT/UNROOT on Ack

* set and unset UNIT_NPC_FLAG_PLAYER_VEHICLE on init/entry

* ulduar demolisher: remove flag correction and no longer needed usableseat

* fixup! implement initial vehicle_seat_addon

* fixup! fixup! implement initial vehicle_seat_addon

* re-add AddPassenger Flame Leviathan hack

was commented by mistake

* Update rev_1725993194571320983.sql

add missing ticks

---------

Co-authored-by: Ovah <dreadkiller@gmx.de>
2024-10-11 07:08:14 +02:00
Francesco Borzì
b0899664ef
refactor(src/server/game/World): remove unused imports (#20090) 2024-10-01 08:05:36 +02:00
Francesco Borzì
34a3b4ee47
feat(Core/BG): allow MinPlayersPerTeam override for low-levels (#20083) 2024-09-29 14:07:45 +02:00
IntelligentQuantum
985410f184
feat(Core/Items): Delete old item id from recovery item (#18332) 2024-09-22 08:32:16 +02:00
sudlud
c929b95172
fix(Conf): sync default values with core defaults (#19708)
fix(Conf): sync values with core defaults
2024-09-03 08:02:28 -03:00
Kitzunu
030716421f
feat(Core/LFG): Option to disable deserter (#19618)
* feat(Core/LFG): Option to disable deserter

* closes https://github.com/azerothcore/azerothcore-wotlk/issues/19569

* Update IWorld.h
2024-08-14 09:19:56 -03:00
Kitzunu
2e02c76399
fix(Core/Creature): quest_greeting_locale (#19615)
* fix(Core/Creature): quest_greeting_locale

* closes https://github.com/azerothcore/azerothcore-wotlk/issues/14845
2024-08-13 21:09:36 +02:00
Kitzunu
4b63aa9015
feat(DB/Module): introduce module_string table (#19475) 2024-08-13 19:53:16 +02:00
Kitzunu
bb7765d91e
refactor(Core/World): Move SendGMText to ChatHandler and allow fmt (#19490)
* refactor(Core/World): Move SendGMText to WorldSession and allow `fmt`

- Move SendGMText from World to WorldSession

- Make SendGMText use fmt

- Make SendGMText parse acore_string entries

* Update cs_message.cpp

* tokenize the string only once

* Move to chathandler

* Update WorldSession.cpp

* make sure we have a session
2024-08-08 20:12:33 -03:00
Kitzunu
87f4adf634
refactor(Core/Chat): Move SendWorldText(optional) to ChatHandler and … (#19501)
* refactor(Core/Chat): Move SendWorldText(optional) to ChatHandler and allow `fmt`

* Update src/server/game/Battlegrounds/BattlegroundQueue.cpp

* Update src/server/game/Battlegrounds/BattlegroundQueue.cpp

* Update src/server/game/Misc/BanMgr.cpp

* Update src/server/game/Misc/BanMgr.cpp

* Update src/server/game/Misc/BanMgr.cpp

* Update src/server/game/Misc/BanMgr.cpp

* Update src/server/game/Misc/BanMgr.cpp

* Update src/server/game/Misc/BanMgr.cpp

* Update src/server/game/Misc/BanMgr.cpp

* Update src/server/game/Misc/BanMgr.cpp
2024-07-29 14:44:13 -03:00
avarishd
618f97bee6
feat(Core/Unit): Enable/Disable Daze config (#19454)
* daze

* bruh

* bruhx2
2024-07-20 15:53:00 -03:00
Kitzunu
21f86d1c3c
chore(Core/Misc): Remove deprecated code (#19413)
* Config - Deprecated for 3 years
* ChatCommand - Deprecated for 2 years
* getLevel() - Deprecated for 2 years
* SendGlobalText - Deprecated for 8 years +
2024-07-20 09:11:01 +03:30
Benjamin Jackson
70eb920b10
feat(Core/Unit): Implement munching as a configurable option. (#19188)
* Init.

* Correct description.

* Adjust boolean to integer in config.
2024-07-10 12:26:53 -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
sudlud
cd63cc0bc4
fix(Conf): align LeaveGroupOnLogout default in core with worldserver.conf.dist (#18859) 2024-05-11 14:37:22 +02:00
Walter Pagani
715b290cb7
feat(Map): Add open world LOS settings (#18816)
* chore. Add open world LOS settings

* Name change and conditional deny

* modify information in worldserver.conf.dist

* Remove pvp from variables and constants
2024-05-04 12:10:24 -03:00
Benjamin Jackson
b6c429c5a8
fix(Core/Quests): Create quest money reward config and adjust max level bonus reward function. (#18222)
* Init.

* Drop RewardBonusMoney column.

How's that for deprecation.

* Add formula source link.

* Remove deprecated info in conf.

* Newline.
2024-01-31 23:21:27 +01:00
Andrew
e3fd42f3d4
feat(Core/World): Implement DoForAllPlayers() helper for all online p… (#18060)
* feat(Core/World): Implement DoForAllPlayers() helper for all online players

* Update src/server/game/World/World.cpp

Co-authored-by: Winfidonarleyan <dowlandtop@yandex.com>

* Update src/server/game/World/World.cpp

Co-authored-by: Winfidonarleyan <dowlandtop@yandex.com>

* rename

* Update WorldMock.h

* Update WorldMock.h

---------

Co-authored-by: Winfidonarleyan <dowlandtop@yandex.com>
2024-01-01 13:57:57 +01:00
Andrew
a11434b24f
refactor(Core/GameObject): Move the GameObject state save handling to… (#18080)
* refactor(Core/GameObject): Move the GameObject state save handling to instance level

* Update GameObject.h

* remove leftover

* small improvements
2024-01-01 01:51:33 -03:00
Andrew
b65e67b8bd
chore(Core/World): Fix typo in the previous commit (#17826) 2023-11-22 21:00:16 +01:00
Andrew
70e5851c8a
feat(Core/Battleground): Add config to allow giving points at level 7… (#17821)
* feat(Core/Battleground): Add config to allow giving points at level 70 RBG

* update

* Update Battleground.h
2023-11-22 20:10:22 +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
forgives
ca7eb956aa
feature(Core/Pet): Add pet talent rate config (#17678)
* feat: add pet talent rate config

* feat(Core/Pet): keep consistent with player talent config

* refactor(Core/Pet): delete empty line
2023-11-12 09:33:06 +01: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
AG
79b39f9655
fix(Core/Grid): Implement missing GridUnload setting (#17569)
* Implement GridUnload setting

* Minor fixes

- Use GetOption instead of deprecated GetBoolDefault.
- Added a missing check for instances in LoadMap
- Replaced some numbers with global defines

* Possible crashfix + minor improvements

- Initialized initialOrientation which I had forgotten (likely cause of crash)
- Readded a previous check in UpdateSplineMovement
- Made i_objectsToRemove and i_worldObjects tos sets as they were previously, instead of unordered_set.

* Update worldserver.conf.dist

* Fix high CPU usage with preload grid enabled.

This should be it.
2023-10-26 19:32:15 -03: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