diff options
| author | Kitzunu <24550914+Kitzunu@users.noreply.github.com> | 2022-02-03 10:01:16 +0100 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2022-02-03 06:01:16 -0300 |
| commit | c63ebde9d730f3d678105f46aabf64111173fded (patch) | |
| tree | e5d770b00bbc7d56e8104e6b5ad9694853c73944 /src/server/scripts/Commands | |
| parent | c45c23ffe7309452952401e4c93d201b727fd10c (diff) | |
feat(Guild/Commands): guild rename (#10323)
* feat(Guild/Commands): guild rename
* cherry-pick commit (https://github.com/TrinityCore/TrinityCore/commit/678cade1163080263bdea9e349fbb67b7af15ea7#)
* Update cs_guild.cpp
Diffstat (limited to 'src/server/scripts/Commands')
| -rw-r--r-- | src/server/scripts/Commands/cs_guild.cpp | 50 |
1 files changed, 50 insertions, 0 deletions
diff --git a/src/server/scripts/Commands/cs_guild.cpp b/src/server/scripts/Commands/cs_guild.cpp index f89b819918..45efab856b 100644 --- a/src/server/scripts/Commands/cs_guild.cpp +++ b/src/server/scripts/Commands/cs_guild.cpp @@ -48,6 +48,7 @@ public: { "invite", SEC_GAMEMASTER, true, &HandleGuildInviteCommand, "" }, { "uninvite", SEC_GAMEMASTER, true, &HandleGuildUninviteCommand, "" }, { "rank", SEC_GAMEMASTER, true, &HandleGuildRankCommand, "" }, + { "rename", SEC_GAMEMASTER, true, &HandleGuildRenameCommand, "" }, { "info", SEC_GAMEMASTER, true, &HandleGuildInfoCommand, "" } }; static ChatCommandTable commandTable = @@ -206,6 +207,55 @@ public: return targetGuild->ChangeMemberRank(player->GetGUID(), rank); } + static bool HandleGuildRenameCommand(ChatHandler* handler, char const* _args) + { + if (!*_args) + return false; + + char *args = (char *)_args; + + char const* oldGuildStr = handler->extractQuotedArg(args); + if (!oldGuildStr) + { + handler->SendSysMessage(LANG_BAD_VALUE); + handler->SetSentErrorMessage(true); + return false; + } + + char const* newGuildStr = handler->extractQuotedArg(strtok(nullptr, "")); + if (!newGuildStr) + { + handler->SendSysMessage(LANG_INSERT_GUILD_NAME); + handler->SetSentErrorMessage(true); + return false; + } + + Guild* guild = sGuildMgr->GetGuildByName(oldGuildStr); + if (!guild) + { + handler->PSendSysMessage(LANG_COMMAND_COULDNOTFIND, oldGuildStr); + handler->SetSentErrorMessage(true); + return false; + } + + if (sGuildMgr->GetGuildByName(newGuildStr)) + { + handler->PSendSysMessage(LANG_GUILD_RENAME_ALREADY_EXISTS, newGuildStr); + handler->SetSentErrorMessage(true); + return false; + } + + if (!guild->SetName(newGuildStr)) + { + handler->SendSysMessage(LANG_BAD_VALUE); + handler->SetSentErrorMessage(true); + return false; + } + + handler->PSendSysMessage(LANG_GUILD_RENAME_DONE, oldGuildStr, newGuildStr); + return true; + } + static bool HandleGuildInfoCommand(ChatHandler* handler, char const* args) { Guild* guild = nullptr; |
