mirror of
https://github.com/mangosfour/server.git
synced 2025-12-12 19:37:03 +00:00
Add structure and prevent spam for some LFG opcodes.
Thanks to Spp for help with researching CMSG_LFG_JOIN.
This commit is contained in:
parent
dbe089b66d
commit
bd6d27998b
3 changed files with 37 additions and 16 deletions
|
|
@ -147,38 +147,59 @@ static void AttemptAddMore(Player* _player)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
void WorldSession::HandleLfgSetAutoJoinOpcode( WorldPacket & /*recv_data*/ )
|
void WorldSession::HandleLfgJoinOpcode( WorldPacket & recv_data )
|
||||||
{
|
{
|
||||||
sLog.outDebug("CMSG_LFG_SET_AUTOJOIN");
|
sLog.outDebug("CMSG_LFG_JOIN");
|
||||||
LookingForGroup_auto_join = true;
|
LookingForGroup_auto_join = true;
|
||||||
|
|
||||||
|
uint8 counter1, counter2;
|
||||||
|
std::string comment;
|
||||||
|
|
||||||
|
recv_data >> Unused<uint32>(); // lfg roles
|
||||||
|
recv_data >> Unused<uint8>(); // unk1 (unused?)
|
||||||
|
recv_data >> Unused<uint8>(); // unk2 (unused?)
|
||||||
|
|
||||||
|
recv_data >> counter1;
|
||||||
|
for (uint8 i = 0; i < counter1; i++)
|
||||||
|
recv_data >> Unused<uint32>(); // queue block? (type/zone?)
|
||||||
|
|
||||||
|
recv_data >> counter2;
|
||||||
|
for (uint8 i = 0; i < counter2; i++)
|
||||||
|
recv_data >> Unused<uint8>(); // unk (unused?)
|
||||||
|
|
||||||
|
recv_data >> comment; // lfg comment
|
||||||
|
|
||||||
if(!_player) // needed because STATUS_AUTHED
|
if(!_player) // needed because STATUS_AUTHED
|
||||||
return;
|
return;
|
||||||
|
|
||||||
AttemptJoin(_player);
|
AttemptJoin(_player);
|
||||||
}
|
}
|
||||||
|
|
||||||
void WorldSession::HandleLfgClearAutoJoinOpcode( WorldPacket & /*recv_data*/ )
|
void WorldSession::HandleLfgLeaveOpcode( WorldPacket & /*recv_data*/ )
|
||||||
{
|
{
|
||||||
sLog.outDebug("CMSG_LFG_CLEAR_AUTOJOIN");
|
sLog.outDebug("CMSG_LFG_LEAVE");
|
||||||
LookingForGroup_auto_join = false;
|
LookingForGroup_auto_join = false;
|
||||||
}
|
}
|
||||||
|
|
||||||
void WorldSession::HandleLfmSetAutoFillOpcode( WorldPacket & /*recv_data*/ )
|
void WorldSession::HandleSearchLfgJoinOpcode( WorldPacket & recv_data )
|
||||||
{
|
{
|
||||||
sLog.outDebug("CMSG_LFM_SET_AUTOFILL");
|
sLog.outDebug("CMSG_SEARCH_LFG_JOIN");
|
||||||
LookingForGroup_auto_add = true;
|
LookingForGroup_auto_add = true;
|
||||||
|
|
||||||
|
recv_data >> Unused<uint32>(); // join id?
|
||||||
|
|
||||||
if(!_player) // needed because STATUS_AUTHED
|
if(!_player) // needed because STATUS_AUTHED
|
||||||
return;
|
return;
|
||||||
|
|
||||||
AttemptAddMore(_player);
|
AttemptAddMore(_player);
|
||||||
}
|
}
|
||||||
|
|
||||||
void WorldSession::HandleLfmClearAutoFillOpcode( WorldPacket & /*recv_data*/ )
|
void WorldSession::HandleSearchLfgLeaveOpcode( WorldPacket & recv_data )
|
||||||
{
|
{
|
||||||
sLog.outDebug("CMSG_LFM_CLEAR_AUTOFILL");
|
sLog.outDebug("CMSG_SEARCH_LFG_LEAVE");
|
||||||
LookingForGroup_auto_add = false;
|
LookingForGroup_auto_add = false;
|
||||||
|
|
||||||
|
recv_data >> Unused<uint32>(); // join id?
|
||||||
}
|
}
|
||||||
|
|
||||||
void WorldSession::HandleLfgClearOpcode( WorldPacket & /*recv_data */ )
|
void WorldSession::HandleLfgClearOpcode( WorldPacket & /*recv_data */ )
|
||||||
|
|
|
||||||
|
|
@ -886,10 +886,10 @@ OpcodeHandler opcodeTable[NUM_MSG_TYPES] =
|
||||||
/*0x359*/ { "MSG_MOVE_START_ASCEND", STATUS_LOGGEDIN, &WorldSession::HandleMovementOpcodes },
|
/*0x359*/ { "MSG_MOVE_START_ASCEND", STATUS_LOGGEDIN, &WorldSession::HandleMovementOpcodes },
|
||||||
/*0x35A*/ { "MSG_MOVE_STOP_ASCEND", STATUS_LOGGEDIN, &WorldSession::HandleMovementOpcodes },
|
/*0x35A*/ { "MSG_MOVE_STOP_ASCEND", STATUS_LOGGEDIN, &WorldSession::HandleMovementOpcodes },
|
||||||
/*0x35B*/ { "SMSG_ARENA_TEAM_STATS", STATUS_NEVER, &WorldSession::Handle_ServerSide },
|
/*0x35B*/ { "SMSG_ARENA_TEAM_STATS", STATUS_NEVER, &WorldSession::Handle_ServerSide },
|
||||||
/*0x35C*/ { "CMSG_LFG_JOIN", STATUS_LOGGEDIN, &WorldSession::HandleLfgSetAutoJoinOpcode },
|
/*0x35C*/ { "CMSG_LFG_JOIN", STATUS_LOGGEDIN, &WorldSession::HandleLfgJoinOpcode },
|
||||||
/*0x35D*/ { "CMSG_LFG_LEAVE", STATUS_LOGGEDIN, &WorldSession::HandleLfgClearAutoJoinOpcode },
|
/*0x35D*/ { "CMSG_LFG_LEAVE", STATUS_LOGGEDIN, &WorldSession::HandleLfgLeaveOpcode },
|
||||||
/*0x35E*/ { "CMSG_SEARCH_LFG_JOIN", STATUS_LOGGEDIN, &WorldSession::HandleLfmSetAutoFillOpcode },
|
/*0x35E*/ { "CMSG_SEARCH_LFG_JOIN", STATUS_LOGGEDIN, &WorldSession::HandleSearchLfgJoinOpcode },
|
||||||
/*0x35F*/ { "CMSG_SEARCH_LFG_LEAVE", STATUS_LOGGEDIN, &WorldSession::HandleLfmClearAutoFillOpcode },
|
/*0x35F*/ { "CMSG_SEARCH_LFG_LEAVE", STATUS_LOGGEDIN, &WorldSession::HandleSearchLfgLeaveOpcode },
|
||||||
/*0x360*/ { "SMSG_UPDATE_LFG_LIST", STATUS_NEVER, &WorldSession::Handle_ServerSide },
|
/*0x360*/ { "SMSG_UPDATE_LFG_LIST", STATUS_NEVER, &WorldSession::Handle_ServerSide },
|
||||||
/*0x361*/ { "SMSG_LFG_PROPOSAL_DECLINED", STATUS_NEVER, &WorldSession::Handle_ServerSide },
|
/*0x361*/ { "SMSG_LFG_PROPOSAL_DECLINED", STATUS_NEVER, &WorldSession::Handle_ServerSide },
|
||||||
/*0x362*/ { "CMSG_LFG_PROPOSAL_RESULT", STATUS_LOGGEDIN, &WorldSession::Handle_NULL },
|
/*0x362*/ { "CMSG_LFG_PROPOSAL_RESULT", STATUS_LOGGEDIN, &WorldSession::Handle_NULL },
|
||||||
|
|
|
||||||
|
|
@ -641,10 +641,10 @@ class MANGOS_DLL_SPEC WorldSession
|
||||||
void HandleSetDungeonDifficultyOpcode(WorldPacket& recv_data);
|
void HandleSetDungeonDifficultyOpcode(WorldPacket& recv_data);
|
||||||
void HandleSetRaidDifficultyOpcode(WorldPacket& recv_data);
|
void HandleSetRaidDifficultyOpcode(WorldPacket& recv_data);
|
||||||
void HandleMoveSetCanFlyAckOpcode(WorldPacket& recv_data);
|
void HandleMoveSetCanFlyAckOpcode(WorldPacket& recv_data);
|
||||||
void HandleLfgSetAutoJoinOpcode(WorldPacket& recv_data);
|
void HandleLfgJoinOpcode(WorldPacket& recv_data);
|
||||||
void HandleLfgClearAutoJoinOpcode(WorldPacket& recv_data);
|
void HandleLfgLeaveOpcode(WorldPacket& recv_data);
|
||||||
void HandleLfmSetAutoFillOpcode(WorldPacket& recv_data);
|
void HandleSearchLfgJoinOpcode(WorldPacket& recv_data);
|
||||||
void HandleLfmClearAutoFillOpcode(WorldPacket& recv_data);
|
void HandleSearchLfgLeaveOpcode(WorldPacket& recv_data);
|
||||||
void HandleLfgClearOpcode(WorldPacket& recv_data);
|
void HandleLfgClearOpcode(WorldPacket& recv_data);
|
||||||
void HandleLfmClearOpcode(WorldPacket& recv_data);
|
void HandleLfmClearOpcode(WorldPacket& recv_data);
|
||||||
void HandleSetLfmOpcode(WorldPacket& recv_data);
|
void HandleSetLfmOpcode(WorldPacket& recv_data);
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue