Fix housing old db2 and implement missing opcodes thanks agatho
This commit is contained in:
@@ -352,10 +352,21 @@ void WorldSession::HandleNeighborhoodUpdateName(WorldPackets::Neighborhood::Neig
|
||||
if (!player)
|
||||
return;
|
||||
|
||||
TC_LOG_INFO("housing", "CMSG_NEIGHBORHOOD_UPDATE_NAMENeighborhoodGuid: {}, NewName: {}",
|
||||
neighborhoodUpdateName.NeighborhoodGuid.ToString(), neighborhoodUpdateName.NewName);
|
||||
Housing* housing = player->GetHousing();
|
||||
if (!housing)
|
||||
{
|
||||
WorldPackets::Neighborhood::NeighborhoodUpdateNameResponse response;
|
||||
response.Result = static_cast<uint32>(HOUSING_RESULT_HOUSE_NOT_FOUND);
|
||||
SendPacket(response.Write());
|
||||
return;
|
||||
}
|
||||
|
||||
Neighborhood* neighborhood = sNeighborhoodMgr.GetNeighborhood(neighborhoodUpdateName.NeighborhoodGuid);
|
||||
ObjectGuid neighborhoodGuid = housing->GetNeighborhoodGuid();
|
||||
|
||||
TC_LOG_INFO("housing", "CMSG_NEIGHBORHOOD_UPDATE_NAME NeighborhoodGuid: {}, NewName: {}",
|
||||
neighborhoodGuid.ToString(), neighborhoodUpdateName.NewName);
|
||||
|
||||
Neighborhood* neighborhood = sNeighborhoodMgr.GetNeighborhood(neighborhoodGuid);
|
||||
if (!neighborhood)
|
||||
{
|
||||
WorldPackets::Neighborhood::NeighborhoodUpdateNameResponse response;
|
||||
@@ -363,7 +374,7 @@ void WorldSession::HandleNeighborhoodUpdateName(WorldPackets::Neighborhood::Neig
|
||||
SendPacket(response.Write());
|
||||
|
||||
TC_LOG_DEBUG("housing", "HandleNeighborhoodUpdateName: Neighborhood {} not found",
|
||||
neighborhoodUpdateName.NeighborhoodGuid.ToString());
|
||||
neighborhoodGuid.ToString());
|
||||
return;
|
||||
}
|
||||
|
||||
@@ -375,7 +386,7 @@ void WorldSession::HandleNeighborhoodUpdateName(WorldPackets::Neighborhood::Neig
|
||||
SendPacket(response.Write());
|
||||
|
||||
TC_LOG_DEBUG("housing", "HandleNeighborhoodUpdateName: Player {} lacks permission for neighborhood {}",
|
||||
player->GetGUID().ToString(), neighborhoodUpdateName.NeighborhoodGuid.ToString());
|
||||
player->GetGUID().ToString(), neighborhoodGuid.ToString());
|
||||
return;
|
||||
}
|
||||
|
||||
@@ -398,11 +409,11 @@ void WorldSession::HandleNeighborhoodUpdateName(WorldPackets::Neighborhood::Neig
|
||||
if (Player* memberPlayer = ObjectAccessor::FindPlayer(member.PlayerGuid))
|
||||
{
|
||||
WorldPackets::Housing::InvalidateNeighborhoodName invalidate;
|
||||
invalidate.NeighborhoodGuid = neighborhoodUpdateName.NeighborhoodGuid;
|
||||
invalidate.NeighborhoodGuid = neighborhoodGuid;
|
||||
memberPlayer->SendDirectMessage(invalidate.Write());
|
||||
|
||||
WorldPackets::Neighborhood::NeighborhoodUpdateNameNotification nameNotification;
|
||||
nameNotification.NeighborhoodGuid = neighborhoodUpdateName.NeighborhoodGuid;
|
||||
nameNotification.NeighborhoodGuid = neighborhoodGuid;
|
||||
nameNotification.NewName = neighborhoodUpdateName.NewName;
|
||||
memberPlayer->SendDirectMessage(nameNotification.Write());
|
||||
}
|
||||
@@ -410,20 +421,20 @@ void WorldSession::HandleNeighborhoodUpdateName(WorldPackets::Neighborhood::Neig
|
||||
|
||||
WorldPackets::Neighborhood::NeighborhoodUpdateNameResponse response;
|
||||
response.Result = static_cast<uint32>(HOUSING_RESULT_SUCCESS);
|
||||
response.NeighborhoodGuid = neighborhoodUpdateName.NeighborhoodGuid;
|
||||
response.NeighborhoodGuid = neighborhoodGuid;
|
||||
SendPacket(response.Write());
|
||||
|
||||
// Send guild rename notification if player is in a guild
|
||||
if (Guild* guild = sGuildMgr->GetGuildById(player->GetGuildId()))
|
||||
{
|
||||
WorldPackets::Housing::HousingSvcsGuildRenameNeighborhoodNotification guildNotification;
|
||||
guildNotification.NeighborhoodGuid = neighborhoodUpdateName.NeighborhoodGuid;
|
||||
guildNotification.NeighborhoodGuid = neighborhoodGuid;
|
||||
guildNotification.NewName = neighborhoodUpdateName.NewName;
|
||||
guild->BroadcastPacket(guildNotification.Write());
|
||||
}
|
||||
|
||||
TC_LOG_DEBUG("housing", "Neighborhood {} renamed to '{}' by player {}",
|
||||
neighborhoodUpdateName.NeighborhoodGuid.ToString(), neighborhoodUpdateName.NewName,
|
||||
neighborhoodGuid.ToString(), neighborhoodUpdateName.NewName,
|
||||
player->GetGUID().ToString());
|
||||
}
|
||||
|
||||
@@ -478,10 +489,21 @@ void WorldSession::HandleNeighborhoodAddSecondaryOwner(WorldPackets::Neighborhoo
|
||||
if (!player)
|
||||
return;
|
||||
|
||||
TC_LOG_INFO("housing", "CMSG_NEIGHBORHOOD_ADD_SECONDARY_OWNERNeighborhoodGuid: {}, PlayerGuid: {}",
|
||||
neighborhoodAddSecondaryOwner.NeighborhoodGuid.ToString(), neighborhoodAddSecondaryOwner.PlayerGuid.ToString());
|
||||
Housing* housing = player->GetHousing();
|
||||
if (!housing)
|
||||
{
|
||||
WorldPackets::Neighborhood::NeighborhoodAddSecondaryOwnerResponse response;
|
||||
response.Result = static_cast<uint32>(HOUSING_RESULT_HOUSE_NOT_FOUND);
|
||||
SendPacket(response.Write());
|
||||
return;
|
||||
}
|
||||
|
||||
Neighborhood* neighborhood = sNeighborhoodMgr.GetNeighborhood(neighborhoodAddSecondaryOwner.NeighborhoodGuid);
|
||||
ObjectGuid neighborhoodGuid = housing->GetNeighborhoodGuid();
|
||||
|
||||
TC_LOG_INFO("housing", "CMSG_NEIGHBORHOOD_ADD_SECONDARY_OWNER NeighborhoodGuid: {}, PlayerGuid: {}",
|
||||
neighborhoodGuid.ToString(), neighborhoodAddSecondaryOwner.PlayerGuid.ToString());
|
||||
|
||||
Neighborhood* neighborhood = sNeighborhoodMgr.GetNeighborhood(neighborhoodGuid);
|
||||
if (!neighborhood)
|
||||
{
|
||||
WorldPackets::Neighborhood::NeighborhoodAddSecondaryOwnerResponse response;
|
||||
@@ -489,7 +511,7 @@ void WorldSession::HandleNeighborhoodAddSecondaryOwner(WorldPackets::Neighborhoo
|
||||
SendPacket(response.Write());
|
||||
|
||||
TC_LOG_DEBUG("housing", "HandleNeighborhoodAddSecondaryOwner: Neighborhood {} not found",
|
||||
neighborhoodAddSecondaryOwner.NeighborhoodGuid.ToString());
|
||||
neighborhoodGuid.ToString());
|
||||
return;
|
||||
}
|
||||
|
||||
@@ -501,7 +523,7 @@ void WorldSession::HandleNeighborhoodAddSecondaryOwner(WorldPackets::Neighborhoo
|
||||
SendPacket(response.Write());
|
||||
|
||||
TC_LOG_DEBUG("housing", "HandleNeighborhoodAddSecondaryOwner: Player {} is not owner of neighborhood {}",
|
||||
player->GetGUID().ToString(), neighborhoodAddSecondaryOwner.NeighborhoodGuid.ToString());
|
||||
player->GetGUID().ToString(), neighborhoodGuid.ToString());
|
||||
return;
|
||||
}
|
||||
|
||||
@@ -509,7 +531,7 @@ void WorldSession::HandleNeighborhoodAddSecondaryOwner(WorldPackets::Neighborhoo
|
||||
|
||||
WorldPackets::Neighborhood::NeighborhoodAddSecondaryOwnerResponse response;
|
||||
response.Result = static_cast<uint32>(result);
|
||||
response.NeighborhoodGuid = neighborhoodAddSecondaryOwner.NeighborhoodGuid;
|
||||
response.NeighborhoodGuid = neighborhoodGuid;
|
||||
response.PlayerGuid = neighborhoodAddSecondaryOwner.PlayerGuid;
|
||||
SendPacket(response.Write());
|
||||
|
||||
@@ -546,7 +568,7 @@ void WorldSession::HandleNeighborhoodAddSecondaryOwner(WorldPackets::Neighborhoo
|
||||
|
||||
TC_LOG_DEBUG("housing", "AddManager result: {} for player {} in neighborhood {}",
|
||||
uint32(result), neighborhoodAddSecondaryOwner.PlayerGuid.ToString(),
|
||||
neighborhoodAddSecondaryOwner.NeighborhoodGuid.ToString());
|
||||
neighborhoodGuid.ToString());
|
||||
}
|
||||
|
||||
void WorldSession::HandleNeighborhoodRemoveSecondaryOwner(WorldPackets::Neighborhood::NeighborhoodRemoveSecondaryOwner const& neighborhoodRemoveSecondaryOwner)
|
||||
@@ -555,10 +577,21 @@ void WorldSession::HandleNeighborhoodRemoveSecondaryOwner(WorldPackets::Neighbor
|
||||
if (!player)
|
||||
return;
|
||||
|
||||
TC_LOG_INFO("housing", "CMSG_NEIGHBORHOOD_REMOVE_SECONDARY_OWNERNeighborhoodGuid: {}, PlayerGuid: {}",
|
||||
neighborhoodRemoveSecondaryOwner.NeighborhoodGuid.ToString(), neighborhoodRemoveSecondaryOwner.PlayerGuid.ToString());
|
||||
Housing* housing = player->GetHousing();
|
||||
if (!housing)
|
||||
{
|
||||
WorldPackets::Neighborhood::NeighborhoodRemoveSecondaryOwnerResponse response;
|
||||
response.Result = static_cast<uint32>(HOUSING_RESULT_HOUSE_NOT_FOUND);
|
||||
SendPacket(response.Write());
|
||||
return;
|
||||
}
|
||||
|
||||
Neighborhood* neighborhood = sNeighborhoodMgr.GetNeighborhood(neighborhoodRemoveSecondaryOwner.NeighborhoodGuid);
|
||||
ObjectGuid neighborhoodGuid = housing->GetNeighborhoodGuid();
|
||||
|
||||
TC_LOG_INFO("housing", "CMSG_NEIGHBORHOOD_REMOVE_SECONDARY_OWNER NeighborhoodGuid: {}, PlayerGuid: {}",
|
||||
neighborhoodGuid.ToString(), neighborhoodRemoveSecondaryOwner.PlayerGuid.ToString());
|
||||
|
||||
Neighborhood* neighborhood = sNeighborhoodMgr.GetNeighborhood(neighborhoodGuid);
|
||||
if (!neighborhood)
|
||||
{
|
||||
WorldPackets::Neighborhood::NeighborhoodRemoveSecondaryOwnerResponse response;
|
||||
@@ -566,7 +599,7 @@ void WorldSession::HandleNeighborhoodRemoveSecondaryOwner(WorldPackets::Neighbor
|
||||
SendPacket(response.Write());
|
||||
|
||||
TC_LOG_DEBUG("housing", "HandleNeighborhoodRemoveSecondaryOwner: Neighborhood {} not found",
|
||||
neighborhoodRemoveSecondaryOwner.NeighborhoodGuid.ToString());
|
||||
neighborhoodGuid.ToString());
|
||||
return;
|
||||
}
|
||||
|
||||
@@ -578,7 +611,7 @@ void WorldSession::HandleNeighborhoodRemoveSecondaryOwner(WorldPackets::Neighbor
|
||||
SendPacket(response.Write());
|
||||
|
||||
TC_LOG_DEBUG("housing", "HandleNeighborhoodRemoveSecondaryOwner: Player {} is not owner of neighborhood {}",
|
||||
player->GetGUID().ToString(), neighborhoodRemoveSecondaryOwner.NeighborhoodGuid.ToString());
|
||||
player->GetGUID().ToString(), neighborhoodGuid.ToString());
|
||||
return;
|
||||
}
|
||||
|
||||
@@ -586,7 +619,7 @@ void WorldSession::HandleNeighborhoodRemoveSecondaryOwner(WorldPackets::Neighbor
|
||||
|
||||
WorldPackets::Neighborhood::NeighborhoodRemoveSecondaryOwnerResponse response;
|
||||
response.Result = static_cast<uint32>(result);
|
||||
response.NeighborhoodGuid = neighborhoodRemoveSecondaryOwner.NeighborhoodGuid;
|
||||
response.NeighborhoodGuid = neighborhoodGuid;
|
||||
response.PlayerGuid = neighborhoodRemoveSecondaryOwner.PlayerGuid;
|
||||
SendPacket(response.Write());
|
||||
|
||||
@@ -623,7 +656,7 @@ void WorldSession::HandleNeighborhoodRemoveSecondaryOwner(WorldPackets::Neighbor
|
||||
|
||||
TC_LOG_DEBUG("housing", "RemoveManager result: {} for player {} in neighborhood {}",
|
||||
uint32(result), neighborhoodRemoveSecondaryOwner.PlayerGuid.ToString(),
|
||||
neighborhoodRemoveSecondaryOwner.NeighborhoodGuid.ToString());
|
||||
neighborhoodGuid.ToString());
|
||||
}
|
||||
|
||||
void WorldSession::HandleNeighborhoodInviteResident(WorldPackets::Neighborhood::NeighborhoodInviteResident const& neighborhoodInviteResident)
|
||||
@@ -632,10 +665,21 @@ void WorldSession::HandleNeighborhoodInviteResident(WorldPackets::Neighborhood::
|
||||
if (!player)
|
||||
return;
|
||||
|
||||
TC_LOG_INFO("housing", "CMSG_NEIGHBORHOOD_INVITE_RESIDENT NeighborhoodGuid: {}, PlayerGuid: {}",
|
||||
neighborhoodInviteResident.NeighborhoodGuid.ToString(), neighborhoodInviteResident.PlayerGuid.ToString());
|
||||
Housing* housing = player->GetHousing();
|
||||
if (!housing)
|
||||
{
|
||||
WorldPackets::Neighborhood::NeighborhoodInviteResidentResponse response;
|
||||
response.Result = static_cast<uint32>(HOUSING_RESULT_HOUSE_NOT_FOUND);
|
||||
SendPacket(response.Write());
|
||||
return;
|
||||
}
|
||||
|
||||
Neighborhood* neighborhood = sNeighborhoodMgr.GetNeighborhood(neighborhoodInviteResident.NeighborhoodGuid);
|
||||
ObjectGuid neighborhoodGuid = housing->GetNeighborhoodGuid();
|
||||
|
||||
TC_LOG_INFO("housing", "CMSG_NEIGHBORHOOD_INVITE_RESIDENT NeighborhoodGuid: {}, PlayerGuid: {}",
|
||||
neighborhoodGuid.ToString(), neighborhoodInviteResident.PlayerGuid.ToString());
|
||||
|
||||
Neighborhood* neighborhood = sNeighborhoodMgr.GetNeighborhood(neighborhoodGuid);
|
||||
if (!neighborhood)
|
||||
{
|
||||
WorldPackets::Neighborhood::NeighborhoodInviteResidentResponse response;
|
||||
@@ -643,7 +687,7 @@ void WorldSession::HandleNeighborhoodInviteResident(WorldPackets::Neighborhood::
|
||||
SendPacket(response.Write());
|
||||
|
||||
TC_LOG_DEBUG("housing", "HandleNeighborhoodInviteResident: Neighborhood {} not found",
|
||||
neighborhoodInviteResident.NeighborhoodGuid.ToString());
|
||||
neighborhoodGuid.ToString());
|
||||
return;
|
||||
}
|
||||
|
||||
@@ -655,7 +699,7 @@ void WorldSession::HandleNeighborhoodInviteResident(WorldPackets::Neighborhood::
|
||||
SendPacket(response.Write());
|
||||
|
||||
TC_LOG_DEBUG("housing", "HandleNeighborhoodInviteResident: Player {} lacks permission for neighborhood {}",
|
||||
player->GetGUID().ToString(), neighborhoodInviteResident.NeighborhoodGuid.ToString());
|
||||
player->GetGUID().ToString(), neighborhoodGuid.ToString());
|
||||
return;
|
||||
}
|
||||
|
||||
@@ -663,7 +707,7 @@ void WorldSession::HandleNeighborhoodInviteResident(WorldPackets::Neighborhood::
|
||||
|
||||
WorldPackets::Neighborhood::NeighborhoodInviteResidentResponse response;
|
||||
response.Result = static_cast<uint32>(result);
|
||||
response.NeighborhoodGuid = neighborhoodInviteResident.NeighborhoodGuid;
|
||||
response.NeighborhoodGuid = neighborhoodGuid;
|
||||
response.InviteeGuid = neighborhoodInviteResident.PlayerGuid;
|
||||
SendPacket(response.Write());
|
||||
|
||||
@@ -673,7 +717,7 @@ void WorldSession::HandleNeighborhoodInviteResident(WorldPackets::Neighborhood::
|
||||
if (Player* invitee = ObjectAccessor::FindPlayer(neighborhoodInviteResident.PlayerGuid))
|
||||
{
|
||||
WorldPackets::Neighborhood::NeighborhoodInviteNotification notification;
|
||||
notification.NeighborhoodGuid = neighborhoodInviteResident.NeighborhoodGuid;
|
||||
notification.NeighborhoodGuid = neighborhoodGuid;
|
||||
notification.InviterGuid = player->GetGUID();
|
||||
notification.NeighborhoodName = neighborhood->GetName();
|
||||
invitee->SendDirectMessage(notification.Write());
|
||||
@@ -682,7 +726,7 @@ void WorldSession::HandleNeighborhoodInviteResident(WorldPackets::Neighborhood::
|
||||
|
||||
TC_LOG_DEBUG("housing", "InviteResident result: {} for player {} in neighborhood {}",
|
||||
uint32(result), neighborhoodInviteResident.PlayerGuid.ToString(),
|
||||
neighborhoodInviteResident.NeighborhoodGuid.ToString());
|
||||
neighborhoodGuid.ToString());
|
||||
}
|
||||
|
||||
void WorldSession::HandleNeighborhoodCancelInvitation(WorldPackets::Neighborhood::NeighborhoodCancelInvitation const& neighborhoodCancelInvitation)
|
||||
@@ -691,10 +735,21 @@ void WorldSession::HandleNeighborhoodCancelInvitation(WorldPackets::Neighborhood
|
||||
if (!player)
|
||||
return;
|
||||
|
||||
TC_LOG_INFO("housing", "CMSG_NEIGHBORHOOD_CANCEL_INVITATION NeighborhoodGuid: {}, InviteeGuid: {}",
|
||||
neighborhoodCancelInvitation.NeighborhoodGuid.ToString(), neighborhoodCancelInvitation.InviteeGuid.ToString());
|
||||
Housing* housing = player->GetHousing();
|
||||
if (!housing)
|
||||
{
|
||||
WorldPackets::Neighborhood::NeighborhoodCancelInvitationResponse response;
|
||||
response.Result = static_cast<uint32>(HOUSING_RESULT_HOUSE_NOT_FOUND);
|
||||
SendPacket(response.Write());
|
||||
return;
|
||||
}
|
||||
|
||||
Neighborhood* neighborhood = sNeighborhoodMgr.GetNeighborhood(neighborhoodCancelInvitation.NeighborhoodGuid);
|
||||
ObjectGuid neighborhoodGuid = housing->GetNeighborhoodGuid();
|
||||
|
||||
TC_LOG_INFO("housing", "CMSG_NEIGHBORHOOD_CANCEL_INVITATION NeighborhoodGuid: {}, InviteeGuid: {}",
|
||||
neighborhoodGuid.ToString(), neighborhoodCancelInvitation.InviteeGuid.ToString());
|
||||
|
||||
Neighborhood* neighborhood = sNeighborhoodMgr.GetNeighborhood(neighborhoodGuid);
|
||||
if (!neighborhood)
|
||||
{
|
||||
WorldPackets::Neighborhood::NeighborhoodCancelInvitationResponse response;
|
||||
@@ -702,7 +757,7 @@ void WorldSession::HandleNeighborhoodCancelInvitation(WorldPackets::Neighborhood
|
||||
SendPacket(response.Write());
|
||||
|
||||
TC_LOG_DEBUG("housing", "HandleNeighborhoodCancelInvitation: Neighborhood {} not found",
|
||||
neighborhoodCancelInvitation.NeighborhoodGuid.ToString());
|
||||
neighborhoodGuid.ToString());
|
||||
return;
|
||||
}
|
||||
|
||||
@@ -714,7 +769,7 @@ void WorldSession::HandleNeighborhoodCancelInvitation(WorldPackets::Neighborhood
|
||||
SendPacket(response.Write());
|
||||
|
||||
TC_LOG_DEBUG("housing", "HandleNeighborhoodCancelInvitation: Player {} lacks permission for neighborhood {}",
|
||||
player->GetGUID().ToString(), neighborhoodCancelInvitation.NeighborhoodGuid.ToString());
|
||||
player->GetGUID().ToString(), neighborhoodGuid.ToString());
|
||||
return;
|
||||
}
|
||||
|
||||
@@ -722,13 +777,13 @@ void WorldSession::HandleNeighborhoodCancelInvitation(WorldPackets::Neighborhood
|
||||
|
||||
WorldPackets::Neighborhood::NeighborhoodCancelInvitationResponse response;
|
||||
response.Result = static_cast<uint32>(result);
|
||||
response.NeighborhoodGuid = neighborhoodCancelInvitation.NeighborhoodGuid;
|
||||
response.NeighborhoodGuid = neighborhoodGuid;
|
||||
response.InviteeGuid = neighborhoodCancelInvitation.InviteeGuid;
|
||||
SendPacket(response.Write());
|
||||
|
||||
TC_LOG_DEBUG("housing", "CancelInvitation result: {} for invitee {} in neighborhood {}",
|
||||
uint32(result), neighborhoodCancelInvitation.InviteeGuid.ToString(),
|
||||
neighborhoodCancelInvitation.NeighborhoodGuid.ToString());
|
||||
neighborhoodGuid.ToString());
|
||||
}
|
||||
|
||||
void WorldSession::HandleNeighborhoodPlayerDeclineInvite(WorldPackets::Neighborhood::NeighborhoodPlayerDeclineInvite const& neighborhoodPlayerDeclineInvite)
|
||||
@@ -764,64 +819,71 @@ void WorldSession::HandleNeighborhoodPlayerDeclineInvite(WorldPackets::Neighborh
|
||||
neighborhoodPlayerDeclineInvite.NeighborhoodGuid.ToString());
|
||||
}
|
||||
|
||||
void WorldSession::HandleNeighborhoodPlayerGetInvite(WorldPackets::Neighborhood::NeighborhoodPlayerGetInvite const& neighborhoodPlayerGetInvite)
|
||||
void WorldSession::HandleNeighborhoodPlayerGetInvite(WorldPackets::Neighborhood::NeighborhoodPlayerGetInvite const& /*neighborhoodPlayerGetInvite*/)
|
||||
{
|
||||
Player* player = GetPlayer();
|
||||
if (!player)
|
||||
return;
|
||||
|
||||
TC_LOG_INFO("housing", "CMSG_NEIGHBORHOOD_PLAYER_GET_INVITE NeighborhoodGuid: {}",
|
||||
neighborhoodPlayerGetInvite.NeighborhoodGuid.ToString());
|
||||
TC_LOG_INFO("housing", "CMSG_NEIGHBORHOOD_PLAYER_GET_INVITE for player {}",
|
||||
player->GetGUID().ToString());
|
||||
|
||||
Neighborhood* neighborhood = sNeighborhoodMgr.GetNeighborhood(neighborhoodPlayerGetInvite.NeighborhoodGuid);
|
||||
if (!neighborhood)
|
||||
// Client sends empty packet ? search all neighborhoods for a pending invite to this player
|
||||
Neighborhood* foundNeighborhood = sNeighborhoodMgr.FindNeighborhoodWithPendingInvite(player->GetGUID());
|
||||
Neighborhood::PendingInvite const* foundInvite = nullptr;
|
||||
|
||||
if (foundNeighborhood)
|
||||
{
|
||||
WorldPackets::Neighborhood::NeighborhoodPlayerGetInviteResponse response;
|
||||
response.Result = static_cast<uint32>(HOUSING_RESULT_NEIGHBORHOOD_NOT_FOUND);
|
||||
SendPacket(response.Write());
|
||||
|
||||
TC_LOG_DEBUG("housing", "HandleNeighborhoodPlayerGetInvite: Neighborhood {} not found",
|
||||
neighborhoodPlayerGetInvite.NeighborhoodGuid.ToString());
|
||||
return;
|
||||
}
|
||||
|
||||
// Check if this player has a pending invite to this neighborhood
|
||||
bool hasInvite = neighborhood->HasPendingInvite(player->GetGUID());
|
||||
|
||||
WorldPackets::Neighborhood::NeighborhoodPlayerGetInviteResponse response;
|
||||
response.Result = static_cast<uint32>(hasInvite ? HOUSING_RESULT_SUCCESS : HOUSING_RESULT_NOT_ALLOWED);
|
||||
response.NeighborhoodGuid = neighborhoodPlayerGetInvite.NeighborhoodGuid;
|
||||
if (hasInvite)
|
||||
{
|
||||
// Populate invite details from the pending invite
|
||||
for (auto const& invite : neighborhood->GetPendingInvites())
|
||||
for (auto const& invite : foundNeighborhood->GetPendingInvites())
|
||||
{
|
||||
if (invite.InviteeGuid == player->GetGUID())
|
||||
{
|
||||
response.InviterGuid = invite.InviterGuid;
|
||||
response.InviteTime = invite.InviteTime;
|
||||
foundInvite = &invite;
|
||||
break;
|
||||
}
|
||||
}
|
||||
response.NeighborhoodName = neighborhood->GetName();
|
||||
}
|
||||
|
||||
WorldPackets::Neighborhood::NeighborhoodPlayerGetInviteResponse response;
|
||||
if (foundNeighborhood && foundInvite)
|
||||
{
|
||||
response.Result = static_cast<uint32>(HOUSING_RESULT_SUCCESS);
|
||||
response.NeighborhoodGuid = foundNeighborhood->GetGuid();
|
||||
response.InviterGuid = foundInvite->InviterGuid;
|
||||
response.InviteTime = foundInvite->InviteTime;
|
||||
response.NeighborhoodName = foundNeighborhood->GetName();
|
||||
}
|
||||
else
|
||||
{
|
||||
response.Result = static_cast<uint32>(HOUSING_RESULT_NOT_ALLOWED);
|
||||
}
|
||||
SendPacket(response.Write());
|
||||
|
||||
TC_LOG_DEBUG("housing", "Player {} {} a pending invite to neighborhood {}",
|
||||
player->GetGUID().ToString(), hasInvite ? "has" : "does not have",
|
||||
neighborhoodPlayerGetInvite.NeighborhoodGuid.ToString());
|
||||
TC_LOG_DEBUG("housing", "Player {} {} a pending invite",
|
||||
player->GetGUID().ToString(), foundNeighborhood ? "has" : "does not have");
|
||||
}
|
||||
|
||||
void WorldSession::HandleNeighborhoodGetInvites(WorldPackets::Neighborhood::NeighborhoodGetInvites const& neighborhoodGetInvites)
|
||||
void WorldSession::HandleNeighborhoodGetInvites(WorldPackets::Neighborhood::NeighborhoodGetInvites const& /*neighborhoodGetInvites*/)
|
||||
{
|
||||
Player* player = GetPlayer();
|
||||
if (!player)
|
||||
return;
|
||||
|
||||
TC_LOG_INFO("housing", "CMSG_NEIGHBORHOOD_GET_INVITES NeighborhoodGuid: {}",
|
||||
neighborhoodGetInvites.NeighborhoodGuid.ToString());
|
||||
TC_LOG_INFO("housing", "CMSG_NEIGHBORHOOD_GET_INVITES for player {}",
|
||||
player->GetGUID().ToString());
|
||||
|
||||
Neighborhood* neighborhood = sNeighborhoodMgr.GetNeighborhood(neighborhoodGetInvites.NeighborhoodGuid);
|
||||
// Client sends empty packet ? derive neighborhood from player's housing context
|
||||
Housing* housing = player->GetHousing();
|
||||
if (!housing)
|
||||
{
|
||||
WorldPackets::Neighborhood::NeighborhoodGetInvitesResponse response;
|
||||
response.Result = static_cast<uint32>(HOUSING_RESULT_HOUSE_NOT_FOUND);
|
||||
SendPacket(response.Write());
|
||||
return;
|
||||
}
|
||||
|
||||
ObjectGuid neighborhoodGuid = housing->GetNeighborhoodGuid();
|
||||
Neighborhood* neighborhood = sNeighborhoodMgr.GetNeighborhood(neighborhoodGuid);
|
||||
if (!neighborhood)
|
||||
{
|
||||
WorldPackets::Neighborhood::NeighborhoodGetInvitesResponse response;
|
||||
@@ -829,7 +891,7 @@ void WorldSession::HandleNeighborhoodGetInvites(WorldPackets::Neighborhood::Neig
|
||||
SendPacket(response.Write());
|
||||
|
||||
TC_LOG_DEBUG("housing", "HandleNeighborhoodGetInvites: Neighborhood {} not found",
|
||||
neighborhoodGetInvites.NeighborhoodGuid.ToString());
|
||||
neighborhoodGuid.ToString());
|
||||
return;
|
||||
}
|
||||
|
||||
@@ -841,7 +903,7 @@ void WorldSession::HandleNeighborhoodGetInvites(WorldPackets::Neighborhood::Neig
|
||||
SendPacket(response.Write());
|
||||
|
||||
TC_LOG_DEBUG("housing", "HandleNeighborhoodGetInvites: Player {} lacks permission for neighborhood {}",
|
||||
player->GetGUID().ToString(), neighborhoodGetInvites.NeighborhoodGuid.ToString());
|
||||
player->GetGUID().ToString(), neighborhoodGuid.ToString());
|
||||
return;
|
||||
}
|
||||
|
||||
@@ -861,7 +923,7 @@ void WorldSession::HandleNeighborhoodGetInvites(WorldPackets::Neighborhood::Neig
|
||||
SendPacket(response.Write());
|
||||
|
||||
TC_LOG_DEBUG("housing", "Neighborhood {} has {} pending invites sent",
|
||||
neighborhoodGetInvites.NeighborhoodGuid.ToString(), uint32(invites.size()));
|
||||
neighborhoodGuid.ToString(), uint32(invites.size()));
|
||||
}
|
||||
|
||||
void WorldSession::HandleNeighborhoodBuyHouse(WorldPackets::Neighborhood::NeighborhoodBuyHouse const& neighborhoodBuyHouse)
|
||||
@@ -981,44 +1043,43 @@ void WorldSession::HandleNeighborhoodMoveHouse(WorldPackets::Neighborhood::Neigh
|
||||
if (!player)
|
||||
return;
|
||||
|
||||
TC_LOG_INFO("housing", "CMSG_NEIGHBORHOOD_MOVE_HOUSE SourcePlotGuid: {}, NewPlotIndex: {}",
|
||||
neighborhoodMoveHouse.SourcePlotGuid.ToString(), neighborhoodMoveHouse.NewPlotIndex);
|
||||
TC_LOG_INFO("housing", "CMSG_NEIGHBORHOOD_MOVE_HOUSE NeighborhoodGuid: {}, PlotGuid: {}",
|
||||
neighborhoodMoveHouse.NeighborhoodGuid.ToString(), neighborhoodMoveHouse.PlotGuid.ToString());
|
||||
|
||||
Housing* housing = player->GetHousing();
|
||||
if (!housing)
|
||||
{
|
||||
WorldPackets::Neighborhood::NeighborhoodMoveHouseResponse response;
|
||||
response.Result = static_cast<uint32>(HOUSING_RESULT_HOUSE_NOT_FOUND);
|
||||
SendPacket(response.Write());
|
||||
|
||||
TC_LOG_DEBUG("housing", "HandleNeighborhoodMoveHouse: Player {} has no house",
|
||||
player->GetGUID().ToString());
|
||||
return;
|
||||
}
|
||||
|
||||
Neighborhood* neighborhood = sNeighborhoodMgr.GetNeighborhood(housing->GetNeighborhoodGuid());
|
||||
Neighborhood* neighborhood = sNeighborhoodMgr.GetNeighborhood(neighborhoodMoveHouse.NeighborhoodGuid);
|
||||
if (!neighborhood)
|
||||
{
|
||||
WorldPackets::Neighborhood::NeighborhoodMoveHouseResponse response;
|
||||
response.Result = static_cast<uint32>(HOUSING_RESULT_NEIGHBORHOOD_NOT_FOUND);
|
||||
SendPacket(response.Write());
|
||||
|
||||
TC_LOG_DEBUG("housing", "HandleNeighborhoodMoveHouse: Neighborhood not found for player {}",
|
||||
player->GetGUID().ToString());
|
||||
TC_LOG_DEBUG("housing", "HandleNeighborhoodMoveHouse: Neighborhood {} not found",
|
||||
neighborhoodMoveHouse.NeighborhoodGuid.ToString());
|
||||
return;
|
||||
}
|
||||
|
||||
HousingResult result = neighborhood->MoveHouse(neighborhoodMoveHouse.SourcePlotGuid, neighborhoodMoveHouse.NewPlotIndex);
|
||||
// Resolve the target plot index from the PlotGuid
|
||||
uint8 targetPlotIndex = INVALID_PLOT_INDEX;
|
||||
for (auto const& plot : neighborhood->GetPlots())
|
||||
{
|
||||
if (plot.PlotGuid == neighborhoodMoveHouse.PlotGuid)
|
||||
{
|
||||
targetPlotIndex = plot.PlotIndex;
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
HousingResult result = neighborhood->MoveHouse(player->GetGUID(), targetPlotIndex);
|
||||
|
||||
WorldPackets::Neighborhood::NeighborhoodMoveHouseResponse response;
|
||||
response.Result = static_cast<uint32>(result);
|
||||
response.NeighborhoodGuid = housing->GetNeighborhoodGuid();
|
||||
response.NewPlotIndex = neighborhoodMoveHouse.NewPlotIndex;
|
||||
response.NeighborhoodGuid = neighborhoodMoveHouse.NeighborhoodGuid;
|
||||
response.NewPlotIndex = targetPlotIndex;
|
||||
SendPacket(response.Write());
|
||||
|
||||
TC_LOG_DEBUG("housing", "MoveHouse result: {} for plot {} to index {}",
|
||||
uint32(result), neighborhoodMoveHouse.SourcePlotGuid.ToString(),
|
||||
neighborhoodMoveHouse.NewPlotIndex);
|
||||
TC_LOG_DEBUG("housing", "MoveHouse result: {} to plot {} in neighborhood {}",
|
||||
uint32(result), neighborhoodMoveHouse.PlotGuid.ToString(),
|
||||
neighborhoodMoveHouse.NeighborhoodGuid.ToString());
|
||||
}
|
||||
|
||||
void WorldSession::HandleNeighborhoodOpenCornerstoneUI(WorldPackets::Neighborhood::NeighborhoodOpenCornerstoneUI const& neighborhoodOpenCornerstoneUI)
|
||||
@@ -1027,79 +1088,58 @@ void WorldSession::HandleNeighborhoodOpenCornerstoneUI(WorldPackets::Neighborhoo
|
||||
if (!player)
|
||||
return;
|
||||
|
||||
TC_LOG_DEBUG("housing", "CMSG_NEIGHBORHOOD_OPEN_CORNERSTONE_UI CornerstoneGuid: {}",
|
||||
neighborhoodOpenCornerstoneUI.CornerstoneGuid.ToString());
|
||||
TC_LOG_DEBUG("housing", "CMSG_NEIGHBORHOOD_OPEN_CORNERSTONE_UI PlotIndex: {}, NeighborhoodGuid: {}",
|
||||
neighborhoodOpenCornerstoneUI.PlotIndex, neighborhoodOpenCornerstoneUI.NeighborhoodGuid.ToString());
|
||||
|
||||
// Get the HousingMap and its neighborhood
|
||||
HousingMap* housingMap = dynamic_cast<HousingMap*>(player->GetMap());
|
||||
if (!housingMap || !housingMap->GetNeighborhood())
|
||||
Neighborhood* neighborhood = sNeighborhoodMgr.GetNeighborhood(neighborhoodOpenCornerstoneUI.NeighborhoodGuid);
|
||||
if (!neighborhood)
|
||||
{
|
||||
WorldPackets::Neighborhood::NeighborhoodOpenCornerstoneUIResponse response;
|
||||
response.Result = static_cast<uint32>(HOUSING_RESULT_NEIGHBORHOOD_NOT_FOUND);
|
||||
SendPacket(response.Write());
|
||||
|
||||
TC_LOG_DEBUG("housing", "HandleNeighborhoodOpenCornerstoneUI: Player {} not on a housing map",
|
||||
player->GetGUID().ToString());
|
||||
TC_LOG_DEBUG("housing", "HandleNeighborhoodOpenCornerstoneUI: Neighborhood {} not found",
|
||||
neighborhoodOpenCornerstoneUI.NeighborhoodGuid.ToString());
|
||||
return;
|
||||
}
|
||||
|
||||
Neighborhood* neighborhood = housingMap->GetNeighborhood();
|
||||
|
||||
// Find the cornerstone GO to determine its position
|
||||
GameObject* cornerstone = player->GetMap()->GetGameObject(neighborhoodOpenCornerstoneUI.CornerstoneGuid);
|
||||
if (!cornerstone)
|
||||
{
|
||||
WorldPackets::Neighborhood::NeighborhoodOpenCornerstoneUIResponse response;
|
||||
response.Result = static_cast<uint32>(HOUSING_RESULT_RPC_ERROR);
|
||||
SendPacket(response.Write());
|
||||
|
||||
TC_LOG_DEBUG("housing", "HandleNeighborhoodOpenCornerstoneUI: Cornerstone GO {} not found",
|
||||
neighborhoodOpenCornerstoneUI.CornerstoneGuid.ToString());
|
||||
return;
|
||||
}
|
||||
|
||||
// Match the cornerstone's position to a plot index by finding the nearest plot
|
||||
// Look up cost from plot data using the provided PlotIndex
|
||||
uint32 neighborhoodMapId = neighborhood->GetNeighborhoodMapID();
|
||||
std::vector<NeighborhoodPlotData const*> plots = sHousingMgr.GetPlotsForMap(neighborhoodMapId);
|
||||
|
||||
uint8 matchedPlotIndex = INVALID_PLOT_INDEX;
|
||||
uint64 matchedCost = 0;
|
||||
float closestDist = 5.0f; // Max matching distance ? cornerstone should be very close to its plot position
|
||||
uint64 plotCost = 0;
|
||||
bool plotFound = false;
|
||||
|
||||
for (NeighborhoodPlotData const* plot : plots)
|
||||
{
|
||||
float dx = cornerstone->GetPositionX() - plot->CornerstonePosition[0];
|
||||
float dy = cornerstone->GetPositionY() - plot->CornerstonePosition[1];
|
||||
float dist = std::sqrt(dx * dx + dy * dy);
|
||||
|
||||
if (dist < closestDist)
|
||||
if (plot->PlotIndex == neighborhoodOpenCornerstoneUI.PlotIndex)
|
||||
{
|
||||
closestDist = dist;
|
||||
matchedPlotIndex = static_cast<uint8>(plot->PlotIndex);
|
||||
matchedCost = plot->Cost;
|
||||
plotCost = plot->Cost;
|
||||
plotFound = true;
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
if (matchedPlotIndex == INVALID_PLOT_INDEX)
|
||||
if (!plotFound)
|
||||
{
|
||||
WorldPackets::Neighborhood::NeighborhoodOpenCornerstoneUIResponse response;
|
||||
response.Result = static_cast<uint32>(HOUSING_RESULT_RPC_ERROR);
|
||||
SendPacket(response.Write());
|
||||
|
||||
TC_LOG_ERROR("housing", "HandleNeighborhoodOpenCornerstoneUI: No plot matched cornerstone at ({}, {}, {})",
|
||||
cornerstone->GetPositionX(), cornerstone->GetPositionY(), cornerstone->GetPositionZ());
|
||||
TC_LOG_ERROR("housing", "HandleNeighborhoodOpenCornerstoneUI: PlotIndex {} not found in neighborhood map {}",
|
||||
neighborhoodOpenCornerstoneUI.PlotIndex, neighborhoodMapId);
|
||||
return;
|
||||
}
|
||||
|
||||
WorldPackets::Neighborhood::NeighborhoodOpenCornerstoneUIResponse response;
|
||||
response.Result = static_cast<uint32>(HOUSING_RESULT_SUCCESS);
|
||||
response.NeighborhoodGuid = neighborhood->GetGuid();
|
||||
response.PlotIndex = matchedPlotIndex;
|
||||
response.Cost = matchedCost;
|
||||
response.NeighborhoodGuid = neighborhoodOpenCornerstoneUI.NeighborhoodGuid;
|
||||
response.PlotIndex = static_cast<uint8>(neighborhoodOpenCornerstoneUI.PlotIndex);
|
||||
response.Cost = plotCost;
|
||||
SendPacket(response.Write());
|
||||
|
||||
TC_LOG_DEBUG("housing", "HandleNeighborhoodOpenCornerstoneUI: Player {} opened cornerstone UI for plot {} (cost: {}) in neighborhood '{}'",
|
||||
player->GetGUID().ToString(), matchedPlotIndex, matchedCost, neighborhood->GetName());
|
||||
player->GetGUID().ToString(), neighborhoodOpenCornerstoneUI.PlotIndex, plotCost, neighborhood->GetName());
|
||||
}
|
||||
|
||||
void WorldSession::HandleNeighborhoodOfferOwnership(WorldPackets::Neighborhood::NeighborhoodOfferOwnership const& neighborhoodOfferOwnership)
|
||||
@@ -1108,10 +1148,21 @@ void WorldSession::HandleNeighborhoodOfferOwnership(WorldPackets::Neighborhood::
|
||||
if (!player)
|
||||
return;
|
||||
|
||||
TC_LOG_INFO("housing", "CMSG_NEIGHBORHOOD_OFFER_OWNERSHIP NeighborhoodGuid: {}, NewOwnerGuid: {}",
|
||||
neighborhoodOfferOwnership.NeighborhoodGuid.ToString(), neighborhoodOfferOwnership.NewOwnerGuid.ToString());
|
||||
Housing* housing = player->GetHousing();
|
||||
if (!housing)
|
||||
{
|
||||
WorldPackets::Neighborhood::NeighborhoodOfferOwnershipResponse response;
|
||||
response.Result = static_cast<uint32>(HOUSING_RESULT_HOUSE_NOT_FOUND);
|
||||
SendPacket(response.Write());
|
||||
return;
|
||||
}
|
||||
|
||||
Neighborhood* neighborhood = sNeighborhoodMgr.GetNeighborhood(neighborhoodOfferOwnership.NeighborhoodGuid);
|
||||
ObjectGuid neighborhoodGuid = housing->GetNeighborhoodGuid();
|
||||
|
||||
TC_LOG_INFO("housing", "CMSG_NEIGHBORHOOD_OFFER_OWNERSHIP NeighborhoodGuid: {}, NewOwnerGuid: {}",
|
||||
neighborhoodGuid.ToString(), neighborhoodOfferOwnership.NewOwnerGuid.ToString());
|
||||
|
||||
Neighborhood* neighborhood = sNeighborhoodMgr.GetNeighborhood(neighborhoodGuid);
|
||||
if (!neighborhood)
|
||||
{
|
||||
WorldPackets::Neighborhood::NeighborhoodOfferOwnershipResponse response;
|
||||
@@ -1119,7 +1170,7 @@ void WorldSession::HandleNeighborhoodOfferOwnership(WorldPackets::Neighborhood::
|
||||
SendPacket(response.Write());
|
||||
|
||||
TC_LOG_DEBUG("housing", "HandleNeighborhoodOfferOwnership: Neighborhood {} not found",
|
||||
neighborhoodOfferOwnership.NeighborhoodGuid.ToString());
|
||||
neighborhoodGuid.ToString());
|
||||
return;
|
||||
}
|
||||
|
||||
@@ -1131,7 +1182,7 @@ void WorldSession::HandleNeighborhoodOfferOwnership(WorldPackets::Neighborhood::
|
||||
SendPacket(response.Write());
|
||||
|
||||
TC_LOG_DEBUG("housing", "HandleNeighborhoodOfferOwnership: Player {} is not owner of neighborhood {}",
|
||||
player->GetGUID().ToString(), neighborhoodOfferOwnership.NeighborhoodGuid.ToString());
|
||||
player->GetGUID().ToString(), neighborhoodGuid.ToString());
|
||||
return;
|
||||
}
|
||||
|
||||
@@ -1139,7 +1190,7 @@ void WorldSession::HandleNeighborhoodOfferOwnership(WorldPackets::Neighborhood::
|
||||
|
||||
WorldPackets::Neighborhood::NeighborhoodOfferOwnershipResponse response;
|
||||
response.Result = static_cast<uint32>(result);
|
||||
response.NeighborhoodGuid = neighborhoodOfferOwnership.NeighborhoodGuid;
|
||||
response.NeighborhoodGuid = neighborhoodGuid;
|
||||
response.NewOwnerGuid = neighborhoodOfferOwnership.NewOwnerGuid;
|
||||
SendPacket(response.Write());
|
||||
|
||||
@@ -1149,7 +1200,7 @@ void WorldSession::HandleNeighborhoodOfferOwnership(WorldPackets::Neighborhood::
|
||||
if (Player* newOwner = ObjectAccessor::FindPlayer(neighborhoodOfferOwnership.NewOwnerGuid))
|
||||
{
|
||||
WorldPackets::Housing::HousingSvcsNeighborhoodOwnershipTransferredResponse transferNotification;
|
||||
transferNotification.NeighborhoodGuid = neighborhoodOfferOwnership.NeighborhoodGuid;
|
||||
transferNotification.NeighborhoodGuid = neighborhoodGuid;
|
||||
transferNotification.NewOwnerGuid = neighborhoodOfferOwnership.NewOwnerGuid;
|
||||
newOwner->SendDirectMessage(transferNotification.Write());
|
||||
}
|
||||
@@ -1170,7 +1221,7 @@ void WorldSession::HandleNeighborhoodOfferOwnership(WorldPackets::Neighborhood::
|
||||
|
||||
TC_LOG_DEBUG("housing", "TransferOwnership result: {} to player {} for neighborhood {}",
|
||||
uint32(result), neighborhoodOfferOwnership.NewOwnerGuid.ToString(),
|
||||
neighborhoodOfferOwnership.NeighborhoodGuid.ToString());
|
||||
neighborhoodGuid.ToString());
|
||||
}
|
||||
|
||||
void WorldSession::HandleNeighborhoodGetRoster(WorldPackets::Neighborhood::NeighborhoodGetRoster const& neighborhoodGetRoster)
|
||||
@@ -1232,8 +1283,8 @@ void WorldSession::HandleNeighborhoodEvictPlot(WorldPackets::Neighborhood::Neigh
|
||||
if (!player)
|
||||
return;
|
||||
|
||||
TC_LOG_INFO("housing", "CMSG_NEIGHBORHOOD_EVICT_PLOTNeighborhoodGuid: {}, PlotGuid: {}",
|
||||
neighborhoodEvictPlot.NeighborhoodGuid.ToString(), neighborhoodEvictPlot.PlotGuid.ToString());
|
||||
TC_LOG_INFO("housing", "CMSG_NEIGHBORHOOD_EVICT_PLOT PlotIndex: {}, NeighborhoodGuid: {}",
|
||||
neighborhoodEvictPlot.PlotIndex, neighborhoodEvictPlot.NeighborhoodGuid.ToString());
|
||||
|
||||
Neighborhood* neighborhood = sNeighborhoodMgr.GetNeighborhood(neighborhoodEvictPlot.NeighborhoodGuid);
|
||||
if (!neighborhood)
|
||||
@@ -1259,23 +1310,25 @@ void WorldSession::HandleNeighborhoodEvictPlot(WorldPackets::Neighborhood::Neigh
|
||||
return;
|
||||
}
|
||||
|
||||
// Capture the evicted player's GUID before eviction clears the plot
|
||||
// Find the plot by index and capture evicted player's GUID
|
||||
ObjectGuid evictedPlayerGuid;
|
||||
ObjectGuid plotGuid;
|
||||
for (auto const& plot : neighborhood->GetPlots())
|
||||
{
|
||||
if (plot.OwnerGuid == neighborhoodEvictPlot.PlotGuid)
|
||||
if (plot.PlotIndex == neighborhoodEvictPlot.PlotIndex)
|
||||
{
|
||||
evictedPlayerGuid = plot.OwnerGuid;
|
||||
plotGuid = plot.PlotGuid;
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
HousingResult result = neighborhood->EvictPlayer(neighborhoodEvictPlot.PlotGuid);
|
||||
HousingResult result = neighborhood->EvictPlayer(evictedPlayerGuid);
|
||||
|
||||
WorldPackets::Neighborhood::NeighborhoodEvictPlotResponse response;
|
||||
response.Result = static_cast<uint32>(result);
|
||||
response.NeighborhoodGuid = neighborhoodEvictPlot.NeighborhoodGuid;
|
||||
response.PlotGuid = neighborhoodEvictPlot.PlotGuid;
|
||||
response.PlotGuid = plotGuid;
|
||||
SendPacket(response.Write());
|
||||
|
||||
// Send eviction notice to the evicted player and broadcast roster update
|
||||
@@ -1287,7 +1340,7 @@ void WorldSession::HandleNeighborhoodEvictPlot(WorldPackets::Neighborhood::Neigh
|
||||
{
|
||||
WorldPackets::Neighborhood::NeighborhoodEvictPlotNotice notice;
|
||||
notice.NeighborhoodGuid = neighborhoodEvictPlot.NeighborhoodGuid;
|
||||
notice.PlotGuid = neighborhoodEvictPlot.PlotGuid;
|
||||
notice.PlotGuid = plotGuid;
|
||||
evictedPlayer->SendDirectMessage(notice.Write());
|
||||
}
|
||||
}
|
||||
@@ -1306,7 +1359,56 @@ void WorldSession::HandleNeighborhoodEvictPlot(WorldPackets::Neighborhood::Neigh
|
||||
}
|
||||
}
|
||||
|
||||
TC_LOG_DEBUG("housing", "EvictPlayer result: {} for plot {} in neighborhood {}",
|
||||
uint32(result), neighborhoodEvictPlot.PlotGuid.ToString(),
|
||||
TC_LOG_DEBUG("housing", "EvictPlayer result: {} for plot index {} in neighborhood {}",
|
||||
uint32(result), neighborhoodEvictPlot.PlotIndex,
|
||||
neighborhoodEvictPlot.NeighborhoodGuid.ToString());
|
||||
}
|
||||
|
||||
// ============================================================
|
||||
// Neighborhood Initiative System
|
||||
// ============================================================
|
||||
|
||||
void WorldSession::HandleNeighborhoodInitiativeServiceStatusCheck(WorldPackets::Neighborhood::NeighborhoodInitiativeServiceStatusCheck const& /*packet*/)
|
||||
{
|
||||
Player* player = GetPlayer();
|
||||
if (!player)
|
||||
return;
|
||||
|
||||
TC_LOG_DEBUG("housing", "CMSG_NEIGHBORHOOD_INITIATIVE_SERVICE_STATUS_CHECK for player {}",
|
||||
player->GetGUID().ToString());
|
||||
|
||||
// Respond with initiative service status (service is available)
|
||||
WorldPackets::Housing::InitiativeServiceStatus response;
|
||||
response.ServiceEnabled = true;
|
||||
SendPacket(response.Write());
|
||||
}
|
||||
|
||||
void WorldSession::HandleGetAvailableInitiativeRequest(WorldPackets::Neighborhood::GetAvailableInitiativeRequest const& getAvailableInitiativeRequest)
|
||||
{
|
||||
Player* player = GetPlayer();
|
||||
if (!player)
|
||||
return;
|
||||
|
||||
TC_LOG_DEBUG("housing", "CMSG_GET_AVAILABLE_INITIATIVE_REQUEST NeighborhoodGuid: {}",
|
||||
getAvailableInitiativeRequest.NeighborhoodGuid.ToString());
|
||||
|
||||
// Respond with empty initiative list for now
|
||||
WorldPackets::Housing::GetPlayerInitiativeInfoResult response;
|
||||
response.Result = static_cast<uint32>(HOUSING_RESULT_SUCCESS);
|
||||
SendPacket(response.Write());
|
||||
}
|
||||
|
||||
void WorldSession::HandleGetInitiativeActivityLogRequest(WorldPackets::Neighborhood::GetInitiativeActivityLogRequest const& getInitiativeActivityLogRequest)
|
||||
{
|
||||
Player* player = GetPlayer();
|
||||
if (!player)
|
||||
return;
|
||||
|
||||
TC_LOG_DEBUG("housing", "CMSG_GET_INITIATIVE_ACTIVITY_LOG_REQUEST NeighborhoodGuid: {}",
|
||||
getInitiativeActivityLogRequest.NeighborhoodGuid.ToString());
|
||||
|
||||
// Respond with empty activity log
|
||||
WorldPackets::Housing::GetInitiativeActivityLogResult response;
|
||||
response.Result = static_cast<uint32>(HOUSING_RESULT_SUCCESS);
|
||||
SendPacket(response.Write());
|
||||
}
|
||||
|
||||
@@ -39,6 +39,7 @@ public:
|
||||
struct PlotInfo
|
||||
{
|
||||
uint8 PlotIndex = 0;
|
||||
ObjectGuid PlotGuid;
|
||||
ObjectGuid OwnerGuid;
|
||||
ObjectGuid HouseGuid;
|
||||
ObjectGuid OwnerBnetGuid;
|
||||
@@ -82,7 +83,7 @@ public:
|
||||
// Plot management
|
||||
HousingResult PurchasePlot(ObjectGuid playerGuid, uint8 plotIndex);
|
||||
void UpdatePlotHouseInfo(uint8 plotIndex, ObjectGuid houseGuid, ObjectGuid ownerBnetGuid);
|
||||
HousingResult MoveHouse(ObjectGuid sourcePlotGuid, uint8 newPlotIndex);
|
||||
HousingResult MoveHouse(ObjectGuid sourcePlotOwner, uint8 newPlotIndex);
|
||||
PlotInfo const* GetPlotInfo(uint8 plotIndex) const;
|
||||
std::vector<PlotInfo> const& GetPlots() const { return _plots; }
|
||||
|
||||
|
||||
@@ -274,6 +274,16 @@ std::string NeighborhoodMgr::GetNeighborhoodName(ObjectGuid neighborhoodGuid) co
|
||||
return "";
|
||||
}
|
||||
|
||||
Neighborhood* NeighborhoodMgr::FindNeighborhoodWithPendingInvite(ObjectGuid playerGuid)
|
||||
{
|
||||
for (auto const& [guid, neighborhood] : _neighborhoods)
|
||||
{
|
||||
if (neighborhood->HasPendingInvite(playerGuid))
|
||||
return neighborhood.get();
|
||||
}
|
||||
return nullptr;
|
||||
}
|
||||
|
||||
Neighborhood* NeighborhoodMgr::FindOrCreateTutorialNeighborhood(ObjectGuid playerGuid, uint32 teamId)
|
||||
{
|
||||
// Check if player already belongs to a neighborhood
|
||||
|
||||
@@ -52,6 +52,7 @@ public:
|
||||
std::vector<Neighborhood*> GetPublicNeighborhoods() const;
|
||||
std::vector<Neighborhood*> GetNeighborhoodsForPlayer(ObjectGuid playerGuid) const;
|
||||
std::string GetNeighborhoodName(ObjectGuid neighborhoodGuid) const;
|
||||
Neighborhood* FindNeighborhoodWithPendingInvite(ObjectGuid playerGuid);
|
||||
|
||||
// Tutorial support
|
||||
Neighborhood* FindOrCreateTutorialNeighborhood(ObjectGuid playerGuid, uint32 teamId);
|
||||
|
||||
@@ -243,9 +243,9 @@ namespace WorldPackets::Housing
|
||||
void HousingSvcsGuildCreateNeighborhood::Read()
|
||||
{
|
||||
_worldPacket >> NeighborhoodTypeID;
|
||||
_worldPacket >> Flags;
|
||||
_worldPacket >> SizedString::BitsSize<7>(NeighborhoodName);
|
||||
|
||||
_worldPacket >> Flags;
|
||||
_worldPacket >> SizedString::Data(NeighborhoodName);
|
||||
}
|
||||
|
||||
@@ -936,6 +936,29 @@ namespace WorldPackets::Housing
|
||||
return &_worldPacket;
|
||||
}
|
||||
|
||||
// ============================================================
|
||||
// Initiative System SMSG Responses (0x4203xx)
|
||||
// ============================================================
|
||||
|
||||
WorldPacket const* InitiativeServiceStatus::Write()
|
||||
{
|
||||
_worldPacket.WriteBit(ServiceEnabled);
|
||||
_worldPacket.FlushBits();
|
||||
return &_worldPacket;
|
||||
}
|
||||
|
||||
WorldPacket const* GetPlayerInitiativeInfoResult::Write()
|
||||
{
|
||||
_worldPacket << uint32(Result);
|
||||
return &_worldPacket;
|
||||
}
|
||||
|
||||
WorldPacket const* GetInitiativeActivityLogResult::Write()
|
||||
{
|
||||
_worldPacket << uint32(Result);
|
||||
return &_worldPacket;
|
||||
}
|
||||
|
||||
} // namespace WorldPackets::Housing
|
||||
|
||||
// ============================================================
|
||||
@@ -978,7 +1001,6 @@ namespace WorldPackets::Neighborhood
|
||||
|
||||
void NeighborhoodUpdateName::Read()
|
||||
{
|
||||
_worldPacket >> NeighborhoodGuid;
|
||||
_worldPacket >> SizedString::BitsSize<7>(NewName);
|
||||
|
||||
_worldPacket >> SizedString::Data(NewName);
|
||||
@@ -992,25 +1014,21 @@ namespace WorldPackets::Neighborhood
|
||||
|
||||
void NeighborhoodAddSecondaryOwner::Read()
|
||||
{
|
||||
_worldPacket >> NeighborhoodGuid;
|
||||
_worldPacket >> PlayerGuid;
|
||||
}
|
||||
|
||||
void NeighborhoodRemoveSecondaryOwner::Read()
|
||||
{
|
||||
_worldPacket >> NeighborhoodGuid;
|
||||
_worldPacket >> PlayerGuid;
|
||||
}
|
||||
|
||||
void NeighborhoodInviteResident::Read()
|
||||
{
|
||||
_worldPacket >> NeighborhoodGuid;
|
||||
_worldPacket >> PlayerGuid;
|
||||
}
|
||||
|
||||
void NeighborhoodCancelInvitation::Read()
|
||||
{
|
||||
_worldPacket >> NeighborhoodGuid;
|
||||
_worldPacket >> InviteeGuid;
|
||||
}
|
||||
|
||||
@@ -1019,36 +1037,27 @@ namespace WorldPackets::Neighborhood
|
||||
_worldPacket >> NeighborhoodGuid;
|
||||
}
|
||||
|
||||
void NeighborhoodPlayerGetInvite::Read()
|
||||
{
|
||||
_worldPacket >> NeighborhoodGuid;
|
||||
}
|
||||
|
||||
void NeighborhoodGetInvites::Read()
|
||||
{
|
||||
_worldPacket >> NeighborhoodGuid;
|
||||
}
|
||||
|
||||
void NeighborhoodBuyHouse::Read()
|
||||
{
|
||||
_worldPacket >> NeighborhoodGuid;
|
||||
_worldPacket >> PlotIndex;
|
||||
_worldPacket >> NeighborhoodGuid;
|
||||
_worldPacket >> PlotGuid;
|
||||
}
|
||||
|
||||
void NeighborhoodMoveHouse::Read()
|
||||
{
|
||||
_worldPacket >> SourcePlotGuid;
|
||||
_worldPacket >> NewPlotIndex;
|
||||
_worldPacket >> NeighborhoodGuid;
|
||||
_worldPacket >> PlotGuid;
|
||||
}
|
||||
|
||||
void NeighborhoodOpenCornerstoneUI::Read()
|
||||
{
|
||||
_worldPacket >> CornerstoneGuid;
|
||||
_worldPacket >> PlotIndex;
|
||||
_worldPacket >> NeighborhoodGuid;
|
||||
}
|
||||
|
||||
void NeighborhoodOfferOwnership::Read()
|
||||
{
|
||||
_worldPacket >> NeighborhoodGuid;
|
||||
_worldPacket >> NewOwnerGuid;
|
||||
}
|
||||
|
||||
@@ -1059,8 +1068,8 @@ namespace WorldPackets::Neighborhood
|
||||
|
||||
void NeighborhoodEvictPlot::Read()
|
||||
{
|
||||
_worldPacket >> PlotIndex;
|
||||
_worldPacket >> NeighborhoodGuid;
|
||||
_worldPacket >> PlotGuid;
|
||||
}
|
||||
|
||||
// ============================================================
|
||||
@@ -1314,4 +1323,16 @@ namespace WorldPackets::Neighborhood
|
||||
return &_worldPacket;
|
||||
}
|
||||
|
||||
// --- Initiative System ---
|
||||
|
||||
void GetAvailableInitiativeRequest::Read()
|
||||
{
|
||||
_worldPacket >> NeighborhoodGuid;
|
||||
}
|
||||
|
||||
void GetInitiativeActivityLogRequest::Read()
|
||||
{
|
||||
_worldPacket >> NeighborhoodGuid;
|
||||
}
|
||||
|
||||
} // namespace WorldPackets::Neighborhood
|
||||
|
||||
@@ -400,7 +400,7 @@ namespace WorldPackets::Housing
|
||||
|
||||
uint32 NeighborhoodTypeID = 0;
|
||||
std::string NeighborhoodName;
|
||||
uint32 Flags = 0;
|
||||
uint8 Flags = 0;
|
||||
};
|
||||
|
||||
class HousingSvcsNeighborhoodReservePlot final : public ClientPacket
|
||||
@@ -1342,6 +1342,34 @@ namespace WorldPackets::Housing
|
||||
WorldPacket const* Write() override;
|
||||
ObjectGuid NeighborhoodGuid;
|
||||
};
|
||||
|
||||
// ============================================================
|
||||
// Initiative System SMSG Responses (0x4203xx)
|
||||
// ============================================================
|
||||
|
||||
class InitiativeServiceStatus final : public ServerPacket
|
||||
{
|
||||
public:
|
||||
InitiativeServiceStatus() : ServerPacket(SMSG_INITIATIVE_SERVICE_STATUS) {}
|
||||
WorldPacket const* Write() override;
|
||||
bool ServiceEnabled = false;
|
||||
};
|
||||
|
||||
class GetPlayerInitiativeInfoResult final : public ServerPacket
|
||||
{
|
||||
public:
|
||||
GetPlayerInitiativeInfoResult() : ServerPacket(SMSG_GET_PLAYER_INITIATIVE_INFO_RESULT) {}
|
||||
WorldPacket const* Write() override;
|
||||
uint32 Result = 0;
|
||||
};
|
||||
|
||||
class GetInitiativeActivityLogResult final : public ServerPacket
|
||||
{
|
||||
public:
|
||||
GetInitiativeActivityLogResult() : ServerPacket(SMSG_GET_INITIATIVE_ACTIVITY_LOG_RESULT) {}
|
||||
WorldPacket const* Write() override;
|
||||
uint32 Result = 0;
|
||||
};
|
||||
}
|
||||
|
||||
namespace WorldPackets::Neighborhood
|
||||
@@ -1421,7 +1449,6 @@ namespace WorldPackets::Neighborhood
|
||||
|
||||
void Read() override;
|
||||
|
||||
ObjectGuid NeighborhoodGuid;
|
||||
std::string NewName;
|
||||
};
|
||||
|
||||
@@ -1443,7 +1470,6 @@ namespace WorldPackets::Neighborhood
|
||||
|
||||
void Read() override;
|
||||
|
||||
ObjectGuid NeighborhoodGuid;
|
||||
ObjectGuid PlayerGuid;
|
||||
};
|
||||
|
||||
@@ -1454,7 +1480,6 @@ namespace WorldPackets::Neighborhood
|
||||
|
||||
void Read() override;
|
||||
|
||||
ObjectGuid NeighborhoodGuid;
|
||||
ObjectGuid PlayerGuid;
|
||||
};
|
||||
|
||||
@@ -1465,7 +1490,6 @@ namespace WorldPackets::Neighborhood
|
||||
|
||||
void Read() override;
|
||||
|
||||
ObjectGuid NeighborhoodGuid;
|
||||
ObjectGuid PlayerGuid;
|
||||
};
|
||||
|
||||
@@ -1476,7 +1500,6 @@ namespace WorldPackets::Neighborhood
|
||||
|
||||
void Read() override;
|
||||
|
||||
ObjectGuid NeighborhoodGuid;
|
||||
ObjectGuid InviteeGuid;
|
||||
};
|
||||
|
||||
@@ -1495,9 +1518,7 @@ namespace WorldPackets::Neighborhood
|
||||
public:
|
||||
explicit NeighborhoodPlayerGetInvite(WorldPacket&& packet) : ClientPacket(CMSG_NEIGHBORHOOD_PLAYER_GET_INVITE, std::move(packet)) {}
|
||||
|
||||
void Read() override;
|
||||
|
||||
ObjectGuid NeighborhoodGuid;
|
||||
void Read() override {}
|
||||
};
|
||||
|
||||
class NeighborhoodGetInvites final : public ClientPacket
|
||||
@@ -1505,9 +1526,7 @@ namespace WorldPackets::Neighborhood
|
||||
public:
|
||||
explicit NeighborhoodGetInvites(WorldPacket&& packet) : ClientPacket(CMSG_NEIGHBORHOOD_GET_INVITES, std::move(packet)) {}
|
||||
|
||||
void Read() override;
|
||||
|
||||
ObjectGuid NeighborhoodGuid;
|
||||
void Read() override {}
|
||||
};
|
||||
|
||||
class NeighborhoodBuyHouse final : public ClientPacket
|
||||
@@ -1518,7 +1537,8 @@ namespace WorldPackets::Neighborhood
|
||||
void Read() override;
|
||||
|
||||
ObjectGuid NeighborhoodGuid;
|
||||
uint8 PlotIndex = 0;
|
||||
ObjectGuid PlotGuid;
|
||||
uint32 PlotIndex = 0;
|
||||
};
|
||||
|
||||
class NeighborhoodMoveHouse final : public ClientPacket
|
||||
@@ -1528,8 +1548,8 @@ namespace WorldPackets::Neighborhood
|
||||
|
||||
void Read() override;
|
||||
|
||||
ObjectGuid SourcePlotGuid;
|
||||
uint8 NewPlotIndex = 0;
|
||||
ObjectGuid NeighborhoodGuid;
|
||||
ObjectGuid PlotGuid;
|
||||
};
|
||||
|
||||
class NeighborhoodOpenCornerstoneUI final : public ClientPacket
|
||||
@@ -1539,7 +1559,8 @@ namespace WorldPackets::Neighborhood
|
||||
|
||||
void Read() override;
|
||||
|
||||
ObjectGuid CornerstoneGuid;
|
||||
ObjectGuid NeighborhoodGuid;
|
||||
uint32 PlotIndex = 0;
|
||||
};
|
||||
|
||||
class NeighborhoodOfferOwnership final : public ClientPacket
|
||||
@@ -1549,7 +1570,6 @@ namespace WorldPackets::Neighborhood
|
||||
|
||||
void Read() override;
|
||||
|
||||
ObjectGuid NeighborhoodGuid;
|
||||
ObjectGuid NewOwnerGuid;
|
||||
};
|
||||
|
||||
@@ -1571,7 +1591,7 @@ namespace WorldPackets::Neighborhood
|
||||
void Read() override;
|
||||
|
||||
ObjectGuid NeighborhoodGuid;
|
||||
ObjectGuid PlotGuid;
|
||||
uint32 PlotIndex = 0;
|
||||
};
|
||||
|
||||
// ============================================================
|
||||
@@ -1871,6 +1891,30 @@ namespace WorldPackets::Neighborhood
|
||||
ObjectGuid NeighborhoodGuid;
|
||||
ObjectGuid PlotGuid;
|
||||
};
|
||||
// --- Initiative System ---
|
||||
|
||||
class NeighborhoodInitiativeServiceStatusCheck final : public ClientPacket
|
||||
{
|
||||
public:
|
||||
NeighborhoodInitiativeServiceStatusCheck(WorldPacket&& packet) : ClientPacket(CMSG_NEIGHBORHOOD_INITIATIVE_SERVICE_STATUS_CHECK, std::move(packet)) {}
|
||||
void Read() override {}
|
||||
};
|
||||
|
||||
class GetAvailableInitiativeRequest final : public ClientPacket
|
||||
{
|
||||
public:
|
||||
GetAvailableInitiativeRequest(WorldPacket&& packet) : ClientPacket(CMSG_GET_AVAILABLE_INITIATIVE_REQUEST, std::move(packet)) {}
|
||||
void Read() override;
|
||||
ObjectGuid NeighborhoodGuid;
|
||||
};
|
||||
|
||||
class GetInitiativeActivityLogRequest final : public ClientPacket
|
||||
{
|
||||
public:
|
||||
GetInitiativeActivityLogRequest(WorldPacket&& packet) : ClientPacket(CMSG_GET_INITIATIVE_ACTIVITY_LOG_REQUEST, std::move(packet)) {}
|
||||
void Read() override;
|
||||
ObjectGuid NeighborhoodGuid;
|
||||
};
|
||||
}
|
||||
|
||||
#endif // TRINITYCORE_HOUSING_PACKETS_H
|
||||
|
||||
@@ -489,12 +489,12 @@ void OpcodeTable::InitializeClientOpcodes()
|
||||
DEFINE_HANDLER(CMSG_GET_ACCOUNT_CHARACTER_LIST, STATUS_UNHANDLED, PROCESS_THREADUNSAFE, &WorldSession::Handle_NULL);
|
||||
DEFINE_HANDLER(CMSG_GET_ACCOUNT_NOTIFICATIONS, STATUS_UNHANDLED, PROCESS_THREADUNSAFE, &WorldSession::Handle_NULL);
|
||||
DEFINE_HANDLER(CMSG_GET_ALL_LICENSED_DECOR_QUANTITIES, STATUS_UNHANDLED, PROCESS_THREADUNSAFE, &WorldSession::Handle_NULL);
|
||||
DEFINE_HANDLER(CMSG_GET_AVAILABLE_INITIATIVE_REQUEST, STATUS_UNHANDLED, PROCESS_THREADUNSAFE, &WorldSession::Handle_NULL);
|
||||
DEFINE_HANDLER(CMSG_GET_AVAILABLE_INITIATIVE_REQUEST, STATUS_LOGGEDIN, PROCESS_THREADUNSAFE, &WorldSession::HandleGetAvailableInitiativeRequest);
|
||||
DEFINE_HANDLER(CMSG_GET_CHARACTER_CURRENCY_TRANSFER_LOG, STATUS_UNHANDLED, PROCESS_THREADUNSAFE, &WorldSession::Handle_NULL);
|
||||
DEFINE_HANDLER(CMSG_GET_CLIENT_CHECKOUT_LICENSES, STATUS_UNHANDLED, PROCESS_THREADUNSAFE, &WorldSession::Handle_NULL);
|
||||
DEFINE_HANDLER(CMSG_GET_DECOR_REFUND_LIST, STATUS_UNHANDLED, PROCESS_THREADUNSAFE, &WorldSession::Handle_NULL);
|
||||
DEFINE_HANDLER(CMSG_GET_GARRISON_INFO, STATUS_LOGGEDIN, PROCESS_THREADUNSAFE, &WorldSession::HandleGetGarrisonInfo);
|
||||
DEFINE_HANDLER(CMSG_GET_INITIATIVE_ACTIVITY_LOG_REQUEST, STATUS_UNHANDLED, PROCESS_THREADUNSAFE, &WorldSession::Handle_NULL);
|
||||
DEFINE_HANDLER(CMSG_GET_INITIATIVE_ACTIVITY_LOG_REQUEST, STATUS_LOGGEDIN, PROCESS_THREADUNSAFE, &WorldSession::HandleGetInitiativeActivityLogRequest);
|
||||
DEFINE_HANDLER(CMSG_GET_ITEM_PURCHASE_DATA, STATUS_LOGGEDIN, PROCESS_INPLACE, &WorldSession::HandleGetItemPurchaseData);
|
||||
DEFINE_HANDLER(CMSG_GET_LANDING_PAGE_SHIPMENTS, STATUS_UNHANDLED, PROCESS_INPLACE, &WorldSession::Handle_NULL);
|
||||
DEFINE_HANDLER(CMSG_GET_LAST_CATALOG_FETCH, STATUS_UNHANDLED, PROCESS_THREADUNSAFE, &WorldSession::Handle_NULL);
|
||||
@@ -800,7 +800,7 @@ void OpcodeTable::InitializeClientOpcodes()
|
||||
DEFINE_HANDLER(CMSG_NEIGHBORHOOD_EVICT_PLOT, STATUS_LOGGEDIN, PROCESS_THREADUNSAFE, &WorldSession::HandleNeighborhoodEvictPlot);
|
||||
DEFINE_HANDLER(CMSG_NEIGHBORHOOD_GET_INVITES, STATUS_LOGGEDIN, PROCESS_THREADUNSAFE, &WorldSession::HandleNeighborhoodGetInvites);
|
||||
DEFINE_HANDLER(CMSG_NEIGHBORHOOD_GET_ROSTER, STATUS_LOGGEDIN, PROCESS_THREADUNSAFE, &WorldSession::HandleNeighborhoodGetRoster);
|
||||
DEFINE_HANDLER(CMSG_NEIGHBORHOOD_INITIATIVE_SERVICE_STATUS_CHECK, STATUS_UNHANDLED, PROCESS_THREADUNSAFE, &WorldSession::Handle_NULL);
|
||||
DEFINE_HANDLER(CMSG_NEIGHBORHOOD_INITIATIVE_SERVICE_STATUS_CHECK, STATUS_LOGGEDIN, PROCESS_THREADUNSAFE, &WorldSession::HandleNeighborhoodInitiativeServiceStatusCheck);
|
||||
DEFINE_HANDLER(CMSG_NEIGHBORHOOD_INVITE_RESIDENT, STATUS_LOGGEDIN, PROCESS_THREADUNSAFE, &WorldSession::HandleNeighborhoodInviteResident);
|
||||
DEFINE_HANDLER(CMSG_NEIGHBORHOOD_MOVE_HOUSE, STATUS_LOGGEDIN, PROCESS_THREADUNSAFE, &WorldSession::HandleNeighborhoodMoveHouse);
|
||||
DEFINE_HANDLER(CMSG_NEIGHBORHOOD_OFFER_OWNERSHIP, STATUS_LOGGEDIN, PROCESS_THREADUNSAFE, &WorldSession::HandleNeighborhoodOfferOwnership);
|
||||
@@ -1625,10 +1625,10 @@ void OpcodeTable::InitializeServerOpcodes()
|
||||
DEFINE_SERVER_OPCODE_HANDLER(SMSG_GET_ALL_LICENSED_DECOR_QUANTITIES_RESPONSE, STATUS_NEVER, CONNECTION_TYPE_REALM);
|
||||
DEFINE_SERVER_OPCODE_HANDLER(SMSG_GET_DECOR_REFUND_LIST_RESPONSE, STATUS_NEVER, CONNECTION_TYPE_REALM);
|
||||
DEFINE_SERVER_OPCODE_HANDLER(SMSG_GET_GARRISON_INFO_RESULT, STATUS_NEVER, CONNECTION_TYPE_INSTANCE);
|
||||
DEFINE_SERVER_OPCODE_HANDLER(SMSG_GET_INITIATIVE_ACTIVITY_LOG_RESULT, STATUS_UNHANDLED, CONNECTION_TYPE_REALM);
|
||||
DEFINE_SERVER_OPCODE_HANDLER(SMSG_GET_INITIATIVE_ACTIVITY_LOG_RESULT, STATUS_NEVER, CONNECTION_TYPE_REALM);
|
||||
DEFINE_SERVER_OPCODE_HANDLER(SMSG_GET_INITIATIVE_REWARDS_RESULT, STATUS_UNHANDLED, CONNECTION_TYPE_REALM);
|
||||
DEFINE_SERVER_OPCODE_HANDLER(SMSG_GET_LANDING_PAGE_SHIPMENTS_RESPONSE, STATUS_UNHANDLED, CONNECTION_TYPE_INSTANCE);
|
||||
DEFINE_SERVER_OPCODE_HANDLER(SMSG_GET_PLAYER_INITIATIVE_INFO_RESULT, STATUS_UNHANDLED, CONNECTION_TYPE_REALM);
|
||||
DEFINE_SERVER_OPCODE_HANDLER(SMSG_GET_PLAYER_INITIATIVE_INFO_RESULT, STATUS_NEVER, CONNECTION_TYPE_REALM);
|
||||
DEFINE_SERVER_OPCODE_HANDLER(SMSG_GET_REALM_HIDDEN_RESULT, STATUS_UNHANDLED, CONNECTION_TYPE_REALM);
|
||||
DEFINE_SERVER_OPCODE_HANDLER(SMSG_GET_REMAINING_GAME_TIME_RESPONSE, STATUS_UNHANDLED, CONNECTION_TYPE_REALM);
|
||||
DEFINE_SERVER_OPCODE_HANDLER(SMSG_GET_SELECTED_TROPHY_ID_RESPONSE, STATUS_UNHANDLED, CONNECTION_TYPE_REALM);
|
||||
@@ -1785,7 +1785,7 @@ void OpcodeTable::InitializeServerOpcodes()
|
||||
DEFINE_SERVER_OPCODE_HANDLER(SMSG_INITIAL_SETUP, STATUS_NEVER, CONNECTION_TYPE_INSTANCE);
|
||||
DEFINE_SERVER_OPCODE_HANDLER(SMSG_INITIATIVE_COMPLETE, STATUS_UNHANDLED, CONNECTION_TYPE_REALM);
|
||||
DEFINE_SERVER_OPCODE_HANDLER(SMSG_INITIATIVE_REWARD_AVAILABLE, STATUS_UNHANDLED, CONNECTION_TYPE_REALM);
|
||||
DEFINE_SERVER_OPCODE_HANDLER(SMSG_INITIATIVE_SERVICE_STATUS, STATUS_UNHANDLED, CONNECTION_TYPE_REALM);
|
||||
DEFINE_SERVER_OPCODE_HANDLER(SMSG_INITIATIVE_SERVICE_STATUS, STATUS_NEVER, CONNECTION_TYPE_REALM);
|
||||
DEFINE_SERVER_OPCODE_HANDLER(SMSG_INITIATIVE_TASK_COMPLETE, STATUS_UNHANDLED, CONNECTION_TYPE_REALM);
|
||||
DEFINE_SERVER_OPCODE_HANDLER(SMSG_INIT_WORLD_STATES, STATUS_NEVER, CONNECTION_TYPE_INSTANCE);
|
||||
DEFINE_SERVER_OPCODE_HANDLER(SMSG_INSPECT_RESULT, STATUS_NEVER, CONNECTION_TYPE_INSTANCE);
|
||||
|
||||
@@ -513,6 +513,9 @@ namespace WorldPackets
|
||||
class NeighborhoodOfferOwnership;
|
||||
class NeighborhoodGetRoster;
|
||||
class NeighborhoodEvictPlot;
|
||||
class NeighborhoodInitiativeServiceStatusCheck;
|
||||
class GetAvailableInitiativeRequest;
|
||||
class GetInitiativeActivityLogRequest;
|
||||
}
|
||||
|
||||
namespace Inspect
|
||||
@@ -1651,6 +1654,9 @@ class TC_GAME_API WorldSession
|
||||
void HandleNeighborhoodOfferOwnership(WorldPackets::Neighborhood::NeighborhoodOfferOwnership const& neighborhoodOfferOwnership);
|
||||
void HandleNeighborhoodGetRoster(WorldPackets::Neighborhood::NeighborhoodGetRoster const& neighborhoodGetRoster);
|
||||
void HandleNeighborhoodEvictPlot(WorldPackets::Neighborhood::NeighborhoodEvictPlot const& neighborhoodEvictPlot);
|
||||
void HandleNeighborhoodInitiativeServiceStatusCheck(WorldPackets::Neighborhood::NeighborhoodInitiativeServiceStatusCheck const& packet);
|
||||
void HandleGetAvailableInitiativeRequest(WorldPackets::Neighborhood::GetAvailableInitiativeRequest const& getAvailableInitiativeRequest);
|
||||
void HandleGetInitiativeActivityLogRequest(WorldPackets::Neighborhood::GetInitiativeActivityLogRequest const& getInitiativeActivityLogRequest);
|
||||
|
||||
void HandleEnableTaxiNodeOpcode(WorldPackets::Taxi::EnableTaxiNode& enableTaxiNode);
|
||||
void HandleTaxiNodeStatusQueryOpcode(WorldPackets::Taxi::TaxiNodeStatusQuery& taxiNodeStatusQuery);
|
||||
|
||||
Reference in New Issue
Block a user