Changeset 173 for trunk/src/game/GuildHandler.cpp
- Timestamp:
- 11/19/08 13:43:02 (17 years ago)
- Files:
-
- 1 modified
Legend:
- Unmodified
- Added
- Removed
-
trunk/src/game/GuildHandler.cpp
r102 r173 165 165 return; 166 166 167 guild = objmgr.GetGuildById(GetPlayer()->GetGuildId()); 168 if(!guild) 169 { 170 SendGuildCommandResult(GUILD_CREATE_S, "", GUILD_PLAYER_NOT_IN_GUILD); 171 return; 172 } 173 174 if(!guild->HasRankRight(GetPlayer()->GetRank(), GR_RIGHT_REMOVE)) 175 { 176 SendGuildCommandResult(GUILD_INVITE_S, "", GUILD_PERMISSIONS); 177 return; 178 } 179 167 180 player = ObjectAccessor::Instance().FindPlayerByName(plName.c_str()); 168 guild = objmgr.GetGuildById(GetPlayer()->GetGuildId());169 170 181 if(player) 171 182 { … … 179 190 } 180 191 181 if(!guild)182 {183 SendGuildCommandResult(GUILD_CREATE_S, "", GUILD_PLAYER_NOT_IN_GUILD);184 return;185 }186 187 192 if(!plGuid) 188 193 { 189 194 SendGuildCommandResult(GUILD_INVITE_S, plName, GUILD_PLAYER_NOT_FOUND); 190 return;191 }192 193 if(!guild->HasRankRight(GetPlayer()->GetRank(), GR_RIGHT_REMOVE))194 {195 SendGuildCommandResult(GUILD_INVITE_S, "", GUILD_PERMISSIONS);196 195 return; 197 196 } … … 297 296 298 297 std::string plName; 299 uint64 plGuid;300 uint32 plGuildId;301 uint32 plRankId;302 Player *player;303 Guild *guild;304 298 305 299 //sLog.outDebug("WORLD: Received CMSG_GUILD_PROMOTE"); … … 309 303 if(!normalizePlayerName(plName)) 310 304 return; 311 312 player = ObjectAccessor::Instance().FindPlayerByName(plName.c_str()); 313 guild = objmgr.GetGuildById(GetPlayer()->GetGuildId()); 314 if(player) 315 { 316 plGuid = player->GetGUID(); 317 plGuildId = player->GetGuildId(); 318 plRankId = player->GetRank(); 319 } 320 else 321 { 322 plGuid = objmgr.GetPlayerGUIDByName(plName); 323 plGuildId = Player::GetGuildIdFromDB(plGuid); 324 plRankId = Player::GetRankFromDB(plGuid); 325 } 326 305 306 Guild* guild = objmgr.GetGuildById(GetPlayer()->GetGuildId()); 327 307 if(!guild) 328 308 { … … 330 310 return; 331 311 } 332 else if(!plGuid) 312 if(!guild->HasRankRight(GetPlayer()->GetRank(), GR_RIGHT_PROMOTE)) 313 { 314 SendGuildCommandResult(GUILD_INVITE_S, "", GUILD_PERMISSIONS); 315 return; 316 } 317 318 uint64 plGuid = objmgr.GetPlayerGUIDByName(plName); 319 320 if(!plGuid) 333 321 { 334 322 SendGuildCommandResult(GUILD_INVITE_S, plName, GUILD_PLAYER_NOT_FOUND); … … 340 328 return; 341 329 } 342 else if(GetPlayer()->GetGuildId() != plGuildId) 330 331 int32 plRankId = guild->GetRank(GUID_LOPART(plGuid)); 332 if(plRankId == -1) 343 333 { 344 334 SendGuildCommandResult(GUILD_INVITE_S, plName, GUILD_PLAYER_NOT_IN_GUILD_S); 345 335 return; 346 336 } 347 else if(!guild->HasRankRight(GetPlayer()->GetRank(), GR_RIGHT_PROMOTE)) 348 { 349 SendGuildCommandResult(GUILD_INVITE_S, "", GUILD_PERMISSIONS); 350 return; 351 } 352 else if((plRankId-1) == 0 || (plRankId-1) < this->GetPlayer()->GetRank()) 353 return; 354 355 if(plRankId < 1) 356 { 357 SendGuildCommandResult(GUILD_INVITE_S, "", GUILD_INTERNAL); 358 return; 359 } 337 if(plRankId < 2 || (plRankId-1) < GetPlayer()->GetRank()) 338 return; 360 339 361 340 uint32 newRankId = plRankId < guild->GetNrRanks() ? plRankId-1 : guild->GetNrRanks()-1; … … 379 358 380 359 std::string plName; 381 uint64 plGuid;382 uint32 plGuildId;383 uint32 plRankId;384 Player *player;385 Guild *guild;386 360 387 361 //sLog.outDebug("WORLD: Received CMSG_GUILD_DEMOTE"); … … 392 366 return; 393 367 394 player = ObjectAccessor::Instance().FindPlayerByName(plName.c_str()); 395 guild = objmgr.GetGuildById(GetPlayer()->GetGuildId()); 396 if(player) 397 { 398 plGuid = player->GetGUID(); 399 plGuildId = player->GetGuildId(); 400 plRankId = player->GetRank(); 401 } 402 else 403 { 404 plGuid = objmgr.GetPlayerGUIDByName(plName); 405 plGuildId = Player::GetGuildIdFromDB(plGuid); 406 plRankId = Player::GetRankFromDB(plGuid); 407 } 368 Guild* guild = objmgr.GetGuildById(GetPlayer()->GetGuildId()); 408 369 409 370 if(!guild) … … 412 373 return; 413 374 } 375 376 if(!guild->HasRankRight(GetPlayer()->GetRank(), GR_RIGHT_DEMOTE)) 377 { 378 SendGuildCommandResult(GUILD_INVITE_S, "", GUILD_PERMISSIONS); 379 return; 380 } 381 382 uint64 plGuid = objmgr.GetPlayerGUIDByName(plName); 414 383 415 384 if( !plGuid ) … … 425 394 } 426 395 427 if(GetPlayer()->GetGuildId() != plGuildId) 396 int32 plRankId = guild->GetRank(GUID_LOPART(plGuid)); 397 if(plRankId == -1) 428 398 { 429 399 SendGuildCommandResult(GUILD_INVITE_S, plName, GUILD_PLAYER_NOT_IN_GUILD_S); 430 return;431 }432 433 if(!guild->HasRankRight(GetPlayer()->GetRank(), GR_RIGHT_DEMOTE))434 {435 SendGuildCommandResult(GUILD_INVITE_S, "", GUILD_PERMISSIONS);436 400 return; 437 401 } … … 536 500 if(!normalizePlayerName(name)) 537 501 return; 502 503 guild = objmgr.GetGuildById(oldLeader->GetGuildId()); 504 505 if(!guild) 506 { 507 SendGuildCommandResult(GUILD_CREATE_S, "", GUILD_PLAYER_NOT_IN_GUILD); 508 return; 509 } 510 511 if(oldLeader->GetGUID() != guild->GetLeader()) 512 { 513 SendGuildCommandResult(GUILD_INVITE_S, "", GUILD_PERMISSIONS); 514 return; 515 } 538 516 539 517 newLeader = ObjectAccessor::Instance().FindPlayerByName(name.c_str()); … … 548 526 newLeaderGuild = Player::GetGuildIdFromDB(newLeaderGUID); 549 527 } 550 guild = objmgr.GetGuildById(oldLeader->GetGuildId()); 551 552 if(!guild) 553 { 554 SendGuildCommandResult(GUILD_CREATE_S, "", GUILD_PLAYER_NOT_IN_GUILD); 555 return; 556 } 557 else if(!newLeaderGUID) 528 if(!newLeaderGUID) 558 529 { 559 530 SendGuildCommandResult(GUILD_INVITE_S, name, GUILD_PLAYER_NOT_FOUND); … … 563 534 { 564 535 SendGuildCommandResult(GUILD_INVITE_S, name, GUILD_PLAYER_NOT_IN_GUILD_S); 565 return;566 }567 if(oldLeader->GetGUID() != guild->GetLeader())568 {569 SendGuildCommandResult(GUILD_INVITE_S, "", GUILD_PERMISSIONS);570 536 return; 571 537 } … … 636 602 return; 637 603 604 guild = objmgr.GetGuildById(GetPlayer()->GetGuildId()); 605 if(!guild) 606 { 607 SendGuildCommandResult(GUILD_CREATE_S, "", GUILD_PLAYER_NOT_IN_GUILD); 608 return; 609 } 610 611 if(!guild->HasRankRight(GetPlayer()->GetRank(), GR_RIGHT_EPNOTE)) 612 { 613 SendGuildCommandResult(GUILD_INVITE_S, "", GUILD_PERMISSIONS); 614 return; 615 } 616 638 617 player = ObjectAccessor::Instance().FindPlayerByName(name.c_str()); 639 guild = objmgr.GetGuildById(GetPlayer()->GetGuildId());640 618 if(player) 641 619 { … … 649 627 } 650 628 651 if(!guild) 652 { 653 SendGuildCommandResult(GUILD_CREATE_S, "", GUILD_PLAYER_NOT_IN_GUILD); 654 return; 655 } 656 else if(!plGuid) 629 if(!plGuid) 657 630 { 658 631 SendGuildCommandResult(GUILD_INVITE_S, name, GUILD_PLAYER_NOT_FOUND); … … 662 635 { 663 636 SendGuildCommandResult(GUILD_INVITE_S, name, GUILD_PLAYER_NOT_IN_GUILD_S); 664 return;665 }666 if(!guild->HasRankRight(GetPlayer()->GetRank(), GR_RIGHT_EPNOTE))667 {668 SendGuildCommandResult(GUILD_INVITE_S, "", GUILD_PERMISSIONS);669 637 return; 670 638 } … … 693 661 return; 694 662 663 guild = objmgr.GetGuildById(GetPlayer()->GetGuildId()); 664 if(!guild) 665 { 666 SendGuildCommandResult(GUILD_CREATE_S, "", GUILD_PLAYER_NOT_IN_GUILD); 667 return; 668 } 669 if(!guild->HasRankRight(GetPlayer()->GetRank(), GR_RIGHT_EOFFNOTE)) 670 { 671 SendGuildCommandResult(GUILD_INVITE_S, "", GUILD_PERMISSIONS); 672 return; 673 } 674 695 675 player = ObjectAccessor::Instance().FindPlayerByName(plName.c_str()); 696 guild = objmgr.GetGuildById(GetPlayer()->GetGuildId());697 676 if(player) 698 677 { … … 706 685 } 707 686 708 if(!guild) 709 { 710 SendGuildCommandResult(GUILD_CREATE_S, "", GUILD_PLAYER_NOT_IN_GUILD); 711 return; 712 } 713 else if( !plGuid ) 687 if( !plGuid ) 714 688 { 715 689 SendGuildCommandResult(GUILD_INVITE_S, plName, GUILD_PLAYER_NOT_FOUND); … … 719 693 { 720 694 SendGuildCommandResult(GUILD_INVITE_S, plName, GUILD_PLAYER_NOT_IN_GUILD_S); 721 return;722 }723 if(!guild->HasRankRight(GetPlayer()->GetRank(), GR_RIGHT_EOFFNOTE))724 {725 SendGuildCommandResult(GUILD_INVITE_S, "", GUILD_PERMISSIONS);726 695 return; 727 696 }