aboutsummaryrefslogtreecommitdiff
path: root/src/server/scripts
diff options
context:
space:
mode:
Diffstat (limited to 'src/server/scripts')
-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 afe792048f6..9d2214c82e9 100644
--- a/src/server/scripts/Commands/cs_guild.cpp
+++ b/src/server/scripts/Commands/cs_guild.cpp
@@ -43,6 +43,7 @@ public:
{ "invite", SEC_GAMEMASTER, true, &HandleGuildInviteCommand, "", NULL },
{ "uninvite", SEC_GAMEMASTER, true, &HandleGuildUninviteCommand, "", NULL },
{ "rank", SEC_GAMEMASTER, true, &HandleGuildRankCommand, "", NULL },
+ { "rename", SEC_GAMEMASTER, true, &HandleGuildRenameCommand, "", NULL },
{ NULL, 0, false, NULL, "", NULL }
};
static ChatCommand commandTable[] =
@@ -192,6 +193,55 @@ public:
uint8 newRank = uint8(atoi(rankStr));
return targetGuild->ChangeMemberRank(targetGuid, newRank);
}
+
+ 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(NULL, ""));
+ 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;
+ }
};
void AddSC_guild_commandscript()