full implement FETCH_BLEEP_PROXIES for shop2
This commit is contained in:
@@ -1678,6 +1678,11 @@ void WorldSession::HandleSetStopConversation(WorldPackets::Misc::SetStopConversa
|
||||
conversation->Remove();
|
||||
}
|
||||
|
||||
void WorldSession::HandleFetchBleepProxies(WorldPackets::Misc::FetchBleepProxies& fetchBleepProxies)
|
||||
{
|
||||
SendPacket(WorldPackets::Misc::FetchBleepProxiesResponse().Write());
|
||||
}
|
||||
|
||||
void WorldSession::HandleRafClaimNextReward(WorldPackets::RaF::RafClaimNextReward& /*packet*/)
|
||||
{
|
||||
//LoginDatabasePreparedStatement* stmt = LoginDatabase.GetPreparedStatement(LOGIN_SEL_ACCOUNT_RAF_CLAIMED_ALL);
|
||||
|
||||
@@ -1077,4 +1077,30 @@ WorldPacket const* UpdateRecentPlayerGuids::Write()
|
||||
_worldPacket << uint32(0);
|
||||
return &_worldPacket;
|
||||
}
|
||||
|
||||
WorldPacket const* FetchBleepProxiesResponse::Write()
|
||||
{
|
||||
// Reader 0x612BD0. Gegen sechs echte Pakete byteweise nachgerechnet, Rest jeweils 0.
|
||||
_worldPacket << Size<uint32>(Proxies);
|
||||
|
||||
for (BleepProxy const& proxy : Proxies)
|
||||
{
|
||||
// Bit-Sektion 6 + 5 + 8 = 19 Bit -> 3 Byte, MSB-first.
|
||||
_worldPacket << SizedString::BitsSize<6>(proxy.Address);
|
||||
_worldPacket << SizedString::BitsSize<5>(proxy.PingToken);
|
||||
_worldPacket << SizedString::BitsSize<8>(proxy.ProxyId);
|
||||
_worldPacket.FlushBits();
|
||||
|
||||
_worldPacket << uint64(proxy.PingPort);
|
||||
_worldPacket << uint64(proxy.PingTokenValidDuration);
|
||||
_worldPacket << uint64(proxy.Port);
|
||||
|
||||
_worldPacket << SizedString::Data(proxy.Address);
|
||||
_worldPacket << SizedString::Data(proxy.PingToken);
|
||||
_worldPacket << SizedString::Data(proxy.ProxyId);
|
||||
}
|
||||
|
||||
return &_worldPacket;
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
@@ -1511,6 +1511,37 @@ namespace WorldPackets
|
||||
explicit UpdateRecentPlayerGuids() : ServerPacket(SMSG_UPDATE_RECENT_PLAYER_GUIDS, 8) {}
|
||||
WorldPacket const* Write() override;
|
||||
};
|
||||
|
||||
class FetchBleepProxies final : public ClientPacket
|
||||
{
|
||||
public:
|
||||
explicit FetchBleepProxies(WorldPacket&& packet) : ClientPacket(CMSG_FETCH_BLEEP_PROXIES, std::move(packet)) {}
|
||||
|
||||
void Read() override {}
|
||||
};
|
||||
|
||||
// Element von SMSG_FETCH_BLEEP_PROXIES_RESPONSE, Client-Typ BleepProxy (360 Byte).
|
||||
struct BleepProxy
|
||||
{
|
||||
std::string Address; // Puffer 46, bits<6>, ohne NUL
|
||||
uint64 PingPort = 0;
|
||||
std::string PingToken; // Puffer 25, bits<5>, ohne NUL
|
||||
uint64 PingTokenValidDuration = 0; // Nanosekunden
|
||||
uint64 Port = 0;
|
||||
std::string ProxyId; // Puffer 256, bits<8>, ohne NUL
|
||||
};
|
||||
|
||||
// 0x450383, Reader 0x612BD0. Draht beidseitig belegt (siehe Kopfkommentar).
|
||||
class FetchBleepProxiesResponse final : public ServerPacket
|
||||
{
|
||||
public:
|
||||
explicit FetchBleepProxiesResponse() : ServerPacket(SMSG_FETCH_BLEEP_PROXIES_RESPONSE, 4) {}
|
||||
|
||||
WorldPacket const* Write() override;
|
||||
|
||||
std::vector<BleepProxy> Proxies;
|
||||
};
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -461,7 +461,7 @@ void OpcodeTable::InitializeClientOpcodes()
|
||||
DEFINE_HANDLER(CMSG_ENUM_CHARACTERS_DELETED_BY_CLIENT, STATUS_AUTHED, PROCESS_THREADUNSAFE, &WorldSession::HandleCharUndeleteEnumOpcode);
|
||||
DEFINE_HANDLER(CMSG_EXPIRE_BLEEP_TOKENS, STATUS_UNHANDLED, PROCESS_THREADUNSAFE, &WorldSession::Handle_NULL);
|
||||
DEFINE_HANDLER(CMSG_FAR_SIGHT, STATUS_LOGGEDIN, PROCESS_THREADUNSAFE, &WorldSession::HandleFarSightOpcode);
|
||||
DEFINE_HANDLER(CMSG_FETCH_BLEEP_PROXIES, STATUS_UNHANDLED, PROCESS_THREADUNSAFE, &WorldSession::Handle_NULL);
|
||||
DEFINE_HANDLER(CMSG_FETCH_BLEEP_PROXIES, STATUS_AUTHED, PROCESS_THREADUNSAFE, &WorldSession::HandleFetchBleepProxies);
|
||||
DEFINE_HANDLER(CMSG_GAME_OBJ_REPORT_USE, STATUS_LOGGEDIN, PROCESS_INPLACE, &WorldSession::HandleGameobjectReportUse);
|
||||
DEFINE_HANDLER(CMSG_GAME_OBJ_USE, STATUS_LOGGEDIN, PROCESS_INPLACE, &WorldSession::HandleGameObjectUseOpcode);
|
||||
DEFINE_HANDLER(CMSG_GARRISON_ADD_FOLLOWER_HEALTH, STATUS_LOGGEDIN, PROCESS_INPLACE, &WorldSession::HandleGarrisonAddFollowerHealth);
|
||||
@@ -1553,7 +1553,7 @@ void OpcodeTable::InitializeServerOpcodes()
|
||||
DEFINE_SERVER_OPCODE_HANDLER(SMSG_FEATURE_SYSTEM_STATUS, STATUS_NEVER, CONNECTION_TYPE_REALM);
|
||||
DEFINE_SERVER_OPCODE_HANDLER(SMSG_FEATURE_SYSTEM_STATUS_GLUE_SCREEN, STATUS_NEVER, CONNECTION_TYPE_REALM);
|
||||
DEFINE_SERVER_OPCODE_HANDLER(SMSG_FEIGN_DEATH_RESISTED, STATUS_UNHANDLED, CONNECTION_TYPE_REALM);
|
||||
DEFINE_SERVER_OPCODE_HANDLER(SMSG_FETCH_BLEEP_PROXIES_RESPONSE, STATUS_UNHANDLED, CONNECTION_TYPE_REALM);
|
||||
DEFINE_SERVER_OPCODE_HANDLER(SMSG_FETCH_BLEEP_PROXIES_RESPONSE, STATUS_NEVER, CONNECTION_TYPE_REALM);
|
||||
DEFINE_SERVER_OPCODE_HANDLER(SMSG_FISH_ESCAPED, STATUS_NEVER, CONNECTION_TYPE_REALM);
|
||||
DEFINE_SERVER_OPCODE_HANDLER(SMSG_FISH_NOT_HOOKED, STATUS_NEVER, CONNECTION_TYPE_REALM);
|
||||
DEFINE_SERVER_OPCODE_HANDLER(SMSG_FLIGHT_SPLINE_SYNC, STATUS_NEVER, CONNECTION_TYPE_INSTANCE);
|
||||
|
||||
@@ -864,6 +864,7 @@ namespace WorldPackets
|
||||
class IslandQueue;
|
||||
class ShowTradeSkill;
|
||||
class SetStopConversation;
|
||||
class FetchBleepProxies;
|
||||
}
|
||||
|
||||
namespace MajorFactions
|
||||
@@ -1717,6 +1718,7 @@ public:
|
||||
void HandleIslandQueue(WorldPackets::Misc::IslandQueue& packet);
|
||||
void HandleShowTradeSkill(WorldPackets::Misc::ShowTradeSkill& packet);
|
||||
void HandleSetStopConversation(WorldPackets::Misc::SetStopConversation& setStopConversation);
|
||||
void HandleFetchBleepProxies(WorldPackets::Misc::FetchBleepProxies& fetchBleepProxies);
|
||||
|
||||
// Inspect
|
||||
void HandleInspectOpcode(WorldPackets::Inspect::Inspect& inspect);
|
||||
|
||||
Reference in New Issue
Block a user