From d2b88bdc1e851bc758cbf0fbd79ea742e29417a0 Mon Sep 17 00:00:00 2001 From: Kitzunu <24550914+Kitzunu@users.noreply.github.com> Date: Sat, 21 Dec 2024 22:19:49 +0100 Subject: [PATCH] feat(CI/Codestyle); Check for double semicolons (#20996) --- apps/codestyle/codestyle.py | 8 ++++++++ src/server/game/Entities/Player/Player.h | 2 +- src/server/game/Entities/Player/PlayerSettings.cpp | 2 +- src/server/game/Handlers/MiscHandler.cpp | 2 +- src/server/game/Instances/InstanceSaveMgr.h | 2 +- 5 files changed, 12 insertions(+), 4 deletions(-) diff --git a/apps/codestyle/codestyle.py b/apps/codestyle/codestyle.py index 5cbf1691ab768c..27f273799df8b4 100644 --- a/apps/codestyle/codestyle.py +++ b/apps/codestyle/codestyle.py @@ -222,6 +222,9 @@ def misc_codestyle_check(file: io, file_path: str) -> None: # used to check for "if/else (...) {" "} else" ignores "if/else (...) {...}" "#define ... if/else (...) {" ifelse_curlyregex = r"^[^#define].*\s+(if|else)(\s*\(.*\))?\s*{[^}]*$|}\s*else(\s*{[^}]*$)" + # used to catch double semicolons ";;" ignores "(;;)" + double_semiregex = r"[^(];;[^)]" + # Parse all the file for line_number, line in enumerate(file, start = 1): if 'const auto&' in line: @@ -240,6 +243,11 @@ def misc_codestyle_check(file: io, file_path: str) -> None: print( f"Curly brackets are not allowed to be leading or trailing if/else statements. Place it on a new line: {file_path} at line {line_number}") check_failed = True + if re.match(double_semiregex, line): + print( + f"Double semicolon (;;) found in {file_path} at line {line_number}") + check_failed = True + # Handle the script error and update the result output if check_failed: error_handler = True diff --git a/src/server/game/Entities/Player/Player.h b/src/server/game/Entities/Player/Player.h index 3460058e04ac0e..5e955a06febae4 100644 --- a/src/server/game/Entities/Player/Player.h +++ b/src/server/game/Entities/Player/Player.h @@ -444,7 +444,7 @@ struct Runes struct EnchantDuration { - EnchantDuration() = default;; + EnchantDuration() = default; EnchantDuration(Item* _item, EnchantmentSlot _slot, uint32 _leftduration) : item(_item), slot(_slot), leftduration(_leftduration) { ASSERT(item); }; diff --git a/src/server/game/Entities/Player/PlayerSettings.cpp b/src/server/game/Entities/Player/PlayerSettings.cpp index 7e45d03db76e3f..0c25361dd2383f 100644 --- a/src/server/game/Entities/Player/PlayerSettings.cpp +++ b/src/server/game/Entities/Player/PlayerSettings.cpp @@ -38,7 +38,7 @@ void Player::_LoadCharacterSettings(PreparedQueryResult result) { Field* fields = result->Fetch(); - std::string source = fields[0].Get();; + std::string source = fields[0].Get(); std::string data = fields[1].Get(); std::vector tokens = Acore::Tokenize(data, ' ', false); diff --git a/src/server/game/Handlers/MiscHandler.cpp b/src/server/game/Handlers/MiscHandler.cpp index e248575a676a7f..6fe94f32143ff7 100644 --- a/src/server/game/Handlers/MiscHandler.cpp +++ b/src/server/game/Handlers/MiscHandler.cpp @@ -268,7 +268,7 @@ void WorldSession::HandleWhoOpcode(WorldPacket& recvData) return; wstrToLower(wpacketPlayerName); - wstrToLower(wpacketGuildName);; + wstrToLower(wpacketGuildName); // client send in case not set max level value 100 but Acore supports 255 max level, // update it to show GMs with characters after 100 level diff --git a/src/server/game/Instances/InstanceSaveMgr.h b/src/server/game/Instances/InstanceSaveMgr.h index 7c6f18371e739d..686a6fe729a5f4 100644 --- a/src/server/game/Instances/InstanceSaveMgr.h +++ b/src/server/game/Instances/InstanceSaveMgr.h @@ -108,7 +108,7 @@ class InstanceSaveMgr friend class InstanceSave; private: - InstanceSaveMgr() = default;; + InstanceSaveMgr() = default; ~InstanceSaveMgr(); public: