mirror of
https://github.com/mangosfour/server.git
synced 2025-12-13 22:37:03 +00:00
[7893] Fixed work chat guild commands that expect guild name in args. Now guild name always must be in "".
This commit is contained in:
parent
4e1166ded5
commit
f271fd6819
8 changed files with 68 additions and 87 deletions
|
|
@ -23,7 +23,7 @@ DROP TABLE IF EXISTS `db_version`;
|
|||
CREATE TABLE `db_version` (
|
||||
`version` varchar(120) default NULL,
|
||||
`creature_ai_version` varchar(120) default NULL,
|
||||
`required_7886_01_mangos_petcreateinfo_spell` bit(1) default NULL
|
||||
`required_7893_01_mangos_command` bit(1) default NULL
|
||||
) ENGINE=MyISAM DEFAULT CHARSET=utf8 ROW_FORMAT=FIXED COMMENT='Used DB version notes';
|
||||
|
||||
--
|
||||
|
|
@ -340,9 +340,9 @@ INSERT INTO `command` VALUES
|
|||
('gps',1,'Syntax: .gps [$name|$shift-link]\r\n\r\nDisplay the position information for a selected character or creature (also if player name $name provided then for named player, or if creature/gameobject shift-link provided then pointed creature/gameobject if it loaded). Position information includes X, Y, Z, and orientation, map Id and zone Id'),
|
||||
('groupgo',1,'Syntax: .groupgo [$charactername]\r\n\r\nTeleport the given character and his group to you. Teleported only online characters but original selected group member can be offline.'),
|
||||
('guid',2,'Syntax: .guid\r\n\r\nDisplay the GUID for the selected character.'),
|
||||
('guild create',2,'Syntax: .guild create [$GuildLeaderName] $GuildName\r\n\r\nCreate a guild named $GuildName with the player $GuildLeaderName (or selected) as leader.'),
|
||||
('guild delete',2,'Syntax: .guild delete $GuildName\r\n\r\nDelete guild $GuildName.'),
|
||||
('guild invite',2,'Syntax: .guild invite [$CharacterName] $GuildName\r\n\r\nAdd player $CharacterName (or selected) into a guild $GuildName.'),
|
||||
('guild create',2,'Syntax: .guild create [$GuildLeaderName] "$GuildName"\r\n\r\nCreate a guild named $GuildName with the player $GuildLeaderName (or selected) as leader. Guild name must in quotes.'),
|
||||
('guild delete',2,'Syntax: .guild delete "$GuildName"\r\n\r\nDelete guild $GuildName. Guild name must in quotes.'),
|
||||
('guild invite',2,'Syntax: .guild invite [$CharacterName] "$GuildName"\r\n\r\nAdd player $CharacterName (or selected) into a guild $GuildName. Guild name must in quotes.'),
|
||||
('guild rank',2,'Syntax: .guild rank $CharacterName #Rank\r\n\r\nSet for $CharacterName rank #Rank in a guild.'),
|
||||
('guild uninvite',2,'Syntax: .guild uninvite [$CharacterName]\r\n\r\nRemove player $CharacterName (or selected) from a guild.'),
|
||||
('help',0,'Syntax: .help [$command]\r\n\r\nDisplay usage instructions for the given $command. If no $command provided show list available commands.'),
|
||||
|
|
|
|||
10
sql/updates/7893_01_mangos_command.sql
Normal file
10
sql/updates/7893_01_mangos_command.sql
Normal file
|
|
@ -0,0 +1,10 @@
|
|||
ALTER TABLE db_version CHANGE COLUMN required_7886_01_mangos_petcreateinfo_spell required_7893_01_mangos_command bit;
|
||||
|
||||
DELETE FROM `command` WHERE `name` IN (
|
||||
'guild create','guild delete','guild invite'
|
||||
);
|
||||
|
||||
INSERT INTO `command` VALUES
|
||||
('guild create',2,'Syntax: .guild create [$GuildLeaderName] "$GuildName"\r\n\r\nCreate a guild named $GuildName with the player $GuildLeaderName (or selected) as leader. Guild name must in quotes.'),
|
||||
('guild invite',2,'Syntax: .guild invite [$CharacterName] "$GuildName"\r\n\r\nAdd player $CharacterName (or selected) into a guild $GuildName. Guild name must in quotes.'),
|
||||
('guild delete',2,'Syntax: .guild delete "$GuildName"\r\n\r\nDelete guild $GuildName. Guild name must in quotes.');
|
||||
|
|
@ -199,6 +199,7 @@ pkgdata_DATA = \
|
|||
7884_05_characters_character_action.sql \
|
||||
7886_01_mangos_petcreateinfo_spell.sql \
|
||||
7887_01_characters_character_pet.sql \
|
||||
7893_01_mangos_command.sql \
|
||||
README
|
||||
|
||||
## Additional files to include when running 'make dist'
|
||||
|
|
@ -378,4 +379,5 @@ EXTRA_DIST = \
|
|||
7884_05_characters_character_action.sql \
|
||||
7886_01_mangos_petcreateinfo_spell.sql \
|
||||
7887_01_characters_character_pet.sql \
|
||||
7893_01_mangos_command.sql \
|
||||
README
|
||||
|
|
|
|||
|
|
@ -1573,6 +1573,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();
|
||||
|
|
|
|||
|
|
@ -497,6 +497,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);
|
||||
|
|
|
|||
|
|
@ -1962,17 +1962,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;
|
||||
|
||||
|
|
@ -1980,17 +1970,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;
|
||||
|
||||
|
|
|
|||
|
|
@ -3169,14 +3169,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;
|
||||
|
|
@ -3202,17 +3208,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;
|
||||
|
|
@ -3278,11 +3290,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)
|
||||
|
|
@ -6296,17 +6308,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;
|
||||
|
||||
|
|
@ -6314,17 +6316,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;
|
||||
|
||||
|
|
@ -6427,17 +6419,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;
|
||||
|
||||
|
|
@ -6445,17 +6427,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;
|
||||
|
||||
|
|
|
|||
|
|
@ -1,4 +1,4 @@
|
|||
#ifndef __REVISION_NR_H__
|
||||
#define __REVISION_NR_H__
|
||||
#define REVISION_NR "7892"
|
||||
#define REVISION_NR "7893"
|
||||
#endif // __REVISION_NR_H__
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue