summaryrefslogtreecommitdiff
path: root/src/server/scripts/Commands
diff options
context:
space:
mode:
authorKitzunu <24550914+Kitzunu@users.noreply.github.com>2022-02-03 10:01:16 +0100
committerGitHub <noreply@github.com>2022-02-03 06:01:16 -0300
commitc63ebde9d730f3d678105f46aabf64111173fded (patch)
treee5d770b00bbc7d56e8104e6b5ad9694853c73944 /src/server/scripts/Commands
parentc45c23ffe7309452952401e4c93d201b727fd10c (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.cpp50
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;