Commit Graph

102 Commits

Author SHA1 Message Date
Mykhailo Redko
10183efd51 fix(Core/Chat): Fix lower security check for GM commands. (#21382) 2025-02-14 22:11:01 +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
Kitzunu
9e9a2fe5e3 refactor(Core/ObjectMgr): Change GetAcoreString from char const* to s… (#21213)
...ring
2025-02-01 22:46:42 +01:00
Kitzunu
0733c30471 refactor(Core/Player): Improve Channel.RestrictedLfg handling (#21145) 2025-01-21 19:09:31 +01:00
Benjamin Jackson
53cd41b938 feat(Core/Scripting): Add hook during command security evaluation. (#20564) 2024-11-14 17:14:28 -03:00
Francesco Borzì
a9f0f371e5 refactor(src/server/game): optimise imports (#20541) 2024-11-13 11:37:20 +01:00
Francesco Borzì
cb7e28df05 refactor(src/server/game/*): remove unused imports (big part 1) (#20310) 2024-10-27 10:25:40 +01:00
Angelo Venturini
9487b30ad7 refactor(Core/Misc): Use emplace_back instead of push_back to avoid extra copy/m… (#20114)
refactor: Use emplace_back instead of push_back to avoid extra copy/move operations
2024-10-10 21:55:58 +02:00
Francesco Borzì
7d2aebb9d8 refactor(src/server/game/Chat): remove unused imports (#20093) 2024-10-01 08:04:51 +02:00
Kitzunu
de2bcbdabf refactor(Core/Misc): Acore::StringFormat to fmt format (#19838)
refactor(Core/Utilities): Acore::StringFormat to fmt format

* closes https://github.com/azerothcore/azerothcore-wotlk/issues/10356
2024-09-03 07:59:37 -03:00
Kitzunu
4b63aa9015 feat(DB/Module): introduce module_string table (#19475) 2024-08-13 19:53:16 +02:00
Kitzunu
7b102f53f2 fix(Core/Chat): Correct misstake in b81bcfb causing outputs to CLI not working properly (#19593)
fix(Core/Chat): Correct misstake in b81bcfbfea causing outputs to CLI not working properly

* closes https://github.com/azerothcore/azerothcore-wotlk/issues/19592
2024-08-11 08:42:37 -03:00
Kitzunu
b81bcfbfea refactor(Core/ChatHandler): Cleanup retriving session and checking fo… (#19585)
* refactor(Core/ChatHandler): Cleanup retriving session and checking for valid session

* redundant

* make it clear what a "valid" session is

* HasValidSession -> HasSession

* Differentiate from "valid" which in this case would mean the player is in world which isnt checked here
2024-08-10 17:46:13 +02:00
Kitzunu
e4df159f5c refactor(Core/Chat): Move SendNotification to ChatHander (#19491)
* refactor(Core/Chat): Move SendNotification to ChatHander

* Update Battleground.cpp

* fix build

* Update src/server/game/Chat/Chat.h
2024-08-10 11:39:46 -03: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
Francesco Borzì
02a05fbd4c refactor(src/common): remove unused imports (#19506)
* refactor(src/common): remove unused imports

* fix: build

* chore: fix build

* chore: size_t -> std::size_t

* chore: fix fuckup from previous commit

* chore: fix build

* chore: fix build

* chore: fix build

* chore: fix build with std::size_t

* chore: fix build

* chore: fix build

* chore: fix build

* chore: fix build

* chore: fix build

* chore: fix build

* chore: fix build

* chore: fix build

* chore: fix build

* chore: fix build

* chore: fix build

* chore: fix build
2024-07-30 20:06:46 -03:00
Kitzunu
a1e9dfce41 fix(Core/World): Crash on SendWorldText(Optional) (#19531)
* fix(Core/World): Crash on SendWorldText(Optional)

* WorldText should be sent to all sessions

* now it works
2024-07-30 22:53:11 +02: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
Kitzunu
3fbded8f6b refactor(Core/Chat): PSendSysMessage to fmt (#19449)
* refactor(Core/Chat): PSendSysMessage to `fmt`
2024-07-23 23:48:46 +02: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
Kitzunu
ebf5f6710a feat(Core/Chat): Provide a fully-formed protocol for addons to intera… (#19305)
* feat(Core/Chat): Provide a fully-formed protocol for addons to interact with GM commands

* Send success/fail state, allow interleaving, and indicate end of output. Add framework for supporting non-human-readable output in commands.

* cherry-pick commit (508c9d2fc1)

This PR implements a well-formed protocol for addons to communicate with the server, outlined below:

- All communication happens over the addon channel (`LANG_ADDON` in terms of the core, `CHAT_MSG_ADDON`/`SendAddonMessage` for the client). The prefix used for all messages is `AzerothCore` (in client terms - in core terms, every message starts with `AzerothCore\t`).
- In each message, the first character is the opcode. The following four characters are a unique identifier for the invocation in question, and will be echoed back by the server in every message related to that invocation. Following is the message body, if any.
- The following opcodes are supported:
    - Client to server:
        - `p` - Ping request. The core will always respond by ACKing with the passed identifier. No body.
        - `i` or `h` - Command invocation. The message body is the command text without prefix. `i` requests machine-readable output, `h` requests human-readable.
    - Server to client:
        - `a` - ACK. The first message sent in response to any invocation (before any output). No body.
        - `m` - Message. Sent once per line of output the server generates. Body = output line.
        - `o` - OK. Indicates that the command finished processing with no errors. No body.
        - `f` - Failed. Indicates that command processing is done, but there was an error. No body.

Expected overhead is minimal, and this integrates seamlessly with existing command scripts (no changes necessary).

PS: There's also a client-side addon library that exposes this protocol in a developer-friendly way over at https://github.com/azerothcore/LibAzerothCore-1.0

---------

Co-authored-by: Treeston <14020072+Treeston@users.noreply.github.com>
2024-07-06 19:13:24 +02:00
AnchyDev
e0cf15db93 fix(Scripts/Misc) CanExecuteCommand renamed and moved to be executed for all commands. (#19081)
* Fix CanExecuteCommand only being executed on command failure.

* Updated for style guide.

* Removed pointless hook call.

* Modified the name of the hook to better reflect function and moved the call to trigger for non-existent commands.

* Updated to OnTryExecuteCommand because Foe has a special place in my heart.

* Forgot to change these 2 areas.
2024-06-17 21:39:11 +02:00
Kitzunu
db4b0b0d3d feat(Core/ChatHandler): Add SendErrorMessage helper (#17919)
* feat(Core/Chat): Add SendErrorMessage helper

* lost boy
2023-12-02 19:25:32 +01:00
Tristan 'Natrist' Cormier
8eed7ee531 fix(Core/Channel): potential nullptr reference in Channel::SetOwner() (#17906) 2023-11-30 16:25:01 -03:00
Tristan 'Natrist' Cormier
4c94f62144 chore(Core/Account): move AccountMgr::IsGMAccount() to class WorldSession (#17845) 2023-11-28 21:44:48 +01:00
Kitzunu
ef1b3c2ea0 chore(Core/Misc): Clean up workarounds (#17870)
* Clean advstd to use std c++20 features
* Use ABORT instead of std::abort

Co-authored-by: Shauren <shauren.trinity@gmail.com>
2023-11-27 00:07:39 +01:00
Kitzunu
23606bcba0 chore(Core/Player): codestyle (#17841) 2023-11-24 16:52:36 +01:00
Tristan 'Natrist' Cormier
86d704a514 chore(Core/Chat): add Channel::ShouldAnnouncePlayer() method (#17819) 2023-11-24 09:03:30 -03: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
Francesco Borzì
5d01b700fd refactor(Core): remove unused imports (#17094) 2023-08-28 13:39:43 +02:00
天鹿
df77b5f4f7 chore(core): cleanup code p3 (#16073)
* Update MMapMgr.cpp

* Update UpdateFetcher.cpp

* Update AuctionHouseMgr.cpp

* Update AuctionHouseMgr.h

* Update BattlegroundAV.cpp

* Update ChannelMgr.cpp

* Update ThreatMgr.h

* Update Player.h

* Update PlayerSettings.cpp

* Update ObjectMgr.cpp

* Update Guild.cpp

* Update Guild.h

* Update Map.cpp

* Update World.cpp

* Update boss_nefarian.cpp

* Update boss_prince_malchezaar.cpp

* Update boss_venoxis.cpp

* Update zone_elwynn_forest.cpp

* Update zulfarrak.cpp

* Update boss_novos.cpp
2023-04-24 08:13:07 -03:00
M'Dic
8aa2a2ac0f chore (core): Clean up (#15977)
* chore (core): Clean up

* Update SmartScript.cpp

* more clean up

* Update boss_xt002.cpp
2023-04-16 21:04:56 -04:00
Axel Cocat
c8d039d2ec feat(Core/Channel): add GetChannelDBId() (#15232) 2023-02-28 23:40:45 +01:00
Skjalf
dba8c49bce chore(Core/Object): Rename GetGOData() to GetGameObjectData() (#14875) 2023-02-05 08:35:52 -03:00
Bogir[rus]
75439773d0 fix and bringing to a unified style warnings of server loading logs to be more visible at server startup (#10970) 2022-03-12 04:57:26 -03:00
Kitzunu
7e8b021db3 feat(Core): Enable C++20 support (#10440)
* feat(Core): Enable C++20 support

* Update Duration.h

* Revert "Update Duration.h"

This reverts commit 177093e992c5d47d8c3b978c84857f5ecba12889.

* maybe fix GCC

* cherry-pick https://gcc.gnu.org/pipermail/gcc-cvs/2020-June/299715.html

* Update Duration.h

* Update Duration.h

* Update Duration.h

* Update Duration.h

* Update Duration.h

* Update Duration.h

* Update Duration.h

* Revert "Update Duration.h"

This reverts commit dc4e2ce281dd1a33cfac5be56488a3b96131bfd5.

* Update Duration.h

* Update Duration.h

* Update Duration.h

* cleanup

* more cleanup

* maybe fix build

* restore advstd::type_identity because GCC8 is garbage

* Update advstd.h

* fix gcc8 💤

* Update CMakeLists.txt

* Update CMakeLists.txt

* Update src/common/Utilities/advstd.h

Co-authored-by: Francesco Borzì <borzifrancesco@gmail.com>
2022-02-11 14:37:24 +01:00
Axel Cocat
7eec7486e9 fix(Chat): session null check for isavailable (#10613)
Co-authored-by: Francesco Borzì <borzifrancesco@gmail.com>
2022-02-10 05:03:44 -03:00
Kargatum
de13bf426e feat(Core/DBLayer): replace char const* to std::string_view (#10211)
* feat(Core/DBLayer): replace `char const*` to `std::string_view`

* CString

* 1

* chore(Core/Misc): code cleanup

* cl

* db fix

* fmt style sql

* to fmt

* py

* del old

* 1

* 2

* 3

* 1

* 1
2022-02-05 00:37:11 +01:00
Kargatum
5969df4e30 refactor(Core/Logging): switch to fmt style for LOG_ (#10366)
* feat(Core/Common): add support fmt style for ASSERT and ABORT

* correct CheckCompactArrayMaskOverflow

* 1

* Update src/server/game/Spells/Spell.cpp

* rework logging

* add fmt replace logs

* logging

* FMT_LOG_

* settings

* fix startup

* 1

* 2

* 3

* 4

* 5

* fmt::print

* to fmt
2022-01-27 16:44:41 +01:00
Kargatum
3d6724e448 feat(Core/Chat): delete delay for channels (#10365)
* feat(Core/Chat): delete delay for channels

* 1
2022-01-27 07:58:59 -03:00
Kargatum
8b7df23f06 feat(Core/Time): Implement saparated manager for game time (#8630) 2022-01-24 17:55:00 +07:00
Kargatum
6d7f58e6ed feat(Core/Common): delete old Tokenizer (#10121) 2022-01-21 14:59:05 +07:00
Francesco Borzì
9dc88def35 refactor(Core): apply clang-tidy modernize-* (#9975)
Co-authored-by: Kitzunu <24550914+Kitzunu@users.noreply.github.com>
2022-01-17 14:35:07 +01:00
IntelligentQuantum
838c88f45a refactor(Scripts/Commands): convert cs_misc to new system (#8939) 2021-12-21 19:32:21 +07:00
Francesco Borzì
cbc7e5466a refactor(Core): remove unused imports (#9767) 2021-12-19 19:41:14 +01:00
Kargatum
51adbffae4 feat(Core/Modules): add separated lib for modules (#9281) 2021-12-02 20:28:58 +07:00
Skjalf
2187470df7 refactor(Scripts/Commands): Update cs_quest to the new model (#9267) 2021-11-24 01:21:16 -03:00
Kargatum
f62664c987 refactor(Core/Misc): headers cleanup (#9259) 2021-11-22 17:24:39 +07:00
Skjalf
731d256420 refactor(Core/Cache): move the GlobalPlayerCache to its own class (#9166) 2021-11-18 16:53:36 +01:00
Kargatum
aa7932e971 feat(Core/EnumUtils): add more enum for support chat command (#8828) 2021-11-03 10:50:11 +01:00