| 2178 | bool ChatHandler::HandleObjectStateCommand(const char* args) |
| 2179 | { |
| 2180 | // number or [name] Shift-click form |color|Hgameobject:go_id|h[name]|h|r |
| 2181 | char* cId = extractKeyFromLink((char*)args, "Hgameobject"); |
| 2182 | if(!cId) |
| 2183 | return false; |
| 2184 | |
| 2185 | uint32 lowguid = atoi(cId); |
| 2186 | if(!lowguid) |
| 2187 | return false; |
| 2188 | |
| 2189 | GameObject* gobj = NULL; |
| 2190 | |
| 2191 | if(GameObjectData const* goData = objmgr.GetGOData(lowguid)) |
| 2192 | gobj = GetObjectGlobalyWithGuidOrNearWithDbGuid(lowguid, goData->id); |
| 2193 | |
| 2194 | if(!gobj) |
| 2195 | { |
| 2196 | PSendSysMessage(LANG_COMMAND_OBJNOTFOUND, lowguid); |
| 2197 | SetSentErrorMessage(true); |
| 2198 | return false; |
| 2199 | } |
| 2200 | |
| 2201 | char* cstate = strtok(NULL, " "); |
| 2202 | if(!cstate) |
| 2203 | return false; |
| 2204 | |
| 2205 | int32 state = atoi(cstate); |
| 2206 | if(state < 0) |
| 2207 | gobj->SendObjectDeSpawnAnim(gobj->GetGUID()); |
| 2208 | else |
| 2209 | gobj->SetGoState(state); |
| 2210 | |
| 2211 | return true; |
| 2212 | |
| 2213 | return true; |
| 2214 | } |
| 2215 | |
| 5513 | |
| 5514 | bool ChatHandler::HandleGroupLeaderCommand(const char* args) |
| 5515 | { |
| 5516 | Player* plr = NULL; |
| 5517 | Group* group = NULL; |
| 5518 | uint64 guid = 0; |
| 5519 | char* cname = strtok((char*)args, " "); |
| 5520 | |
| 5521 | if(GetPlayerGroupAndGUIDByName(cname, plr, group, guid)) |
| 5522 | if(group && group->GetLeaderGUID() != guid) |
| 5523 | group->ChangeLeader(guid); |
| 5524 | |
| 5525 | return true; |
| 5526 | } |
| 5527 | |
| 5528 | bool ChatHandler::HandleGroupDisbandCommand(const char* args) |
| 5529 | { |
| 5530 | Player* plr = NULL; |
| 5531 | Group* group = NULL; |
| 5532 | uint64 guid = 0; |
| 5533 | char* cname = strtok((char*)args, " "); |
| 5534 | |
| 5535 | if(GetPlayerGroupAndGUIDByName(cname, plr, group, guid)) |
| 5536 | if(group) |
| 5537 | group->Disband(); |
| 5538 | |
| 5539 | return true; |
| 5540 | } |
| 5541 | |
| 5542 | bool ChatHandler::HandleGroupRemoveCommand(const char* args) |
| 5543 | { |
| 5544 | Player* plr = NULL; |
| 5545 | Group* group = NULL; |
| 5546 | uint64 guid = 0; |
| 5547 | char* cname = strtok((char*)args, " "); |
| 5548 | |
| 5549 | if(GetPlayerGroupAndGUIDByName(cname, plr, group, guid, true)) |
| 5550 | if(group) |
| 5551 | group->RemoveMember(guid, 0); |
| 5552 | |
| 5553 | return true; |
| 5554 | } |