Fix "crash" by ".ticket accept" (unable to handled no args) (#165)

* Fix "crash" by ".ticket accept" (unable to handled no args)
Fix .ticket info (ticket req Gamemaster+, info req Moderator+)

* Added comment on ".ticket accept"

* Added comment on ".ticket accept"
This commit is contained in:
Zilvereyes 2016-09-06 02:38:31 +02:00 committed by Antz
parent 76afe71610
commit fc3f83c334
2 changed files with 29 additions and 21 deletions

View File

@ -2433,18 +2433,24 @@ bool ChatHandler::HandleTicketAcceptCommand(char* args)
{ {
char* px = ExtractLiteralArg(&args); char* px = ExtractLiteralArg(&args);
// ticket<end>
if (!px)
{ return false; }
// ticket accept on
if (strncmp(px, "on", 3) == 0) if (strncmp(px, "on", 3) == 0)
{ {
sTicketMgr.SetAcceptTickets(true); sTicketMgr.SetAcceptTickets(true);
SendSysMessage(LANG_COMMAND_TICKETS_SYSTEM_ON); SendSysMessage(LANG_COMMAND_TICKETS_SYSTEM_ON);
} }
// ticket accept off
else if (strncmp(px, "off", 4) == 0) else if (strncmp(px, "off", 4) == 0)
{ {
sTicketMgr.SetAcceptTickets(false); sTicketMgr.SetAcceptTickets(false);
SendSysMessage(LANG_COMMAND_TICKETS_SYSTEM_OFF); SendSysMessage(LANG_COMMAND_TICKETS_SYSTEM_OFF);
} }
else else
return false; { return false; }
return true; return true;
} }
@ -2457,7 +2463,7 @@ bool ChatHandler::HandleTicketCloseCommand(char* args)
if (ExtractUInt32(&args, num)) if (ExtractUInt32(&args, num))
{ {
if (num == 0) if (num == 0)
return false; { return false; }
ticket = sTicketMgr.GetGMTicket(num); ticket = sTicketMgr.GetGMTicket(num);
@ -2473,7 +2479,7 @@ bool ChatHandler::HandleTicketCloseCommand(char* args)
ObjectGuid target_guid; ObjectGuid target_guid;
std::string target_name; std::string target_name;
if (!ExtractPlayerTarget(&args, NULL, &target_guid, &target_name)) if (!ExtractPlayerTarget(&args, NULL, &target_guid, &target_name))
return false; { return false; }
// ticket respond $char_name // ticket respond $char_name
ticket = sTicketMgr.GetGMTicket(target_guid); ticket = sTicketMgr.GetGMTicket(target_guid);
@ -2504,11 +2510,12 @@ bool ChatHandler::HandleTicketCloseCommand(char* args)
return true; return true;
} }
// del tickets
bool ChatHandler::HandleTicketDeleteCommand(char* args) bool ChatHandler::HandleTicketDeleteCommand(char* args)
{ {
char* px = ExtractLiteralArg(&args); char* px = ExtractLiteralArg(&args);
if (!px) if (!px)
return false; { return false; }
// ticket delete all // ticket delete all
if (strncmp(px, "all", 4) == 0) if (strncmp(px, "all", 4) == 0)
@ -2520,11 +2527,11 @@ bool ChatHandler::HandleTicketDeleteCommand(char* args)
uint32 num; uint32 num;
// ticket delete #id // ticket delete #num
if (ExtractUInt32(&px, num)) if (ExtractUInt32(&px, num))
{ {
if (num == 0) if (num == 0)
return false; { return false; }
// mgr numbering tickets start from 0 // mgr numbering tickets start from 0
GMTicket* ticket = sTicketMgr.GetGMTicket(num); GMTicket* ticket = sTicketMgr.GetGMTicket(num);
@ -2557,13 +2564,14 @@ bool ChatHandler::HandleTicketDeleteCommand(char* args)
ObjectGuid target_guid; ObjectGuid target_guid;
std::string target_name; std::string target_name;
if (!ExtractPlayerTarget(&px, &target, &target_guid, &target_name)) if (!ExtractPlayerTarget(&px, &target, &target_guid, &target_name))
return false; { return false; }
// ticket delete $charName
sTicketMgr.Delete(target_guid); sTicketMgr.Delete(target_guid);
// notify players about ticket deleting // notify players about ticket deleting
if (target) if (target)
target->GetSession()->SendGMTicketGetTicket(0x0A); { target->GetSession()->SendGMTicketGetTicket(0x0A); }
std::string nameLink = playerLink(target_name); std::string nameLink = playerLink(target_name);
@ -2578,9 +2586,9 @@ bool ChatHandler::HandleTicketInfoCommand(char *args)
size_t count = sTicketMgr.GetTicketCount(); size_t count = sTicketMgr.GetTicketCount();
if (m_session) if (m_session)
PSendSysMessage(LANG_COMMAND_TICKETCOUNT, count, GetOnOffStr(m_session->GetPlayer()->isAcceptTickets())); { PSendSysMessage(LANG_COMMAND_TICKETCOUNT, count, GetOnOffStr(m_session->GetPlayer()->isAcceptTickets())); }
else else
PSendSysMessage(LANG_COMMAND_TICKETCOUNT_CONSOLE, count); { PSendSysMessage(LANG_COMMAND_TICKETCOUNT_CONSOLE, count); }
return true; return true;
} }
@ -2649,7 +2657,7 @@ bool ChatHandler::HandleTicketMeAcceptCommand(char* args)
SendSysMessage(LANG_COMMAND_TICKETOFF); SendSysMessage(LANG_COMMAND_TICKETOFF);
} }
else else
return false; { return false; }
return true; return true;
} }
@ -2663,7 +2671,7 @@ bool ChatHandler::HandleTicketRespondCommand(char* args)
if (ExtractUInt32(&args, num)) if (ExtractUInt32(&args, num))
{ {
if (num == 0) if (num == 0)
return false; { return false; }
// mgr numbering tickets start from 0 // mgr numbering tickets start from 0
ticket = sTicketMgr.GetGMTicket(num); ticket = sTicketMgr.GetGMTicket(num);
@ -2680,7 +2688,7 @@ bool ChatHandler::HandleTicketRespondCommand(char* args)
ObjectGuid target_guid; ObjectGuid target_guid;
std::string target_name; std::string target_name;
if (!ExtractPlayerTarget(&args, NULL, &target_guid, &target_name)) if (!ExtractPlayerTarget(&args, NULL, &target_guid, &target_name))
return false; { return false; }
// ticket respond $char_name // ticket respond $char_name
ticket = sTicketMgr.GetGMTicket(target_guid); ticket = sTicketMgr.GetGMTicket(target_guid);
@ -2695,7 +2703,7 @@ bool ChatHandler::HandleTicketRespondCommand(char* args)
// no response text? // no response text?
if (!*args) if (!*args)
return false; { return false; }
ticket->SetResponseText(args); ticket->SetResponseText(args);
@ -2715,13 +2723,13 @@ bool ChatHandler::HandleTicketShowCommand(char *args)
// ticket #num // ticket #num
char* px = ExtractLiteralArg(&args); char* px = ExtractLiteralArg(&args);
if (!px) if (!px)
return false; { return false; }
uint32 num; uint32 num;
if (ExtractUInt32(&px, num)) if (ExtractUInt32(&px, num))
{ {
if (num == 0) if (num == 0)
return false; { return false; }
// mgr numbering tickets start from 0 // mgr numbering tickets start from 0
GMTicket* ticket = sTicketMgr.GetGMTicket(num); GMTicket* ticket = sTicketMgr.GetGMTicket(num);
@ -2739,7 +2747,7 @@ bool ChatHandler::HandleTicketShowCommand(char *args)
ObjectGuid target_guid; ObjectGuid target_guid;
std::string target_name; std::string target_name;
if (!ExtractPlayerTarget(&px, NULL, &target_guid, &target_name)) if (!ExtractPlayerTarget(&px, NULL, &target_guid, &target_name))
return false; { return false; }
// ticket $char_name // ticket $char_name
GMTicket* ticket = sTicketMgr.GetGMTicket(target_guid); GMTicket* ticket = sTicketMgr.GetGMTicket(target_guid);
@ -2763,7 +2771,7 @@ bool ChatHandler::HandleTickerSurveyClose(char *args)
if (ExtractUInt32(&args, num)) if (ExtractUInt32(&args, num))
{ {
if (num == 0) if (num == 0)
return false; { return false; }
ticket = sTicketMgr.GetGMTicket(num); ticket = sTicketMgr.GetGMTicket(num);
@ -2779,7 +2787,7 @@ bool ChatHandler::HandleTickerSurveyClose(char *args)
ObjectGuid target_guid; ObjectGuid target_guid;
std::string target_name; std::string target_name;
if (!ExtractPlayerTarget(&args, NULL, &target_guid, &target_name)) if (!ExtractPlayerTarget(&args, NULL, &target_guid, &target_name))
return false; { return false; }
// ticket respond $char_name // ticket respond $char_name
ticket = sTicketMgr.GetGMTicket(target_guid); ticket = sTicketMgr.GetGMTicket(target_guid);

View File

@ -666,7 +666,7 @@ ChatCommand* ChatHandler::getCommandTable()
{ "accept", SEC_ADMINISTRATOR, true, &ChatHandler::HandleTicketAcceptCommand, "", NULL }, { "accept", SEC_ADMINISTRATOR, true, &ChatHandler::HandleTicketAcceptCommand, "", NULL },
{ "close", SEC_GAMEMASTER, true, &ChatHandler::HandleTicketCloseCommand, "", NULL }, { "close", SEC_GAMEMASTER, true, &ChatHandler::HandleTicketCloseCommand, "", NULL },
{ "delete", SEC_ADMINISTRATOR, true, &ChatHandler::HandleTicketDeleteCommand, "", NULL }, { "delete", SEC_ADMINISTRATOR, true, &ChatHandler::HandleTicketDeleteCommand, "", NULL },
{ "info", SEC_MODERATOR, true, &ChatHandler::HandleTicketInfoCommand, "", NULL }, { "info", SEC_GAMEMASTER, true, &ChatHandler::HandleTicketInfoCommand, "", NULL },
{ "list", SEC_GAMEMASTER, true, &ChatHandler::HandleTicketListCommand, "", NULL }, { "list", SEC_GAMEMASTER, true, &ChatHandler::HandleTicketListCommand, "", NULL },
{ "meaccept", SEC_GAMEMASTER, true, &ChatHandler::HandleTicketMeAcceptCommand, "", NULL }, { "meaccept", SEC_GAMEMASTER, true, &ChatHandler::HandleTicketMeAcceptCommand, "", NULL },
{ "onlinelist", SEC_GAMEMASTER, true, &ChatHandler::HandleTicketOnlineListCommand, "", NULL }, { "onlinelist", SEC_GAMEMASTER, true, &ChatHandler::HandleTicketOnlineListCommand, "", NULL },
@ -770,7 +770,7 @@ ChatCommand* ChatHandler::getCommandTable()
{ "additemset", SEC_ADMINISTRATOR, false, &ChatHandler::HandleAddItemSetCommand, "", NULL }, { "additemset", SEC_ADMINISTRATOR, false, &ChatHandler::HandleAddItemSetCommand, "", NULL },
{ "bank", SEC_ADMINISTRATOR, false, &ChatHandler::HandleBankCommand, "", NULL }, { "bank", SEC_ADMINISTRATOR, false, &ChatHandler::HandleBankCommand, "", NULL },
{ "wchange", SEC_ADMINISTRATOR, false, &ChatHandler::HandleChangeWeatherCommand, "", NULL }, { "wchange", SEC_ADMINISTRATOR, false, &ChatHandler::HandleChangeWeatherCommand, "", NULL },
{ "ticket", SEC_GAMEMASTER, true, NULL, "", ticketCommandTable }, { "ticket", SEC_GAMEMASTER, false, NULL, "", ticketCommandTable },
{ "maxskill", SEC_ADMINISTRATOR, false, &ChatHandler::HandleMaxSkillCommand, "", NULL }, { "maxskill", SEC_ADMINISTRATOR, false, &ChatHandler::HandleMaxSkillCommand, "", NULL },
{ "setskill", SEC_ADMINISTRATOR, false, &ChatHandler::HandleSetSkillCommand, "", NULL }, { "setskill", SEC_ADMINISTRATOR, false, &ChatHandler::HandleSetSkillCommand, "", NULL },
{ "whispers", SEC_MODERATOR, false, &ChatHandler::HandleWhispersCommand, "", NULL }, { "whispers", SEC_MODERATOR, false, &ChatHandler::HandleWhispersCommand, "", NULL },