void WorldSession::HandleGuildAddRank(WorldPacket & recv_data) { string rankName; Guild * pGuild = _player->GetGuild(); if(pGuild == NULL) { Guild::SendGuildCommandResult(this, GUILD_CREATE_S, "", GUILD_PLAYER_NOT_IN_GUILD); return; } if(pGuild->GetGuildLeader() != _player->GetLowGUID()) { Guild::SendGuildCommandResult(this, GUILD_CREATE_S, "", GUILD_PERMISSIONS); return; } recv_data >> rankName; if(rankName.size() < 2) return; pGuild->CreateGuildRank(rankName.c_str(), GR_RIGHT_DEFAULT, false); // there is probably a command result for this. need to find it. pGuild->SendGuildQuery(NULL); pGuild->SendGuildRoster(this); }
void WorldSession::HandleSaveGuildEmblem(WorldPacket & recv_data) { CHECK_INWORLD_RETURN uint64 guid; Guild * pGuild = _player->GetGuild(); int32 cost = MONEY_ONE_GOLD * 10; uint32 emblemStyle, emblemColor, borderStyle, borderColor, backgroundColor; WorldPacket data(MSG_SAVE_GUILD_EMBLEM, 4); recv_data >> guid; CHECK_PACKET_SIZE(recv_data, 28); CHECK_INWORLD_RETURN; CHECK_GUID_EXISTS(guid); recv_data >> emblemStyle >> emblemColor >> borderStyle >> borderColor >> backgroundColor; if( pGuild== NULL ) { data << uint32(ERR_GUILDEMBLEM_NOGUILD); SendPacket(&data); return; } if(pGuild->GetGuildLeader() != _player->GetLowGUID()) { data << uint32(ERR_GUILDEMBLEM_NOTGUILDMASTER); SendPacket(&data); return; } if(_player->GetUInt32Value(PLAYER_FIELD_COINAGE) < (uint32)cost) { data << uint32(ERR_GUILDEMBLEM_NOTENOUGHMONEY); SendPacket(&data); return; } data << uint32(ERR_GUILDEMBLEM_SUCCESS); SendPacket(&data); // set in memory and database pGuild->SetTabardInfo(emblemStyle, emblemColor, borderStyle, borderColor, backgroundColor); // update all clients (probably is an event for this, again.) pGuild->SendGuildQuery(NULL); }
void WorldSession::HandleGuildDelRank(WorldPacket & recv_data) { Guild * pGuild = _player->GetGuild(); if(pGuild == NULL) { Guild::SendGuildCommandResult(this, GUILD_CREATE_S, "", GUILD_PLAYER_NOT_IN_GUILD); return; } if(pGuild->GetGuildLeader() != _player->GetLowGUID()) { Guild::SendGuildCommandResult(this, GUILD_CREATE_S, "", GUILD_PERMISSIONS); return; } pGuild->RemoveGuildRank(this); // there is probably a command result for this. need to find it. pGuild->SendGuildQuery(NULL); pGuild->SendGuildRoster(this); }