diff options
-rwxr-xr-x | src/server/game/Entities/Player/Player.cpp | 2 | ||||
-rwxr-xr-x | src/server/game/Miscellaneous/SharedDefines.h | 2 | ||||
-rwxr-xr-x | src/server/game/Server/Protocol/Handlers/ChatHandler.cpp | 59 | ||||
-rwxr-xr-x | src/server/game/Server/Protocol/Opcodes.cpp | 24 | ||||
-rwxr-xr-x | src/server/game/Server/Protocol/Opcodes.h | 49 |
5 files changed, 104 insertions, 32 deletions
diff --git a/src/server/game/Entities/Player/Player.cpp b/src/server/game/Entities/Player/Player.cpp index ea3600d006d..0bbf95fe890 100755 --- a/src/server/game/Entities/Player/Player.cpp +++ b/src/server/game/Entities/Player/Player.cpp @@ -7680,8 +7680,8 @@ void Player::DuelComplete(DuelCompleteType type) { data.Initialize(SMSG_DUEL_WINNER, (1+20)); // we guess size data << uint8(type == DUEL_WON ? 0 : 1); // 0 = just won; 1 = fled - data << duel->opponent->GetName(); data << GetName(); + data << duel->opponent->GetName(); SendMessageToSet(&data, true); } diff --git a/src/server/game/Miscellaneous/SharedDefines.h b/src/server/game/Miscellaneous/SharedDefines.h index 8c4dba94201..a95f29c17d9 100755 --- a/src/server/game/Miscellaneous/SharedDefines.h +++ b/src/server/game/Miscellaneous/SharedDefines.h @@ -2738,7 +2738,7 @@ enum WeatherType enum ChatMsg { - CHAT_MSG_ADDON = 0xFFFFFFFF, + CHAT_MSG_ADDON = 0xFFFFFFFF, // -1 CHAT_MSG_SYSTEM = 0x00, CHAT_MSG_SAY = 0x01, CHAT_MSG_PARTY = 0x02, diff --git a/src/server/game/Server/Protocol/Handlers/ChatHandler.cpp b/src/server/game/Server/Protocol/Handlers/ChatHandler.cpp index 852549b3f53..3c8b1d8e033 100755 --- a/src/server/game/Server/Protocol/Handlers/ChatHandler.cpp +++ b/src/server/game/Server/Protocol/Handlers/ChatHandler.cpp @@ -65,10 +65,65 @@ bool WorldSession::processChatmessageFurtherAfterSecurityChecks(std::string& msg void WorldSession::HandleMessagechatOpcode(WorldPacket & recv_data) { - uint32 type; + uint32 type = 0; uint32 lang; - recv_data >> type; + switch(recv_data.GetOpcode()) + { + case CMSG_MESSAGECHAT_SAY: + type = CHAT_MSG_SAY; + break; + case CMSG_MESSAGECHAT_YELL: + type = CHAT_MSG_YELL; + break; + case CMSG_MESSAGECHAT_CHANNEL: + type = CHAT_MSG_CHANNEL; + break; + case CMSG_MESSAGECHAT_WHISPER: + type = CHAT_MSG_WHISPER; + break; + case CMSG_MESSAGECHAT_GUILD: + type = CHAT_MSG_GUILD; + break; + //case CMSG_MESSAGECHAT_OFFICER: + // type = CHAT_MSG_OFFICER; + // break; + //case CMSG_MESSAGECHAT_AFK: + // type = CHAT_MSG_AFK; + // break; + //case CMSG_MESSAGECHAT_DND: + // type = CHAT_MSG_DND; + // break; + case CMSG_MESSAGECHAT_EMOTE: + type = CHAT_MSG_EMOTE; + break; + case CMSG_MESSAGECHAT_PARTY: + type = CHAT_MSG_PARTY; + break; + //case CMSG_MESSAGECHAT_PARTY_LEADER: + // type = CHAT_MSG_PARTY_LEADER; + // break; + //case CMSG_MESSAGECHAT_RAID: + // type = CHAT_MSG_RAID; + // break; + //case CMSG_MESSAGECHAT_RAID_LEADER: + // type = CHAT_MSG_RAID_LEADER; + // break; + //case CMSG_MESSAGECHAT_BATTLEGROUND: + // type = CHAT_MSG_BATTLEGROUND; + // break; + //case CMSG_MESSAGECHAT_BATTLEGROUND_LEADER: + // type = CHAT_MSG_BATTLEGROUND_LEADER; + // break; + //case CMSG_MESSAGECHAT_RAID_WARNING: + // type = CHAT_MSG_RAID_WARNING; + // break; + default: + sLog->outDetail("HandleMessagechatOpcode : Unknown chat opcode (%u)", recv_data.GetOpcode()); + recv_data.hexlike(); + return; + } + recv_data >> lang; if (type >= MAX_CHAT_MSG_TYPE) diff --git a/src/server/game/Server/Protocol/Opcodes.cpp b/src/server/game/Server/Protocol/Opcodes.cpp index 05276094a25..89e26dbfef7 100755 --- a/src/server/game/Server/Protocol/Opcodes.cpp +++ b/src/server/game/Server/Protocol/Opcodes.cpp @@ -191,8 +191,24 @@ void InitOpcodes() //DEFINE_OPCODE_HANDLER(SMSG_GUILD_EVENT, STATUS_NEVER, PROCESS_INPLACE, &WorldSession::Handle_ServerSide ); //DEFINE_OPCODE_HANDLER(SMSG_GUILD_COMMAND_RESULT, STATUS_NEVER, PROCESS_INPLACE, &WorldSession::Handle_ServerSide ); //DEFINE_OPCODE_HANDLER(UMSG_UPDATE_GUILD, STATUS_NEVER, PROCESS_INPLACE, &WorldSession::Handle_NULL ); - //DEFINE_OPCODE_HANDLER(CMSG_MESSAGECHAT, STATUS_LOGGEDIN, PROCESS_THREADUNSAFE, &WorldSession::HandleMessagechatOpcode ); - //DEFINE_OPCODE_HANDLER(SMSG_MESSAGECHAT, STATUS_NEVER, PROCESS_INPLACE, &WorldSession::Handle_ServerSide ); + //DEFINE_OPCODE_HANDLER(CMSG_MESSAGECHAT_ADDON_X, STATUS_LOGGEDIN, PROCESS_THREADUNSAFE, &WorldSession::HandleMessagechatOpcode ); + DEFINE_OPCODE_HANDLER(CMSG_MESSAGECHAT_AFK, STATUS_LOGGEDIN, PROCESS_THREADUNSAFE, &WorldSession::HandleMessagechatOpcode ); + //DEFINE_OPCODE_HANDLER(CMSG_MESSAGECHAT_BATTLEGROUND, STATUS_LOGGEDIN, PROCESS_THREADUNSAFE, &WorldSession::HandleMessagechatOpcode ); + //DEFINE_OPCODE_HANDLER(CMSG_MESSAGECHAT_BATTLEGROUND_LEADER, STATUS_LOGGEDIN, PROCESS_THREADUNSAFE, &WorldSession::HandleMessagechatOpcode ); + DEFINE_OPCODE_HANDLER(CMSG_MESSAGECHAT_CHANNEL, STATUS_LOGGEDIN, PROCESS_THREADUNSAFE, &WorldSession::HandleMessagechatOpcode ); + //DEFINE_OPCODE_HANDLER(CMSG_MESSAGECHAT_DND, STATUS_LOGGEDIN, PROCESS_THREADUNSAFE, &WorldSession::HandleMessagechatOpcode ); + DEFINE_OPCODE_HANDLER(CMSG_MESSAGECHAT_EMOTE, STATUS_LOGGEDIN, PROCESS_THREADUNSAFE, &WorldSession::HandleMessagechatOpcode ); + DEFINE_OPCODE_HANDLER(CMSG_MESSAGECHAT_GUILD, STATUS_LOGGEDIN, PROCESS_THREADUNSAFE, &WorldSession::HandleMessagechatOpcode ); + //DEFINE_OPCODE_HANDLER(CMSG_MESSAGECHAT_OFFICER, STATUS_LOGGEDIN, PROCESS_THREADUNSAFE, &WorldSession::HandleMessagechatOpcode ); + DEFINE_OPCODE_HANDLER(CMSG_MESSAGECHAT_PARTY, STATUS_LOGGEDIN, PROCESS_THREADUNSAFE, &WorldSession::HandleMessagechatOpcode ); + //DEFINE_OPCODE_HANDLER(CMSG_MESSAGECHAT_PARTY_LEADER, STATUS_LOGGEDIN, PROCESS_THREADUNSAFE, &WorldSession::HandleMessagechatOpcode ); + //DEFINE_OPCODE_HANDLER(CMSG_MESSAGECHAT_RAID, STATUS_LOGGEDIN, PROCESS_THREADUNSAFE, &WorldSession::HandleMessagechatOpcode ); + //DEFINE_OPCODE_HANDLER(CMSG_MESSAGECHAT_RAID_LEADER, STATUS_LOGGEDIN, PROCESS_THREADUNSAFE, &WorldSession::HandleMessagechatOpcode ); + //DEFINE_OPCODE_HANDLER(CMSG_MESSAGECHAT_RAID_WARNING, STATUS_LOGGEDIN, PROCESS_THREADUNSAFE, &WorldSession::HandleMessagechatOpcode ); + DEFINE_OPCODE_HANDLER(CMSG_MESSAGECHAT_SAY, STATUS_LOGGEDIN, PROCESS_THREADUNSAFE, &WorldSession::HandleMessagechatOpcode ); + DEFINE_OPCODE_HANDLER(CMSG_MESSAGECHAT_WHISPER, STATUS_LOGGEDIN, PROCESS_THREADUNSAFE, &WorldSession::HandleMessagechatOpcode ); + DEFINE_OPCODE_HANDLER(CMSG_MESSAGECHAT_YELL, STATUS_LOGGEDIN, PROCESS_THREADUNSAFE, &WorldSession::HandleMessagechatOpcode ); + DEFINE_OPCODE_HANDLER(SMSG_MESSAGECHAT, STATUS_NEVER, PROCESS_INPLACE, &WorldSession::Handle_ServerSide ); //DEFINE_OPCODE_HANDLER(CMSG_JOIN_CHANNEL, STATUS_LOGGEDIN, PROCESS_THREADUNSAFE, &WorldSession::HandleJoinChannel ); //DEFINE_OPCODE_HANDLER(CMSG_LEAVE_CHANNEL, STATUS_LOGGEDIN, PROCESS_THREADUNSAFE, &WorldSession::HandleLeaveChannel ); //DEFINE_OPCODE_HANDLER(SMSG_CHANNEL_NOTIFY, STATUS_NEVER, PROCESS_INPLACE, &WorldSession::Handle_ServerSide ); @@ -405,7 +421,7 @@ void InitOpcodes() //DEFINE_OPCODE_HANDLER(SMSG_DUEL_OUTOFBOUNDS, STATUS_NEVER, PROCESS_INPLACE, &WorldSession::Handle_ServerSide ); //DEFINE_OPCODE_HANDLER(SMSG_DUEL_INBOUNDS, STATUS_NEVER, PROCESS_INPLACE, &WorldSession::Handle_ServerSide ); //DEFINE_OPCODE_HANDLER(SMSG_DUEL_COMPLETE, STATUS_NEVER, PROCESS_INPLACE, &WorldSession::Handle_ServerSide ); - //DEFINE_OPCODE_HANDLER(SMSG_DUEL_WINNER, STATUS_NEVER, PROCESS_INPLACE, &WorldSession::Handle_ServerSide ); + DEFINE_OPCODE_HANDLER(SMSG_DUEL_WINNER, STATUS_NEVER, PROCESS_INPLACE, &WorldSession::Handle_ServerSide ); //DEFINE_OPCODE_HANDLER(CMSG_DUEL_ACCEPTED, STATUS_LOGGEDIN, PROCESS_THREADUNSAFE, &WorldSession::HandleDuelAcceptedOpcode ); //DEFINE_OPCODE_HANDLER(CMSG_DUEL_CANCELLED, STATUS_LOGGEDIN, PROCESS_THREADUNSAFE, &WorldSession::HandleDuelCancelledOpcode ); //DEFINE_OPCODE_HANDLER(SMSG_MOUNTRESULT, STATUS_NEVER, PROCESS_INPLACE, &WorldSession::Handle_ServerSide ); @@ -1010,7 +1026,7 @@ void InitOpcodes() //DEFINE_OPCODE_HANDLER(MSG_RAID_READY_CHECK_FINISHED, STATUS_LOGGEDIN, PROCESS_THREADUNSAFE, &WorldSession::HandleRaidReadyCheckFinishedOpcode); //DEFINE_OPCODE_HANDLER(CMSG_COMPLAIN, STATUS_LOGGEDIN, PROCESS_THREADUNSAFE, &WorldSession::HandleComplainOpcode ); //DEFINE_OPCODE_HANDLER(SMSG_COMPLAIN_RESULT, STATUS_NEVER, PROCESS_INPLACE, &WorldSession::Handle_ServerSide ); - //DEFINE_OPCODE_HANDLER(SMSG_FEATURE_SYSTEM_STATUS, STATUS_NEVER, PROCESS_INPLACE, &WorldSession::Handle_ServerSide ); + DEFINE_OPCODE_HANDLER(SMSG_FEATURE_SYSTEM_STATUS, STATUS_NEVER, PROCESS_INPLACE, &WorldSession::Handle_ServerSide ); //DEFINE_OPCODE_HANDLER(CMSG_GM_SHOW_COMPLAINTS, STATUS_NEVER, PROCESS_INPLACE, &WorldSession::Handle_NULL ); //DEFINE_OPCODE_HANDLER(CMSG_GM_UNSQUELCH, STATUS_NEVER, PROCESS_INPLACE, &WorldSession::Handle_NULL ); //DEFINE_OPCODE_HANDLER(CMSG_CHANNEL_SILENCE_VOICE, STATUS_NEVER, PROCESS_INPLACE, &WorldSession::Handle_NULL ); diff --git a/src/server/game/Server/Protocol/Opcodes.h b/src/server/game/Server/Protocol/Opcodes.h index 21fa2b82b8b..9c74d58d374 100755 --- a/src/server/game/Server/Protocol/Opcodes.h +++ b/src/server/game/Server/Protocol/Opcodes.h @@ -96,7 +96,7 @@ enum Opcodes CMSG_CALENDAR_GUILD_FILTER = 0x00, CMSG_CALENDAR_REMOVE_EVENT = 0x00, CMSG_CALENDAR_UPDATE_EVENT = 0x5CD2, - CMSG_CANCEL_AURA = 0x9c43, + CMSG_CANCEL_AURA = 0x9C43, CMSG_CANCEL_AUTO_REPEAT_SPELL = 0x5CEE, CMSG_CANCEL_CAST = 0x00, CMSG_CANCEL_CHANNELLING = 0xC8FE, @@ -154,8 +154,8 @@ enum Opcodes CMSG_DUEL_ACCEPTED = 0x00, CMSG_DUEL_CANCELLED = 0x00, CMSG_EJECT_PASSENGER = 0x00, - CMSG_EQUIPMENT_SET_DELETE = 0x9cf2, - CMSG_EQUIPMENT_SET_SAVE = 0x5e5f, + CMSG_EQUIPMENT_SET_DELETE = 0x9CF2, + CMSG_EQUIPMENT_SET_SAVE = 0x5E5F, CMSG_EQUIPMENT_SET_USE = 0x4853, CMSG_EMOTE = 0x9843, CMSG_FORCE_FLIGHT_BACK_SPEED_CHANGE_ACK = 0x00, @@ -181,14 +181,14 @@ enum Opcodes CMSG_GM_INVIS = 0x00, CMSG_GMRESPONSE_RESOLVE = 0x00, CMSG_GMSURVEY_SUBMIT = 0x00, - CMSG_GMTICKET_CREATE = 0x0a7b, - CMSG_GMTICKET_DELETETICKET = 0x985f, + CMSG_GMTICKET_CREATE = 0x0A7B, + CMSG_GMTICKET_DELETETICKET = 0x985F, CMSG_GMTICKET_GETTICKET = 0x00, CMSG_GMTICKET_SYSTEMSTATUS = 0x4A7A, CMSG_GMTICKET_UPDATETEXT = 0x8A7B, CMSG_GM_NUKE = 0x00, CMSG_GM_SET_SECURITY_GROUP = 0x00, - CMSG_GM_REPORT_LAG = 0x9c6b, + CMSG_GM_REPORT_LAG = 0x9C6B, CMSG_GOSSIP_HELLO = 0xAD3, CMSG_GOSSIP_SELECT_OPTION = 0x984E, CMSG_GRANT_LEVEL = 0x1CD6, @@ -198,7 +198,7 @@ enum Opcodes CMSG_GROUP_CHANGE_SUB_GROUP = 0x1AD2, CMSG_GROUP_DECLINE = 0x00, CMSG_GROUP_DISBAND = 0x00, - CMSG_GROUP_INVITE = 0x00, + CMSG_GROUP_INVITE = 0xC88A, CMSG_GROUP_RAID_CONVERT = 0xC85A, CMSG_GROUP_SET_LEADER = 0xCEC7, CMSG_GROUP_SWAP_SUB_GROUP = 0x5AD7, @@ -274,7 +274,8 @@ enum Opcodes CMSG_MESSAGECHAT_AFK = 0x00, CMSG_MESSAGECHAT_BATTLEGROUND = 0x00, CMSG_MESSAGECHAT_BATTLEGROUND_LEADER = 0x00, - CMSG_MESSAGECHAT_ADDON = 0x24D9, + //CMSG_MESSAGECHAT_ADDON_GUILD = 0x24D9, // Not confirmed, new on 4.x + //CMSG_MESSAGECHAT_ADDON_WHISPER = 0x20C1, // Not confirmed, new on 4.x CMSG_MESSAGECHAT_CHANNEL = 0x7459, CMSG_MESSAGECHAT_DND = 0x00, CMSG_MESSAGECHAT_EMOTE = 0x6449, @@ -413,7 +414,7 @@ enum Opcodes CMSG_SWAP_ITEM = 0xDED6, CMSG_SWAP_INV_ITEM = 0x5CE7, CMSG_TELEPORT_TO_UNIT = 0x8C72, - CMSG_TEXT_EMOTE = 0x08d3, + CMSG_TEXT_EMOTE = 0x08D3, CMSG_TIME_SYNC_RESP = 0x07A5, CMSG_TAXICLEARALLNODES = 0x00, CMSG_TAXIENABLEALLNODES = 0x00, @@ -444,7 +445,7 @@ enum Opcodes CMSG_WORLD_STATE_UI_TIMER_UPDATE = 0x58F6, CMSG_WORLD_TELEPORT = 0x00, CMSG_WRAP_ITEM = 0x00, - CMSG_ZONEUPDATE = 0x4ae2, + CMSG_ZONEUPDATE = 0x4AE2, MSG_AUCTION_HELLO = 0x00, MSG_CHANNEL_START = 0x00, MSG_CHANNEL_UPDATE = 0x00, @@ -460,23 +461,23 @@ enum Opcodes MSG_LIST_STABLED_PETS = 0x88CA, MSG_MINIMAP_PING = 0x00, MSG_MOVE_FALL_LAND = 0x00a5, - MSG_MOVE_HEARTBEAT = 0xb024, + MSG_MOVE_HEARTBEAT = 0xB024, MSG_MOVE_HOVER = 0x00, MSG_MOVE_JUMP = 0x9225, MSG_MOVE_KNOCK_BACK = 0x00, MSG_MOVE_ROOT = 0x00, MSG_MOVE_SET_ALL_SPEED_CHEAT = 0x00, - MSG_MOVE_SET_FACING = 0x02a4, + MSG_MOVE_SET_FACING = 0x02A4, MSG_MOVE_SET_FLIGHT_BACK_SPEED = 0x00, MSG_MOVE_SET_FLIGHT_BACK_SPEED_CHEAT = 0x00, MSG_MOVE_SET_FLIGHT_SPEED = 0x00, MSG_MOVE_SET_FLIGHT_SPEED_CHEAT = 0x00, - MSG_MOVE_SET_PITCH = 0xa7a5, + MSG_MOVE_SET_PITCH = 0xA7A5, MSG_MOVE_SET_PITCH_RATE = 0x00, MSG_MOVE_SET_RAW_POSITION_ACK = 0x00, MSG_MOVE_SET_RUN_BACK_SPEED = 0x00, MSG_MOVE_SET_RUN_BACK_SPEED_CHEAT = 0x00, - MSG_MOVE_SET_RUN_MODE = 0x21a4, + MSG_MOVE_SET_RUN_MODE = 0x21A4, MSG_MOVE_SET_RUN_SPEED_CHEAT = 0x00, MSG_MOVE_SET_RUN_SPEED = 0x00, MSG_MOVE_SET_SWIM_BACK_SPEED = 0x00, @@ -491,20 +492,20 @@ enum Opcodes MSG_MOVE_START_ASCEND = 0x0624, MSG_MOVE_START_DESCEND = 0x2624, MSG_MOVE_STOP_ASCEND = 0x1125, - MSG_MOVE_START_BACKWARD = 0x10a5, - MSG_MOVE_START_FORWARD = 0xa0a4, + MSG_MOVE_START_BACKWARD = 0x10A5, + MSG_MOVE_START_FORWARD = 0xA0A4, MSG_MOVE_START_PITCH_UP = 0x9524, MSG_MOVE_START_PITCH_DOWN = 0x2025, - MSG_MOVE_START_TURN_LEFT = 0x01a5, - MSG_MOVE_START_TURN_RIGHT = 0xb6a4, - MSG_MOVE_START_STRAFE_LEFT = 0xa024, + MSG_MOVE_START_TURN_LEFT = 0x01A5, + MSG_MOVE_START_TURN_RIGHT = 0xB6A4, + MSG_MOVE_START_STRAFE_LEFT = 0xA024, MSG_MOVE_START_STRAFE_RIGHT = 0x9125, - MSG_MOVE_START_SWIM = 0x85a4, - MSG_MOVE_STOP = 0xa3a4, + MSG_MOVE_START_SWIM = 0x85A4, + MSG_MOVE_STOP = 0xA3A4, MSG_MOVE_STOP_PITCH = 0x8425, - MSG_MOVE_STOP_TURN = 0x90a4, + MSG_MOVE_STOP_TURN = 0x90A4, MSG_MOVE_STOP_STRAFE = 0x0125, - MSG_MOVE_STOP_SWIM = 0xb424, + MSG_MOVE_STOP_SWIM = 0xB424, MSG_MOVE_TOGGLE_LOGGING = 0x00, MSG_MOVE_TIME_SKIPPED = 0x00, MSG_MOVE_TELEPORT = 0x00, @@ -659,7 +660,7 @@ enum Opcodes SMSG_DUEL_COMPLETE = 0x00, SMSG_DUEL_COUNTDOWN = 0x00, SMSG_DUEL_REQUESTED = 0x00, - SMSG_DUEL_WINNER = 0x00, + SMSG_DUEL_WINNER = 0xDA52, SMSG_DURABILITY_DAMAGE_DEATH = 0x00, SMSG_ECHO_PARTY_SQUELCH = 0x00, SMSG_EMOTE = 0xC67, |