Commit Graph

854 Commits

Author SHA1 Message Date
Maks Szokalski
179686d4c9 Flash worldserver on taskbar on thread start (#26886)
* Flush worldserver on taskbar on thread start

* update

* update

* fix codestyle

* Update worldserver.conf.dist

* Update src/server/worldserver/worldserver.conf.dist

Co-authored-by: NoName <322016+Faq@users.noreply.github.com>

Co-authored-by: NoName <322016+Faq@users.noreply.github.com>
(cherry picked from commit b1e7f2489c)
2022-03-19 20:07:17 +01:00
Anton Popovichenko
8447f627ba Core/Config: Implement config override with env vars (#26811)
* Core/Config: Implement config override with env vars

Implement overriding of configuration from the .conf file with environment variables.
Environment variables keys are autogenerated based on the keys defined in .conf file.
Usage example:
$ export TC_DATA_DIR=/usr
$ TC_WORLD_SERVER_PORT=8080 ./worldserver

* Core/Config Fix typo in logs

Co-authored-by: Giacomo Pozzoni <giacomopoz@gmail.com>

* Core/Config Fix code style in EnvVarForIniKey

Co-authored-by: Shauren <shauren.trinity@gmail.com>

* Update tests/common/Config.cpp

* Apply suggestions from code review

Co-authored-by: Peter Keresztes Schmidt <carbenium@outlook.com>

* Apply suggestions from code review

Co-authored-by: Peter Keresztes Schmidt <carbenium@outlook.com>

Co-authored-by: Anton Popovichenko <anton.popovichenko@mendix.com>
Co-authored-by: Giacomo Pozzoni <giacomopoz@gmail.com>
Co-authored-by: Shauren <shauren.trinity@gmail.com>
Co-authored-by: Peter Keresztes Schmidt <carbenium@outlook.com>
(cherry picked from commit 1ddd9dc19c)
2022-03-13 16:37:01 +01:00
Jinnaix
fe31d436ef Server/Config - Change default settings for saving gm logs. (#26804)
* Server/Config - Change default settings for saving gm logs.

* update

Prefix Timestamp to the text

(cherry picked from commit 7050a5ccb6)
2022-03-12 16:20:10 +01:00
jackpoz
aaa7596e01 Core/Misc: Fix build on systems where size_t is not defined as uintXX_t, i.e. Mac
(cherry picked from commit 8fcf59f9db)
2022-03-12 00:25:49 +01:00
jackpoz
84d327617a Core/SOAP: Fix memory leak on shutdown reported by ASan
(cherry picked from commit de4ccc7f27)
2022-03-11 21:20:26 +01:00
jackpoz
4f14cef5f3 Core/SOAP: Fix new/free mismatch reported by ASan
(cherry picked from commit 2a12e96d17)
2022-03-11 21:20:17 +01:00
Giacomo Pozzoni
5afa32e9a7 Core/Network: Add option to allow/disallow saving IP addresses to database (#26723)
Add config option AllowLoggingIPAddressesInDatabase to authserver and worldserver to specify if IP addresses can be logged or not to the database

(cherry picked from commit 68bf7e6d12)
2022-03-11 20:50:36 +01:00
Giacomo Pozzoni
51f0294c18 Core/DBLayer: Add QueueSize() method (#26733)
* Core/DBLayer: Add QueueSize() method

Add QueueSize() method to database objects (Login, Character and World) that returns how many tasks are queued.
Include the queue size of the 3 databases in ".server debug" command

* Make the code less threadsafe

* Send data to InfluxDB

* Update grafana dashboard

(cherry picked from commit 96dc110f4a)
2022-03-11 19:32:22 +01:00
Mikhail Redko
9e6def8ae2 Core/Console: Improve ReadWinConsole logic and cosmetic changes (#26402)
* Core/Console: Improve ReadWinConsole logic and cosmetic changes

* Core/Console: Fixed possible appearance of weird characters in the console when printing the output of child processes

* Fix codestyle

* Removed auto

* Core/Misc: Explicit casting Difficulty values to uint8 before outputting to console

* Core/Misc: Cast Difficulty to uint32 for output to console

Co-authored-by: jackpoz <giacomopoz@gmail.com>
(cherry picked from commit 6c12f45f3b)
2022-03-09 14:55:18 +01:00
Mikhail Redko
f7441f0234 Core/Misc: Fixed utf8 encoding in console input/output. (#26352)
* Core/Misc: Fixed utf8 encoding in console input/output.

* Fix gcc build

* Fixed that weird 'a' with circle above it and other similar letters. Also fixed encoding in AppenderConsole which sometimes did not work as it should

* Fix build on Linux

* Probably better to do it like this

(cherry picked from commit 1539bed3db)
2022-03-08 15:57:30 +01:00
Gildor
6b681ebc8a Core/Visibility: Split BG/Arena visibility settings (#25690)
(cherry picked from commit 8217519ea2)
2022-03-05 16:25:30 +01:00
Treeston
3fd2eb126c [3.3.5] ChatCommands, the other half: chat command resolution refactor (PR #25463)
(cherry picked from commit 1eca51b417)
2022-02-27 20:08:41 +01:00
Shauren
439b027d48 Core/Misc: Cleanup unused includes 2022-02-13 15:07:00 +01:00
Shauren
ad4f4bfab7 Core/Misc: Minor game include cleanup 2022-02-13 00:49:10 +01:00
Shauren
d057e057d3 Core/Misc: Optimize ChatCommand includes (include only where neccessary) 2022-02-11 21:57:45 +01:00
Treeston
378691aaa2 [3.3.5] Core/ChatCommands: Show error messages from argument parsers (PR #25443)
(cherry picked from commit 75f9e7396e)
2022-02-05 23:42:15 +01:00
jackpoz
2942d06664 Core/PathFinding: Enable pathfinding (MMaps) by default
(cherry picked from commit 5498f3be96)
2022-02-05 13:43:16 +01:00
Treeston
0d54a5ecb4 Core/Misc: Add support for custom link colors. Clean-up hyperlink validation, no more long-ass defines. Remove UI.ShowQuestLevelsInDialogs.
(cherry picked from commit eaf8fa75a1)
2022-02-04 23:49:59 +01:00
Jinnaix
2e10a2de3b Core/Misc: Update Worldserver.conf for AhBot Pricing -make things more clear (#25341)
* AhBot Pricing: Make things more clear

* Change default value to BuyPrice and add some more information to how two sided AH works

* Sync c++ configs with .conf ones

Co-authored-by: Giacomo Pozzoni <giacomopoz@gmail.com>
(cherry picked from commit 812c2af4da)
2022-02-04 13:01:25 +01:00
Treeston
6303fbc449 Core/Misc: Update worldserver.conf.dist to match actual defaults.
(cherry picked from commit d717b9dc3e)
2022-02-04 00:27:11 +01:00
Treeston
15d75dea10 Core/Warden: More refactors lifted from #25286.
(cherry picked from commit a3971ca4b0)
2022-02-04 00:27:11 +01:00
Shauren
473f3db0ab Core/CrashHandler: #ifdef cleanup to make VS not choke when parsing, fixed file being all red in editor
(cherry picked from commit 39c5e03b74)
2022-01-26 18:46:43 +01:00
Shauren
58d199db48 Core/Misc: Fix compile errors found with msvc /permissive-
(cherry picked from commit b3db50a3b4)
2022-01-26 14:20:13 +01:00
Giacomo Pozzoni
736b9ac112 Log sync db queries in World::Update() loop (#25174)
* Core/Misc: Log sync queries on critical path

* Fix build

* Rename

* Fix warning

* Fix no-pch

* Change WarnAboutSyncQueries() to be header-only

(cherry picked from commit deceb11b5f)
2022-01-24 14:58:08 +01:00
Shauren
54a6e603ff Core/Misc: Replace database query in WorldSession::HandleAddFriendOpcode with async version
(cherry picked from commit 2f0893d279)
2022-01-24 13:38:40 +01:00
Giacomo Pozzoni
8350985975 Core/Metric: Log detailed metrics about each opcode handler (#25153)
* Core/Metric: Log detailed metrics about each opcode handler

* Add new panel to Performance profiling dashboard and use fill(0) instead of fill(none)

* Add new settings Metric.Threshold.* to be able to specify the minimum threshold for the specified metrics

* Update dashboard

* Change thresholds to be required to send the metrics. A TC_METRIC_DETAILED_TIMER metric with an expected threshold not configured will be ignored

* Use typedef Milliseconds

* Refresh realms on load

(cherry picked from commit 8a2c79c850)
2022-01-24 13:02:38 +01:00
Giacomo Pozzoni
e8583d04f6 Core/Metric: Add more metrics about World::Update() loop (#25098)
* Core/Metric: Add more metrics about World::Update() loop

* Add new Performance profiling grafana dashboard

* Add new cmake setting WITHOUT_METRICS that disables all metrics

As new metrics are added, someone might want to disable them if unused.

* Add more metrics about World::Update() loop

* Remove old performance profiling features

Remove "server set difftime" command, "-RecordUpdateTimeDiffInterval" and "MinRecordUpdateTimeDiff" worldserver config settings and their related code.
The whole UpdateTime class could be removed too.

* Update and rename 2020_07_99_99_world.sql to 2020_07_24_00_world.sql

(cherry picked from commit 3c0ac7302f)
2022-01-23 22:45:25 +01:00
ipriver
bde36062b7 fixed indentation for cmake files
(cherry picked from commit a46d047f94)
2022-01-06 23:40:39 +01:00
Shauren
c776218cb5 Core/Misc: Properly close database connections when using --update-databases-only arg
(cherry picked from commit a9f9f737b2)
2022-01-06 23:35:09 +01:00
ipriver
8979493bb7 Additional cmake entry for configs
Closes #24812

Co-authored-by: Carbenium <carbenium@outlook.com>
(cherry picked from commit dc467ee0f6)
2022-01-06 22:54:29 +01:00
Max Drosdo.www
1b605eb5b0 Worldserver/CLI: console printf fix (#24802)
* Remove extra cli printf call for non-Windows systems

* Codestyle changes

Co-authored-by: Giacomo Pozzoni <giacomopoz@gmail.com>
(cherry picked from commit 1e9c84a3ea)
2022-01-06 22:10:03 +01:00
Giacomo Pozzoni
07863a7a68 Core/Creature: Allow to disable HP regen in Raids even if the target is unreachable (#24646)
(cherry picked from commit 247564a7ab)
2022-01-06 16:12:51 +01:00
Shauren
3a67e37681 Core/Time: Remove artificially high minimal update intervals 2022-01-03 11:26:23 +01:00
jackpoz
68d947d42f Core/Log: Log all character kicks to "network.kick" category
(cherry picked from commit 31018c3652)
2022-01-01 12:56:24 +01:00
Shauren
9f76071108 Core/Misc: Remove whitespace at the end of lines 2022-01-01 01:25:04 +01:00
myuzhobcplidtkieno
de5f7edede Added the ability to use TLS when connecting to a database. (#24348)
* Added the ability to use TLS when connecting to a database.

* Trying to kickstart CI checks

* Revert the kickstart change

Co-authored-by: myuzhobcplidtkieno <myuzhobcplidtkieno@github.com>
Co-authored-by: Giacomo Pozzoni <giacomopoz@gmail.com>
(cherry picked from commit ae553f8966)
2022-01-01 01:07:52 +01:00
jackpoz
ecdc387df2 Core/Misc: Remove whitespace at the end of lines
(cherry picked from commit caae3886d2)
2022-01-01 01:00:26 +01:00
Shauren
04b06ab35f Core/Auras: Delete old custom config AllowTrackBothResources, all tracking types can be turned on without it
Closes #27448
2021-12-28 20:35:48 +01:00
Matan Shukry
b821a72973 Core/Player: Initial War Mode support (#25926)
* Enable PvP talents
* War Mode buff aura
* Forced PvP flagging

Co-authored-by: Shauren <shauren.trinity@gmail.com>
2021-12-26 19:14:46 +01:00
jackpoz
0fb1bf8439 Core/Misc: Enable MaxCoreStuckTime setting by default
Enable MaxCoreStuckTime setting by default to force worldserver to exit in case of infinite loops.
Note that this will not affect existing setups with the setting MaxCoreStuckTime set to 0 in the local worldserver.conf .

(cherry picked from commit 00703ee238)
2021-12-18 23:24:24 +01:00
Giacomo Pozzoni
562c567b1e Core/Calendar: Add some additional validation when creating events (#23797)
* Core/Calendar: Add some additional validation when creating events

Allow only 30 player events and 100 guild events to be created.
Don't allow to create guild events if player is not in guild.
Send some more error messages to the client (not blizzlike errors but better than nothing).

* Core/Calendar: Add some additional validation/checks

Add guild id check in GetPlayerEvents().
Change error message in HandleCalendarCopyEvent() to be the same as in HandleCalendarAddEvent() when creating an event in the past.

* Core/Calendar: Add some additional validation/checks

Reduce the number of CMSG_CALENDAR_ADD_EVENT packets a seconds allowed from 10 to 3.

* Core/Calendar: Add some additional validation/checks

Implement 5 seconds cooldown between the creation of calendar events

* Core/Calendar: Add some additional validation/checks

Don't allow to copy events of a different player/guild

* Core/Calendar: Implement automatic deletion of old events

Implement automatic deletion of events older than 1 month (30 days).
Fix debug assertion triggered when deleting a character with calendar events.
Avoid double std::set lookup when deleting events when deleting a character.

NB: The whole CalendarMgr/CalendarHandler code should be checked line by line for bugs/crashes/exploits.
(cherry picked from commit fb059722fd)
2021-12-18 22:19:05 +01:00
Treeston
0b61c3b7b1 [3.3.5] Core/Authserver: TOTP rewrite: (PR #23633)
- Proper management commands (.account 2fa)
- Secrets can now be encrypted (set TOTPTokenSecret in .conf)
- Secret now stored in binary
- Argon2 and AES primitives
- Base32/64 support

(cherry picked from commit 4211645834)
2021-12-18 20:24:50 +01:00
Treeston
51fbda4223 Core/Pooling: Quest pooling rewrite: (PR#23627)
- Split quest pooling from PoolMgr (into QuestPoolMgr)
- Proper saving/restoring on server restart
- No more hacking into sObjectMgr to insert/remove available quests

(cherry picked from commit a5e73e41c0)
2021-12-18 15:28:45 +01:00
Treeston
8839fa3fe2 Core/Chat: Custom channel preservation rewrite. Channel data is now loaded at startup, and written to the DB periodically, instead of both things happening in real time.
(cherry picked from commit fedf1f557b)
2021-12-17 23:22:13 +01:00
Treeston
d5e58cef69 Core/Spawns: Exterminate CONFIG_SAVE_RESPAWN_TIME_IMMEDIATELY with extreme prejudice. (It didn't work anyway.)
(cherry picked from commit 26440857c1)
2021-12-16 01:18:15 +01:00
Wyrserth
2c55730a01 Misc/Config: set decay timer for unlooted normal creatures to 5 minutes.
Now that respawns do not care about the previous corpse's state, there's no reason to force a very frustrating faster despawn.

(cherry picked from commit 1bdbede7e0)
2021-12-14 22:00:53 +01:00
ccrs
fb3b94dfe5 Core/Log: 1f85348 followup
add missing logger entries

(cherry picked from commit fb28cee6ee)
2021-12-10 22:46:25 +01:00
Wyrserth
2344671af5 Core/Console: start CliRunnable thread after all log messages have been printed. (#23321)
(cherry picked from commit d8ce37e0c9)
2021-12-08 21:55:04 +01:00
ccrs
844f969ed7 Core/AI: logs, codestyle & cosmetics standarization
(cherry picked from commit fdb71ce19e)
2021-12-05 16:48:58 +01:00
ccrs
1ba002ef3d Core/Object: re-change faction template related logs
(cherry picked from commit dfa54d3bf4)
2021-12-02 00:39:28 +01:00