[7893] Fixed work chat guild commands that expect guild name in args. Now guild name always must be in "". Author: VladimirMangos
--HG-- branch : trunk
This commit is contained in:
@@ -1696,6 +1696,22 @@ void ChatHandler::extractOptFirstArg(char* args, char** arg1, char** arg2)
|
||||
*arg2 = p2;
|
||||
}
|
||||
|
||||
char* ChatHandler::extractQuotedArg( char* args )
|
||||
{
|
||||
if(!*args)
|
||||
return NULL;
|
||||
|
||||
if(*args=='"')
|
||||
return strtok(args+1, "\"");
|
||||
else
|
||||
{
|
||||
char* space = strtok(args, "\"");
|
||||
if(!space)
|
||||
return false;
|
||||
return strtok(NULL, "\"");
|
||||
}
|
||||
}
|
||||
|
||||
bool ChatHandler::needReportToTarget(Player* chr) const
|
||||
{
|
||||
Player* pl = m_session->GetPlayer();
|
||||
|
||||
@@ -574,6 +574,7 @@ class ChatHandler
|
||||
|
||||
// if args have single value then it return in arg2 and arg1 == NULL
|
||||
void extractOptFirstArg(char* args, char** arg1, char** arg2);
|
||||
char* extractQuotedArg(char* args);
|
||||
|
||||
uint32 extractSpellIdFromLink(char* text);
|
||||
uint64 extractGuidFromLink(char* text);
|
||||
|
||||
+2
-22
@@ -2380,17 +2380,7 @@ bool ChatHandler::HandleSendMailCommand(const char* args)
|
||||
if(!tail1)
|
||||
return false;
|
||||
|
||||
char* msgSubject;
|
||||
if(*tail1=='"')
|
||||
msgSubject = strtok(tail1+1, "\"");
|
||||
else
|
||||
{
|
||||
char* space = strtok(tail1, "\"");
|
||||
if(!space)
|
||||
return false;
|
||||
msgSubject = strtok(NULL, "\"");
|
||||
}
|
||||
|
||||
char* msgSubject = extractQuotedArg(tail1);
|
||||
if (!msgSubject)
|
||||
return false;
|
||||
|
||||
@@ -2398,17 +2388,7 @@ bool ChatHandler::HandleSendMailCommand(const char* args)
|
||||
if(!tail2)
|
||||
return false;
|
||||
|
||||
char* msgText;
|
||||
if(*tail2=='"')
|
||||
msgText = strtok(tail2+1, "\"");
|
||||
else
|
||||
{
|
||||
char* space = strtok(tail2, "\"");
|
||||
if(!space)
|
||||
return false;
|
||||
msgText = strtok(NULL, "\"");
|
||||
}
|
||||
|
||||
char* msgText = extractQuotedArg(tail2);
|
||||
if (!msgText)
|
||||
return false;
|
||||
|
||||
|
||||
+32
-60
@@ -3778,14 +3778,20 @@ bool ChatHandler::HandleLookupTaxiNodeCommand(const char * args)
|
||||
*/
|
||||
bool ChatHandler::HandleGuildCreateCommand(const char* args)
|
||||
{
|
||||
char* nameStr;
|
||||
char* guildStr;
|
||||
extractOptFirstArg((char*)args,&nameStr,&guildStr);
|
||||
if(!guildStr)
|
||||
if(!*args)
|
||||
return false;
|
||||
|
||||
// if not guild name only (in "") then player name
|
||||
Player* target;
|
||||
if(!extractPlayerTarget(*args!='"' ? (char*)args : NULL, &target))
|
||||
return false;
|
||||
|
||||
Player* target;
|
||||
if(!extractPlayerTarget(nameStr,&target))
|
||||
char* tailStr = *args!='"' ? strtok(NULL, "") : (char*)args;
|
||||
if(!tailStr)
|
||||
return false;
|
||||
|
||||
char* guildStr = extractQuotedArg(tailStr);
|
||||
if(!guildStr)
|
||||
return false;
|
||||
|
||||
std::string guildname = guildStr;
|
||||
@@ -3811,17 +3817,23 @@ bool ChatHandler::HandleGuildCreateCommand(const char* args)
|
||||
|
||||
bool ChatHandler::HandleGuildInviteCommand(const char *args)
|
||||
{
|
||||
char* nameStr;
|
||||
char* guildNameStr;
|
||||
extractOptFirstArg((char*)args,&nameStr,&guildNameStr);
|
||||
if(!guildNameStr)
|
||||
return false;
|
||||
if(!*args)
|
||||
return false;
|
||||
|
||||
// if not guild name only (in "") then player name
|
||||
uint64 target_guid;
|
||||
if(!extractPlayerTarget(nameStr,NULL,&target_guid))
|
||||
if(!extractPlayerTarget(*args!='"' ? (char*)args : NULL, NULL, &target_guid))
|
||||
return false;
|
||||
|
||||
std::string glName = guildNameStr;
|
||||
char* tailStr = *args!='"' ? strtok(NULL, "") : (char*)args;
|
||||
if(!tailStr)
|
||||
return false;
|
||||
|
||||
char* guildStr = extractQuotedArg(tailStr);
|
||||
if(!guildStr)
|
||||
return false;
|
||||
|
||||
std::string glName = guildStr;
|
||||
Guild* targetGuild = objmgr.GetGuildByName (glName);
|
||||
if (!targetGuild)
|
||||
return false;
|
||||
@@ -3887,11 +3899,11 @@ bool ChatHandler::HandleGuildDeleteCommand(const char* args)
|
||||
if (!*args)
|
||||
return false;
|
||||
|
||||
char* par1 = strtok ((char*)args, " ");
|
||||
if (!par1)
|
||||
char* guildStr = extractQuotedArg((char*)args);
|
||||
if(!guildStr)
|
||||
return false;
|
||||
|
||||
std::string gld = par1;
|
||||
std::string gld = guildStr;
|
||||
|
||||
Guild* targetGuild = objmgr.GetGuildByName (gld);
|
||||
if (!targetGuild)
|
||||
@@ -6951,17 +6963,7 @@ bool ChatHandler::HandleSendItemsCommand(const char* args)
|
||||
if(!tail1)
|
||||
return false;
|
||||
|
||||
char* msgSubject;
|
||||
if(*tail1=='"')
|
||||
msgSubject = strtok(tail1+1, "\"");
|
||||
else
|
||||
{
|
||||
char* space = strtok(tail1, "\"");
|
||||
if(!space)
|
||||
return false;
|
||||
msgSubject = strtok(NULL, "\"");
|
||||
}
|
||||
|
||||
char* msgSubject = extractQuotedArg(tail1);
|
||||
if (!msgSubject)
|
||||
return false;
|
||||
|
||||
@@ -6969,17 +6971,7 @@ bool ChatHandler::HandleSendItemsCommand(const char* args)
|
||||
if(!tail2)
|
||||
return false;
|
||||
|
||||
char* msgText;
|
||||
if(*tail2=='"')
|
||||
msgText = strtok(tail2+1, "\"");
|
||||
else
|
||||
{
|
||||
char* space = strtok(tail2, "\"");
|
||||
if(!space)
|
||||
return false;
|
||||
msgText = strtok(NULL, "\"");
|
||||
}
|
||||
|
||||
char* msgText = extractQuotedArg(tail2);
|
||||
if (!msgText)
|
||||
return false;
|
||||
|
||||
@@ -7082,17 +7074,7 @@ bool ChatHandler::HandleSendMoneyCommand(const char* args)
|
||||
if (!tail1)
|
||||
return false;
|
||||
|
||||
char* msgSubject;
|
||||
if (*tail1=='"')
|
||||
msgSubject = strtok(tail1+1, "\"");
|
||||
else
|
||||
{
|
||||
char* space = strtok(tail1, "\"");
|
||||
if (!space)
|
||||
return false;
|
||||
msgSubject = strtok(NULL, "\"");
|
||||
}
|
||||
|
||||
char* msgSubject = extractQuotedArg(tail1);
|
||||
if (!msgSubject)
|
||||
return false;
|
||||
|
||||
@@ -7100,17 +7082,7 @@ bool ChatHandler::HandleSendMoneyCommand(const char* args)
|
||||
if (!tail2)
|
||||
return false;
|
||||
|
||||
char* msgText;
|
||||
if (*tail2=='"')
|
||||
msgText = strtok(tail2+1, "\"");
|
||||
else
|
||||
{
|
||||
char* space = strtok(tail2, "\"");
|
||||
if (!space)
|
||||
return false;
|
||||
msgText = strtok(NULL, "\"");
|
||||
}
|
||||
|
||||
char* msgText = extractQuotedArg(tail2);
|
||||
if (!msgText)
|
||||
return false;
|
||||
|
||||
|
||||
Reference in New Issue
Block a user